diff --git a/Meta/Types/client/_00007FFD97835688.lua b/Meta/Types/client/_00007FFD97835688.lua
new file mode 100644
index 0000000..38cf0ed
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97835688.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class System.Object
+---@operator add(Barotrauma.LocalizedString):Barotrauma.LocalizedString
+_G['System']['Object'] = {}
+
+---`Method Public Instance`
+---@return System.Type
+_G['System']['Object'].GetType = function() end
+
+---`Method NonPublic Instance`
+---@return System.Object
+_G['System']['Object'].MemberwiseClone = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['System']['Object'].Finalize = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['System']['Object'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['System']['Object'].Equals = function(obj) end
+
+---`Method Public Static`
+---@param objA System.Object
+---@param objB System.Object
+---@return System.Boolean
+_G['System']['Object'].Equals = function(objA, objB) end
+
+---`Method Public Static`
+---@param objA System.Object
+---@param objB System.Object
+---@return System.Boolean
+_G['System']['Object'].ReferenceEquals = function(objA, objB) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Object'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return System.Object
+_G['System']['Object'] = function() end
+
+---`Constructor Public Instance`
+---@return System.Object
+_G['System']['Object'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD9783BF38.lua b/Meta/Types/client/_00007FFD9783BF38.lua
new file mode 100644
index 0000000..1cf58b2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD9783BF38.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class System.Boolean : System.ValueType, boolean
+---`Field Private Instance`
+---@field m_value System.Boolean
+---`Field Public Static`
+---@field TrueString System.String
+---`Field Public Static`
+---@field FalseString System.String
+_G['System']['Boolean'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Boolean'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Boolean'].ToString = function(provider) end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@return System.Boolean
+_G['System']['Boolean'].TryFormat = function(destination, charsWritten) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Boolean
+---@return System.Boolean
+_G['System']['Boolean'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Int32)
+---@param value System.Boolean
+---@return System.Int32
+_G['System']['Boolean'].CompareTo = function(value) end
+
+---`Method NonPublic Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Boolean
+_G['System']['Boolean'].IsTrueStringIgnoreCase = function(value) end
+
+---`Method NonPublic Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Boolean
+_G['System']['Boolean'].IsFalseStringIgnoreCase = function(value) end
+
+---`Method Public Static`
+---@overload fun(value:System.String):(System.Boolean)
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Boolean
+_G['System']['Boolean'].Parse = function(value) end
+
+---`Method Public Static`
+---@overload fun(value:System.String, result:System.Boolean-ref):(System.Boolean)
+---@param value System.ReadOnlySpan*1System*Char
+---@param result System.Boolean-ref
+---@return System.Boolean
+_G['System']['Boolean'].TryParse = function(value, result) end
+
+---`Method Private Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.ReadOnlySpan*1System*Char
+_G['System']['Boolean'].TrimWhiteSpaceAndNull = function(value) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Boolean'].GetTypeCode = function() end
+
+---`Constructor Private Static`
+---@return System.Boolean
+_G['System']['Boolean'] = function() end
+
+---`Constructor Private Static`
+---@return System.Boolean
+_G['System']['Boolean'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD978D3DE0.lua b/Meta/Types/client/_00007FFD978D3DE0.lua
new file mode 100644
index 0000000..ec2f47c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978D3DE0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.SByte : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.SByte
+---`Field Public Static`
+---@field MaxValue System.SByte
+---`Field Public Static`
+---@field MinValue System.SByte
+_G['System']['SByte'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Int32)
+---@param value System.SByte
+---@return System.Int32
+_G['System']['SByte'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.SByte
+---@return System.Boolean
+_G['System']['SByte'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['SByte'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['SByte'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['SByte'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['SByte'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.SByte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.SByte)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.SByte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.SByte)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.SByte
+_G['System']['SByte'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.SByte
+_G['System']['SByte'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.SByte-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.SByte-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.SByte-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.SByte-ref
+---@return System.Boolean
+_G['System']['SByte'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.SByte-ref
+---@return System.Boolean
+_G['System']['SByte'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['SByte'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978D5EB0.lua b/Meta/Types/client/_00007FFD978D5EB0.lua
new file mode 100644
index 0000000..460150e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978D5EB0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.Byte : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Byte
+---`Field Public Static`
+---@field MaxValue System.Byte
+---`Field Public Static`
+---@field MinValue System.Byte
+_G['System']['Byte'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Byte
+---@return System.Int32
+_G['System']['Byte'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Byte
+---@return System.Boolean
+_G['System']['Byte'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Byte'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Byte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Byte)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Byte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Byte)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Byte
+_G['System']['Byte'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.Byte
+_G['System']['Byte'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Byte-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Byte-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Byte-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Byte-ref
+---@return System.Boolean
+_G['System']['Byte'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Byte-ref
+---@return System.Boolean
+_G['System']['Byte'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Byte'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Byte'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Byte'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Byte'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978D70C0.lua b/Meta/Types/client/_00007FFD978D70C0.lua
new file mode 100644
index 0000000..2e375b9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978D70C0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.Int16 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Int16
+---`Field Public Static`
+---@field MaxValue System.Int16
+---`Field Public Static`
+---@field MinValue System.Int16
+_G['System']['Int16'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Int16
+---@return System.Int32
+_G['System']['Int16'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Int16
+---@return System.Boolean
+_G['System']['Int16'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Int16'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Int16'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Int16'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Int16'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Int16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Int16)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Int16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Int16)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Int16
+_G['System']['Int16'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.Int16
+_G['System']['Int16'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Int16-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Int16-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Int16-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Int16-ref
+---@return System.Boolean
+_G['System']['Int16'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Int16-ref
+---@return System.Boolean
+_G['System']['Int16'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Int16'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978D82A8.lua b/Meta/Types/client/_00007FFD978D82A8.lua
new file mode 100644
index 0000000..b3f4d02
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978D82A8.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.UInt16 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.UInt16
+---`Field Public Static`
+---@field MaxValue System.UInt16
+---`Field Public Static`
+---@field MinValue System.UInt16
+_G['System']['UInt16'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.UInt16
+---@return System.Int32
+_G['System']['UInt16'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.UInt16
+---@return System.Boolean
+_G['System']['UInt16'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['UInt16'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['UInt16'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['UInt16'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['UInt16'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.UInt16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.UInt16)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.UInt16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.UInt16)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.UInt16
+_G['System']['UInt16'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.UInt16
+_G['System']['UInt16'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.UInt16-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.UInt16-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.UInt16-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.UInt16-ref
+---@return System.Boolean
+_G['System']['UInt16'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.UInt16-ref
+---@return System.Boolean
+_G['System']['UInt16'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['UInt16'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978D94B0.lua b/Meta/Types/client/_00007FFD978D94B0.lua
new file mode 100644
index 0000000..3958726
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978D94B0.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class System.Int32 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Int32
+---`Field Public Static`
+---@field MaxValue System.Int32
+---`Field Public Static`
+---@field MinValue System.Int32
+_G['System']['Int32'] = {}
+
+---`Method NonPublic Static`
+---@param value System.Int32.TOther
+---@return System.Int32
+_G['System']['Int32'].Create = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Int32
+---@return System.Int32
+_G['System']['Int32'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Int32
+---@return System.Boolean
+_G['System']['Int32'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Int32'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Int32'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Int32'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Int32'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Int32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Int32)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Int32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Int32)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Int32
+_G['System']['Int32'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Int32-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Int32-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Int32-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Int32-ref
+---@return System.Boolean
+_G['System']['Int32'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Int32'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978DA670.lua b/Meta/Types/client/_00007FFD978DA670.lua
new file mode 100644
index 0000000..5c409db
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978DA670.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class System.UInt32 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.UInt32
+---`Field Public Static`
+---@field MaxValue System.UInt32
+---`Field Public Static`
+---@field MinValue System.UInt32
+_G['System']['UInt32'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.UInt32
+---@return System.Int32
+_G['System']['UInt32'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.UInt32
+---@return System.Boolean
+_G['System']['UInt32'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['UInt32'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['UInt32'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['UInt32'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['UInt32'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.UInt32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.UInt32)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.UInt32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.UInt32)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.UInt32
+_G['System']['UInt32'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.UInt32-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.UInt32-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.UInt32-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.UInt32-ref
+---@return System.Boolean
+_G['System']['UInt32'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['UInt32'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978DB850.lua b/Meta/Types/client/_00007FFD978DB850.lua
new file mode 100644
index 0000000..057025b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978DB850.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class System.Int64 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Int64
+---`Field Public Static`
+---@field MaxValue System.Int64
+---`Field Public Static`
+---@field MinValue System.Int64
+_G['System']['Int64'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Int64
+---@return System.Int32
+_G['System']['Int64'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Int64
+---@return System.Boolean
+_G['System']['Int64'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Int64'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Int64'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Int64'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Int64'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Int64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Int64)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Int64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Int64)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Int64
+_G['System']['Int64'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Int64-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Int64-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Int64-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Int64-ref
+---@return System.Boolean
+_G['System']['Int64'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Int64'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978DCA08.lua b/Meta/Types/client/_00007FFD978DCA08.lua
new file mode 100644
index 0000000..58ae4d4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978DCA08.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class System.UInt64 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.UInt64
+---`Field Public Static`
+---@field MaxValue System.UInt64
+---`Field Public Static`
+---@field MinValue System.UInt64
+_G['System']['UInt64'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.UInt64
+---@return System.Int32
+_G['System']['UInt64'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.UInt64
+---@return System.Boolean
+_G['System']['UInt64'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['UInt64'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['UInt64'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['UInt64'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['UInt64'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.UInt64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.UInt64)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.UInt64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.UInt64)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.UInt64
+_G['System']['UInt64'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.UInt64-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.UInt64-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.UInt64-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.UInt64-ref
+---@return System.Boolean
+_G['System']['UInt64'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['UInt64'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978DED08.lua b/Meta/Types/client/_00007FFD978DED08.lua
new file mode 100644
index 0000000..f77c092
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978DED08.lua
@@ -0,0 +1,142 @@
+---@meta
+---@class System.Single : System.ValueType, number
+---@operator mul(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator mul(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator mul(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---`Field Private Instance`
+---@field m_value System.Single
+---`Field Public Static`
+---@field MinValue System.Single
+---`Field Public Static`
+---@field Epsilon System.Single
+---`Field Public Static`
+---@field MaxValue System.Single
+---`Field Public Static`
+---@field PositiveInfinity System.Single
+---`Field Public Static`
+---@field NegativeInfinity System.Single
+---`Field Public Static`
+---@field NaN System.Single
+_G['System']['Single'] = {}
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsFinite = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsInfinity = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNaN = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNegative = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNegativeInfinity = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNormal = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsPositiveInfinity = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsSubnormal = function(f) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt32
+---@return System.Int32
+_G['System']['Single'].ExtractExponentFromBits = function(bits) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt32
+---@return System.UInt32
+_G['System']['Single'].ExtractSignificandFromBits = function(bits) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Single
+---@return System.Int32
+_G['System']['Single'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Single
+---@return System.Boolean
+_G['System']['Single'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Single'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Single'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Single'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Single'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Single)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Single)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Single)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Single)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Single
+_G['System']['Single'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Single-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Single-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Single-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Single-ref
+---@return System.Boolean
+_G['System']['Single'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Single-ref
+---@return System.Boolean
+_G['System']['Single'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Single'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978E3210.lua b/Meta/Types/client/_00007FFD978E3210.lua
new file mode 100644
index 0000000..01bf802
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978E3210.lua
@@ -0,0 +1,140 @@
+---@meta
+---@class System.Double : System.ValueType, number
+---@operator mul(System.TimeSpan):System.TimeSpan
+---`Field Private Instance`
+---@field m_value System.Double
+---`Field Public Static`
+---@field MinValue System.Double
+---`Field Public Static`
+---@field MaxValue System.Double
+---`Field Public Static`
+---@field Epsilon System.Double
+---`Field Public Static`
+---@field NegativeInfinity System.Double
+---`Field Public Static`
+---@field PositiveInfinity System.Double
+---`Field Public Static`
+---@field NaN System.Double
+_G['System']['Double'] = {}
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsFinite = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsInfinity = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNaN = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNegative = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNegativeInfinity = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNormal = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsPositiveInfinity = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsSubnormal = function(d) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt64
+---@return System.Int32
+_G['System']['Double'].ExtractExponentFromBits = function(bits) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt64
+---@return System.UInt64
+_G['System']['Double'].ExtractSignificandFromBits = function(bits) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Double
+---@return System.Int32
+_G['System']['Double'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Double
+---@return System.Boolean
+_G['System']['Double'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Double'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Double'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Double'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Double'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Double)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Double)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Double)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Double)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Double
+_G['System']['Double'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Double-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Double-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Double-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Double-ref
+---@return System.Boolean
+_G['System']['Double'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Double-ref
+---@return System.Boolean
+_G['System']['Double'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Double'].GetTypeCode = function() end
+
diff --git a/Meta/Types/client/_00007FFD978ED708.lua b/Meta/Types/client/_00007FFD978ED708.lua
new file mode 100644
index 0000000..4db5d42
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978ED708.lua
@@ -0,0 +1,736 @@
+---@meta
+---@class System.String : System.Object, {[System.Int32]:System.Char}, string
+---`Field Private Instance`
+---@field _stringLength System.Int32
+---`Field Private Instance`
+---@field _firstChar System.Char
+---`Field Public Static`
+---@field Empty System.String
+---`Getter Public Instance`
+---@field Length System.Int32
+_G['System']['String'] = {}
+
+---`Method Public Instance`
+---@overload fun(value:System.String, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, count:System.Int32, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.Char):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@param value System.String
+---@return System.Int32
+_G['System']['String'].LastIndexOf = function(value) end
+
+---`Method Public Instance`
+---@overload fun(totalWidth:System.Int32):(System.String)
+---@param totalWidth System.Int32
+---@param paddingChar System.Char
+---@return System.String
+_G['System']['String'].PadRight = function(totalWidth, paddingChar) end
+
+---`Method Public Instance`
+---@overload fun(startIndex:System.Int32, count:System.Int32):(System.String)
+---@param startIndex System.Int32
+---@return System.String
+_G['System']['String'].Remove = function(startIndex) end
+
+---`Method Public Instance`
+---@overload fun(oldValue:System.String, newValue:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.String)
+---@overload fun(oldValue:System.String, newValue:System.String, comparisonType:System.StringComparison):(System.String)
+---@overload fun(oldChar:System.Char, newChar:System.Char):(System.String)
+---@param oldValue System.String
+---@param newValue System.String
+---@return System.String
+_G['System']['String'].Replace = function(oldValue, newValue) end
+
+---`Method Private Instance`
+---@param oldValue System.String
+---@param newValue System.String
+---@param ci System.Globalization.CompareInfo
+---@param options System.Globalization.CompareOptions
+---@return System.String
+_G['System']['String'].ReplaceCore = function(oldValue, newValue, ci, options) end
+
+---`Method Private Static`
+---@param searchSpace System.ReadOnlySpan*1System*Char
+---@param oldValue System.ReadOnlySpan*1System*Char
+---@param newValue System.ReadOnlySpan*1System*Char
+---@param compareInfo System.Globalization.CompareInfo
+---@param options System.Globalization.CompareOptions
+---@return System.String
+_G['System']['String'].ReplaceCore = function(searchSpace, oldValue, newValue, compareInfo, options) end
+
+---`Method Private Instance`
+---@param oldValueLength System.Int32
+---@param newValue System.String
+---@param indices System.ReadOnlySpan*1System*Int32
+---@return System.String
+_G['System']['String'].ReplaceHelper = function(oldValueLength, newValue, indices) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param replacementText System.String
+---@return System.String
+_G['System']['String'].ReplaceLineEndings = function(replacementText) end
+
+---`Method NonPublic Static`
+---@param text System.ReadOnlySpan*1System*Char
+---@param stride System.Int32-ref
+---@return System.Int32
+_G['System']['String'].IndexOfNewlineChar = function(text, stride) end
+
+---`Method Public Instance`
+---@overload fun(separator:System.Char, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.Char, count:System.Int32, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(...:System.Char):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.Char-arr)|(System.Char[]), count:System.Int32):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.Char-arr)|(System.Char[]), options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.Char-arr)|(System.Char[]), count:System.Int32, options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.String, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.String, count:System.Int32, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.String-arr)|(System.String[]), options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@param separator (System.String-arr)|(System.String[])
+---@param count System.Int32
+---@param options System.StringSplitOptions
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].Split = function(separator, count, options) end
+
+---`Method Private Instance`
+---@overload fun(separators:System.ReadOnlySpan*1System*Char, count:System.Int32, options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.String, separators:(System.String-arr)|(System.String[]), count:System.Int32, options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@param separator System.String
+---@param count System.Int32
+---@param options System.StringSplitOptions
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].SplitInternal = function(separator, count, options) end
+
+---`Method Private Instance`
+---@param sepList System.ReadOnlySpan*1System*Int32
+---@param lengthList System.ReadOnlySpan*1System*Int32
+---@param defaultLength System.Int32
+---@param count System.Int32
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].SplitWithoutPostProcessing = function(sepList, lengthList, defaultLength, count) end
+
+---`Method Private Instance`
+---@param sepList System.ReadOnlySpan*1System*Int32
+---@param lengthList System.ReadOnlySpan*1System*Int32
+---@param defaultLength System.Int32
+---@param count System.Int32
+---@param options System.StringSplitOptions
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].SplitWithPostProcessing = function(sepList, lengthList, defaultLength, count, options) end
+
+---`Method Private Instance`
+---@overload fun(separators:System.ReadOnlySpan*1System*Char, sepListBuilder:System.Collections.Generic.ValueListBuilder)
+---@overload fun(separator:System.String, sepListBuilder:System.Collections.Generic.ValueListBuilder)
+---@param separators (System.String-arr)|(System.String[])
+---@param sepListBuilder System.Collections.Generic.ValueListBuilder
+---@param lengthListBuilder System.Collections.Generic.ValueListBuilder
+_G['System']['String'].MakeSeparatorList = function(separators, sepListBuilder, lengthListBuilder) end
+
+---`Method Private Instance`
+---@param sepListBuilder System.Collections.Generic.ValueListBuilder
+---@param c System.Char
+---@param c2 System.Char
+---@param c3 System.Char
+_G['System']['String'].MakeSeparatorListVectorized = function(sepListBuilder, c, c2, c3) end
+
+---`Method Private Static`
+---@param options System.StringSplitOptions
+_G['System']['String'].CheckStringSplitOptions = function(options) end
+
+---`Method Public Instance`
+---@overload fun(startIndex:System.Int32):(System.String)
+---@param startIndex System.Int32
+---@param length System.Int32
+---@return System.String
+_G['System']['String'].Substring = function(startIndex, length) end
+
+---`Method Private Instance`
+---@param startIndex System.Int32
+---@param length System.Int32
+---@return System.String
+_G['System']['String'].InternalSubString = function(startIndex, length) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param culture System.Globalization.CultureInfo
+---@return System.String
+_G['System']['String'].ToLower = function(culture) end
+
+---`Method Public Instance`
+---@return System.String
+_G['System']['String'].ToLowerInvariant = function() end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param culture System.Globalization.CultureInfo
+---@return System.String
+_G['System']['String'].ToUpper = function(culture) end
+
+---`Method Public Instance`
+---@return System.String
+_G['System']['String'].ToUpperInvariant = function() end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@overload fun(trimChar:System.Char):(System.String)
+---@param ... System.Char
+---@return System.String
+_G['System']['String'].Trim = function(...) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@overload fun(trimChar:System.Char):(System.String)
+---@param ... System.Char
+---@return System.String
+_G['System']['String'].TrimStart = function(...) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@overload fun(trimChar:System.Char):(System.String)
+---@param ... System.Char
+---@return System.String
+_G['System']['String'].TrimEnd = function(...) end
+
+---`Method Private Instance`
+---@param trimType System.Text.TrimType
+---@return System.String
+_G['System']['String'].TrimWhiteSpaceHelper = function(trimType) end
+
+---`Method Private Instance`
+---@param trimChars System.Char-ptr
+---@param trimCharsLength System.Int32
+---@param trimType System.Text.TrimType
+---@return System.String
+_G['System']['String'].TrimHelper = function(trimChars, trimCharsLength, trimType) end
+
+---`Method Private Instance`
+---@param start System.Int32
+---@param luaKey__end System.Int32
+---@return System.String
+_G['System']['String'].CreateTrimmedString = function(start, luaKey__end) end
+
+---`Method Public Instance`
+---@overload fun(value:System.String):(System.Boolean)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@overload fun(value:System.Char):(System.Boolean)
+---@param value System.Char
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['System']['String'].Contains = function(value, comparisonType) end
+
+---`Method Public Instance`
+---@overload fun(value:System.Char):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.Char, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@overload fun(value:System.String):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, comparisonType:System.StringComparison):(System.Int32)
+---@param value System.String
+---@param startIndex System.Int32
+---@param count System.Int32
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].IndexOf = function(value, startIndex, count, comparisonType) end
+
+---`Method Public Instance`
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[])):(System.Int32)
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[]), startIndex:System.Int32):(System.Int32)
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].IndexOfAny = function(anyOf, startIndex, count) end
+
+---`Method Private Instance`
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].IndexOfCharArray = function(anyOf, startIndex, count) end
+
+---`Method Private Static`
+---@param charMap System.UInt32-ptr
+---@param anyOf System.ReadOnlySpan*1System*Char
+_G['System']['String'].InitializeProbabilisticMap = function(charMap, anyOf) end
+
+---`Method Private Static`
+---@param searchChar System.Char
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@return System.Boolean
+_G['System']['String'].ArrayContains = function(searchChar, anyOf) end
+
+---`Method Private Static`
+---@param charMap System.UInt32-ptr
+---@param value System.Byte
+---@return System.Boolean
+_G['System']['String'].IsCharBitSet = function(charMap, value) end
+
+---`Method Private Static`
+---@param charMap System.UInt32-ptr
+---@param value System.Byte
+_G['System']['String'].SetCharBit = function(charMap, value) end
+
+---`Method Public Instance`
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[])):(System.Int32)
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[]), startIndex:System.Int32):(System.Int32)
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].LastIndexOfAny = function(anyOf, startIndex, count) end
+
+---`Method Private Instance`
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].LastIndexOfCharArray = function(anyOf, startIndex, count) end
+
+---`Method Public Static`
+---@param value System.String
+---@return System.Boolean
+_G['System']['String'].IsNullOrEmpty = function(value) end
+
+---`Method Public Static`
+---@param value System.String
+---@return System.Boolean
+_G['System']['String'].IsNullOrWhiteSpace = function(value) end
+
+---`Method Public Instance`
+---@return System.Char-ref
+_G['System']['String'].GetPinnableReference = function() end
+
+---`Method NonPublic Instance`
+---@return System.Char-ref
+_G['System']['String'].GetRawStringData = function() end
+
+---`Method NonPublic Static`
+---@param bytes System.Byte-ptr
+---@param byteLength System.Int32
+---@param encoding System.Text.Encoding
+---@return System.String
+_G['System']['String'].CreateStringFromEncoding = function(bytes, byteLength, encoding) end
+
+---`Method NonPublic Static`
+---@overload fun(c:System.Char):(System.String)
+---@param c1 System.Char
+---@param c2 System.Char
+---@return System.String
+_G['System']['String'].CreateFromChar = function(c1, c2) end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['String'].ToString = function(provider) end
+
+---`Method Public Instance`
+---@return System.CharEnumerator
+_G['System']['String'].GetEnumerator = function() end
+
+---`Method Public Instance`
+---@return System.Text.StringRuneEnumerator
+_G['System']['String'].EnumerateRunes = function() end
+
+---`Method NonPublic Static`
+---@param ptr System.Char-ptr
+---@return System.Int32
+_G['System']['String'].wcslen = function(ptr) end
+
+---`Method NonPublic Static`
+---@param ptr System.Byte-ptr
+---@return System.Int32
+_G['System']['String'].strlen = function(ptr) end
+
+---`Method Private Static`
+_G['System']['String'].ThrowMustBeNullTerminatedString = function() end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['String'].GetTypeCode = function() end
+
+---`Method Public Instance`
+---@overload fun():(System.Boolean)
+---@param normalizationForm System.Text.NormalizationForm
+---@return System.Boolean
+_G['System']['String'].IsNormalized = function(normalizationForm) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param normalizationForm System.Text.NormalizationForm
+---@return System.String
+_G['System']['String'].Normalize = function(normalizationForm) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['System']['String'].IsAscii = function() end
+
+---`Method Private Static`
+---@param dest System.String
+---@param destPos System.Int32
+---@param src System.String
+_G['System']['String'].FillStringChecked = function(dest, destPos, src) end
+
+---`Method Public Static`
+---@overload fun(arg0:System.Object):(System.String)
+---@overload fun(arg0:System.Object, arg1:System.Object):(System.String)
+---@overload fun(arg0:System.Object, arg1:System.Object, arg2:System.Object):(System.String)
+---@overload fun(...:System.Object):(System.String)
+---@overload fun(values:(System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))):(System.String)
+---@overload fun(values:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):(System.String)
+---@overload fun(str0:System.String, str1:System.String):(System.String)
+---@overload fun(str0:System.String, str1:System.String, str2:System.String):(System.String)
+---@overload fun(str0:System.String, str1:System.String, str2:System.String, str3:System.String):(System.String)
+---@overload fun(str0:System.ReadOnlySpan*1System*Char, str1:System.ReadOnlySpan*1System*Char):(System.String)
+---@overload fun(str0:System.ReadOnlySpan*1System*Char, str1:System.ReadOnlySpan*1System*Char, str2:System.ReadOnlySpan*1System*Char):(System.String)
+---@overload fun(str0:System.ReadOnlySpan*1System*Char, str1:System.ReadOnlySpan*1System*Char, str2:System.ReadOnlySpan*1System*Char, str3:System.ReadOnlySpan*1System*Char):(System.String)
+---@param ... System.String
+---@return System.String
+_G['System']['String'].Concat = function(...) end
+
+---`Method Public Static`
+---@overload fun(format:System.String, arg0:System.Object):(System.String)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object):(System.String)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object):(System.String)
+---@overload fun(format:System.String, ...:System.Object):(System.String)
+---@overload fun(provider:System.IFormatProvider, format:System.String, arg0:System.Object):(System.String)
+---@overload fun(provider:System.IFormatProvider, format:System.String, arg0:System.Object, arg1:System.Object):(System.String)
+---@overload fun(provider:System.IFormatProvider, format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object):(System.String)
+---@param provider System.IFormatProvider
+---@param format System.String
+---@param ... System.Object
+---@return System.String
+_G['System']['String'].Format = function(provider, format, ...) end
+
+---`Method Private Static`
+---@param provider System.IFormatProvider
+---@param format System.String
+---@param args System.ParamsArray
+---@return System.String
+_G['System']['String'].FormatHelper = function(provider, format, args) end
+
+---`Method Public Instance`
+---@param startIndex System.Int32
+---@param value System.String
+---@return System.String
+_G['System']['String'].Insert = function(startIndex, value) end
+
+---`Method Public Static`
+---@overload fun(separator:System.Char, ...:System.String):(System.String)
+---@overload fun(separator:System.String, ...:System.String):(System.String)
+---@overload fun(separator:System.Char, value:(System.String-arr)|(System.String[]), startIndex:System.Int32, count:System.Int32):(System.String)
+---@overload fun(separator:System.String, value:(System.String-arr)|(System.String[]), startIndex:System.Int32, count:System.Int32):(System.String)
+---@overload fun(separator:System.String, values:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):(System.String)
+---@overload fun(separator:System.Char, ...:System.Object):(System.String)
+---@overload fun(separator:System.String, ...:System.Object):(System.String)
+---@overload fun(separator:System.Char, values:(System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))):(System.String)
+---@param separator System.String
+---@param values (System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))
+---@return System.String
+_G['System']['String'].Join = function(separator, values) end
+
+---`Method Private Static`
+---@overload fun(separator:System.ReadOnlySpan*1System*Char, value:(System.String-arr)|(System.String[]), startIndex:System.Int32, count:System.Int32):(System.String)
+---@overload fun(separator:System.ReadOnlySpan*1System*Char, values:(System.Object-arr)|(System.Object[])):(System.String)
+---@overload fun(separator:System.ReadOnlySpan*1System*Char, values:(System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))):(System.String)
+---@param separator System.ReadOnlySpan*1System*Char
+---@param values System.ReadOnlySpan*1System*String
+---@return System.String
+_G['System']['String'].JoinCore = function(separator, values) end
+
+---`Method Public Instance`
+---@overload fun(totalWidth:System.Int32):(System.String)
+---@param totalWidth System.Int32
+---@param paddingChar System.Char
+---@return System.String
+_G['System']['String'].PadLeft = function(totalWidth, paddingChar) end
+
+---`Method NonPublic Static`
+---@param length System.Int32
+---@return System.String
+_G['System']['String'].FastAllocateString = function(length) end
+
+---`Method NonPublic Instance`
+---@param data System.Byte
+_G['System']['String'].SetTrailByte = function(data) end
+
+---`Method NonPublic Instance`
+---@param data System.Byte-ref
+---@return System.Boolean
+_G['System']['String'].TryGetTrailByte = function(data) end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['String'].Intern = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['System']['String'].Intern = function(str) end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['String'].IsInterned = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['System']['String'].IsInterned = function(str) end
+
+---`Method NonPublic Static`
+---@param src System.String
+---@param dest System.IntPtr
+---@param len System.Int32
+_G['System']['String'].InternalCopy = function(src, dest, len) end
+
+---`Method NonPublic Instance`
+---@param pbNativeBuffer System.Byte-ptr
+---@param cbNativeBuffer System.Int32
+---@param encoding System.Text.Encoding
+---@return System.Int32
+_G['System']['String'].GetBytesFromEncoding = function(pbNativeBuffer, cbNativeBuffer, encoding) end
+
+---`Method Private Static`
+---@param strA System.String
+---@param strB System.String
+---@return System.Boolean
+_G['System']['String'].EqualsHelper = function(strA, strB) end
+
+---`Method Private Static`
+---@overload fun(strA:System.String, indexA:System.Int32, countA:System.Int32, strB:System.String, indexB:System.Int32, countB:System.Int32):(System.Int32)
+---@param strA System.String
+---@param strB System.String
+---@return System.Int32
+_G['System']['String'].CompareOrdinalHelper = function(strA, strB) end
+
+---`Method NonPublic Static`
+---@param strA System.String
+---@param strB System.String
+---@return System.Boolean
+_G['System']['String'].EqualsOrdinalIgnoreCase = function(strA, strB) end
+
+---`Method Private Static`
+---@param strA System.String
+---@param strB System.String
+---@return System.Boolean
+_G['System']['String'].EqualsOrdinalIgnoreCaseNoLengthCheck = function(strA, strB) end
+
+---`Method Public Static`
+---@overload fun(strA:System.String, strB:System.String):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, ignoreCase:System.Boolean):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, culture:System.Globalization.CultureInfo, options:System.Globalization.CompareOptions):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32, ignoreCase:System.Boolean):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32, culture:System.Globalization.CultureInfo, options:System.Globalization.CompareOptions):(System.Int32)
+---@param strA System.String
+---@param indexA System.Int32
+---@param strB System.String
+---@param indexB System.Int32
+---@param length System.Int32
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].Compare = function(strA, indexA, strB, indexB, length, comparisonType) end
+
+---`Method Public Static`
+---@overload fun(strA:System.String, strB:System.String):(System.Int32)
+---@param strA System.String
+---@param indexA System.Int32
+---@param strB System.String
+---@param indexB System.Int32
+---@param length System.Int32
+---@return System.Int32
+_G['System']['String'].CompareOrdinal = function(strA, indexA, strB, indexB, length) end
+
+---`Method NonPublic Static`
+---@param strA System.ReadOnlySpan*1System*Char
+---@param strB System.ReadOnlySpan*1System*Char
+---@return System.Int32
+_G['System']['String'].CompareOrdinal = function(strA, strB) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param strB System.String
+---@return System.Int32
+_G['System']['String'].CompareTo = function(strB) end
+
+---`Method Public Instance`
+---@overload fun(value:System.String):(System.Boolean)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@overload fun(value:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Boolean)
+---@param value System.Char
+---@return System.Boolean
+_G['System']['String'].EndsWith = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param value System.String
+---@return System.Boolean
+_G['System']['String'].Equals = function(value) end
+
+---`Method Public Instance`
+---@param value System.String
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['System']['String'].Equals = function(value, comparisonType) end
+
+---`Method Public Static`
+---@overload fun(a:System.String, b:System.String):(System.Boolean)
+---@param a System.String
+---@param b System.String
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['System']['String'].Equals = function(a, b, comparisonType) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['String'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].GetHashCode = function(comparisonType) end
+
+---`Method Public Static`
+---@overload fun(value:System.ReadOnlySpan*1System*Char):(System.Int32)
+---@param value System.ReadOnlySpan*1System*Char
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].GetHashCode = function(value, comparisonType) end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['System']['String'].GetHashCodeOrdinalIgnoreCase = function() end
+
+---`Method NonPublic Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Int32
+_G['System']['String'].GetHashCodeOrdinalIgnoreCase = function(value) end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['System']['String'].GetNonRandomizedHashCode = function() end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['System']['String'].GetNonRandomizedHashCodeOrdinalIgnoreCase = function() end
+
+---`Method Public Instance`
+---@overload fun(value:System.String):(System.Boolean)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@overload fun(value:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Boolean)
+---@param value System.Char
+---@return System.Boolean
+_G['System']['String'].StartsWith = function(value) end
+
+---`Method NonPublic Static`
+---@param comparisonType System.StringComparison
+_G['System']['String'].CheckStringComparison = function(comparisonType) end
+
+---`Method NonPublic Static`
+---@param comparisonType System.StringComparison
+---@return System.Globalization.CompareOptions
+_G['System']['String'].GetCaseCompareOfComparisonCulture = function(comparisonType) end
+
+---`Method Private Static`
+---@param comparisonType System.StringComparison
+---@return System.Globalization.CompareOptions
+_G['System']['String'].GetCompareOptionsFromOrdinalStringComparison = function(comparisonType) end
+
+---`Method Private Instance`
+---@overload fun(value:(System.Char-arr)|(System.Char[])):(System.String)
+---@overload fun(value:(System.Char-arr)|(System.Char[]), startIndex:System.Int32, length:System.Int32):(System.String)
+---@overload fun(ptr:System.Char-ptr):(System.String)
+---@overload fun(ptr:System.Char-ptr, startIndex:System.Int32, length:System.Int32):(System.String)
+---@overload fun(value:System.SByte-ptr):(System.String)
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32):(System.String)
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32, enc:System.Text.Encoding):(System.String)
+---@overload fun(c:System.Char, count:System.Int32):(System.String)
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.String
+_G['System']['String'].Ctor = function(value) end
+
+---`Method Private Static`
+---@param pb System.Byte-ptr
+---@param numBytes System.Int32
+---@return System.String
+_G['System']['String'].CreateStringForSByteConstructor = function(pb, numBytes) end
+
+---`Method Public Static`
+---@overload fun(length:System.Int32, state:System.String.TState, action:(System.Buffers.SpanAction*1System*Char*1System*String*TState)|(fun(span:System.Span*1System*Char, arg:System.String.TState))):(System.String)
+---@overload fun(provider:System.IFormatProvider, handler:System.Runtime.CompilerServices.DefaultInterpolatedStringHandler-ref):(System.String)
+---@param provider System.IFormatProvider
+---@param initialBuffer System.Span*1System*Char
+---@param handler System.Runtime.CompilerServices.DefaultInterpolatedStringHandler-ref
+---@return System.String
+_G['System']['String'].Create = function(provider, initialBuffer, handler) end
+
+---`Method NonPublic Instance`
+---@param startIndex System.Int32
+---@param count System.Int32
+---@param slice System.ReadOnlySpan
+---@return System.Boolean
+_G['System']['String'].TryGetSpan = function(startIndex, count, slice) end
+
+---`Method Public Instance Virtual`
+---@return System.Object
+_G['System']['String'].Clone = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['System']['String'].Copy = function(str) end
+
+---`Method Public Instance`
+---@overload fun(sourceIndex:System.Int32, destination:(System.Char-arr)|(System.Char[]), destinationIndex:System.Int32, count:System.Int32)
+---@param destination System.Span*1System*Char
+_G['System']['String'].CopyTo = function(destination) end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Char
+---@return System.Boolean
+_G['System']['String'].TryCopyTo = function(destination) end
+
+---`Method Public Instance`
+---@overload fun():((System.Char-arr)|(System.Char[]))
+---@param startIndex System.Int32
+---@param length System.Int32
+---@return (System.Char-arr)|(System.Char[])
+_G['System']['String'].ToCharArray = function(startIndex, length) end
+
+---`Constructor Public Instance`
+---@overload fun(value:(System.Char-arr)|(System.Char[])):System.String
+---@overload fun(value:(System.Char-arr)|(System.Char[]), startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.Char-ptr):System.String
+---@overload fun(value:System.Char-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32, enc:System.Text.Encoding):System.String
+---@overload fun(c:System.Char, count:System.Int32):System.String
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.String
+_G['System']['String'] = function(value) end
+
+---`Constructor Public Instance`
+---@overload fun(value:(System.Char-arr)|(System.Char[])):System.String
+---@overload fun(value:(System.Char-arr)|(System.Char[]), startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.Char-ptr):System.String
+---@overload fun(value:System.Char-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32, enc:System.Text.Encoding):System.String
+---@overload fun(c:System.Char, count:System.Int32):System.String
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.String
+_G['System']['String'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD978EF0B8.lua b/Meta/Types/client/_00007FFD978EF0B8.lua
new file mode 100644
index 0000000..96e2162
--- /dev/null
+++ b/Meta/Types/client/_00007FFD978EF0B8.lua
@@ -0,0 +1,206 @@
+---@meta
+---@class System.Exception : System.Object
+---`Field Private Instance`
+---@field _exceptionMethod System.Reflection.MethodBase
+---`Field NonPublic Instance`
+---@field _message System.String
+---`Field Private Instance`
+---@field _data System.Collections.IDictionary
+---`Field Private Instance`
+---@field _innerException System.Exception
+---`Field Private Instance`
+---@field _helpURL System.String
+---`Field Private Instance`
+---@field _stackTrace (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field _watsonBuckets (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field _stackTraceString System.String
+---`Field Private Instance`
+---@field _remoteStackTraceString System.String
+---`Field Private Instance`
+---@field _dynamicMethods (System.Object-arr)|(System.Object[])
+---`Field Private Instance`
+---@field _source System.String
+---`Field Private Instance`
+---@field _ipForWatsonBuckets System.UIntPtr
+---`Field Private Instance`
+---@field _xptrs System.IntPtr
+---`Field Private Instance`
+---@field _xcode System.Int32
+---`Field Private Instance`
+---@field _HResult System.Int32
+---`Field Private Static`
+---@field _COMPlusExceptionCode System.Int32
+---`Field NonPublic Static`
+---@field InnerExceptionPrefix System.String
+---`Getter Public Instance`
+---@field TargetSite System.Reflection.MethodBase
+---`Getter Private Instance`
+---@field HasBeenThrown System.Boolean
+---`Getter Private Instance`
+---@field SerializationWatsonBuckets System.Object
+---`Getter Public Instance Virtual`
+---@field Message System.String
+---`Getter Public Instance Virtual`
+---@field Data System.Collections.IDictionary
+---`Getter Public Instance`
+---@field InnerException System.Exception
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HelpLink System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Source System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HResult System.Int32
+---`Getter Public Instance Virtual`
+---@field StackTrace System.String
+---`Getter Private Instance`
+---@field SerializationStackTraceString System.String
+_G['System']['Exception'] = {}
+
+---`Method Private Instance`
+---@return System.Collections.IDictionary
+_G['System']['Exception'].CreateDataContainer = function() end
+
+---`Method Private Static`
+---@param e System.Exception
+---@return System.Boolean
+_G['System']['Exception'].IsImmutableAgileException = function(e) end
+
+---`Method Private Static`
+---@param stackTrace System.Object
+---@return System.IRuntimeMethodInfo
+_G['System']['Exception'].GetMethodFromStackTrace = function(stackTrace) end
+
+---`Method Private Instance`
+---@return System.Reflection.MethodBase
+_G['System']['Exception'].GetExceptionMethodFromStackTrace = function() end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['Exception'].CreateSourceName = function() end
+
+---`Method Private Instance`
+---@param context System.Runtime.Serialization.StreamingContext
+_G['System']['Exception'].OnDeserialized = function(context) end
+
+---`Method NonPublic Instance`
+_G['System']['Exception'].InternalPreserveStackTrace = function() end
+
+---`Method Private Static`
+_G['System']['Exception'].PrepareForForeignExceptionRaise = function() end
+
+---`Method Private Static`
+---@param exception System.Exception
+---@param currentStackTrace System.Byte-arr-ref
+---@param dynamicMethodArray System.Object-arr-ref
+_G['System']['Exception'].GetStackTracesDeepCopy = function(exception, currentStackTrace, dynamicMethodArray) end
+
+---`Method NonPublic Static`
+---@param exception System.Exception
+---@param currentStackTrace (System.Byte-arr)|(System.Byte[])
+---@param dynamicMethodArray (System.Object-arr)|(System.Object[])
+_G['System']['Exception'].SaveStackTracesFromDeepCopy = function(exception, currentStackTrace, dynamicMethodArray) end
+
+---`Method NonPublic Static`
+---@return System.UInt32
+_G['System']['Exception'].GetExceptionCount = function() end
+
+---`Method NonPublic Instance`
+---@param dispatchState System.DispatchState-ref
+_G['System']['Exception'].RestoreDispatchState = function(dispatchState) end
+
+---`Method NonPublic Static`
+---@param kind System.Exception.ExceptionMessageKind
+---@return System.String
+_G['System']['Exception'].GetMessageFromNativeResources = function(kind) end
+
+---`Method Private Static`
+---@param kind System.Exception.ExceptionMessageKind
+---@param retMesg System.Runtime.CompilerServices.StringHandleOnStack
+_G['System']['Exception'].GetMessageFromNativeResources = function(kind, retMesg) end
+
+---`Method NonPublic Instance`
+---@return System.Exception.DispatchState
+_G['System']['Exception'].CaptureDispatchState = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['System']['Exception'].CanSetRemoteStackTrace = function() end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['Exception'].GetClassName = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Exception
+_G['System']['Exception'].GetBaseException = function() end
+
+---`Method Public Instance Virtual`
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+_G['System']['Exception'].GetObjectData = function(info, context) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['System']['Exception'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Type
+_G['System']['Exception'].GetType = function() end
+
+---`Method Private Instance`
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+_G['System']['Exception'].RestoreRemoteStackTrace = function(info, context) end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['Exception'].GetStackTrace = function() end
+
+---`Method NonPublic Instance`
+_G['System']['Exception'].SetCurrentStackTrace = function() end
+
+---`Method NonPublic Instance`
+---@param stackTrace System.String
+_G['System']['Exception'].SetRemoteStackTrace = function(stackTrace) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'] = function(info, context) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'].__new = function(info, context) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'] = function(info, context) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'].__new = function(info, context) end
+
diff --git a/Meta/Types/client/_00007FFD97AA0EF0.lua b/Meta/Types/client/_00007FFD97AA0EF0.lua
new file mode 100644
index 0000000..339d738
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97AA0EF0.lua
@@ -0,0 +1,279 @@
+---@meta
+---@class System.TimeSpan : System.ValueType
+---@operator unm:System.TimeSpan
+---@operator sub(System.TimeSpan):System.TimeSpan
+---@operator add(System.TimeSpan):System.TimeSpan
+---@operator mul(System.Double):System.TimeSpan
+---@operator div(System.Double):System.TimeSpan
+---@operator div(System.TimeSpan):System.Double
+---`Field NonPublic Instance`
+---@field _ticks System.Int64
+---`Field Public Static`
+---@field Zero System.TimeSpan
+---`Field Public Static`
+---@field MaxValue System.TimeSpan
+---`Field Public Static`
+---@field MinValue System.TimeSpan
+---`Field Public Static`
+---@field TicksPerMillisecond System.Int64
+---`Field Public Static`
+---@field TicksPerSecond System.Int64
+---`Field Public Static`
+---@field TicksPerMinute System.Int64
+---`Field Public Static`
+---@field TicksPerHour System.Int64
+---`Field Public Static`
+---@field TicksPerDay System.Int64
+---`Getter Public Instance`
+---@field Ticks System.Int64
+---`Getter Public Instance`
+---@field Days System.Int32
+---`Getter Public Instance`
+---@field Hours System.Int32
+---`Getter Public Instance`
+---@field Milliseconds System.Int32
+---`Getter Public Instance`
+---@field Minutes System.Int32
+---`Getter Public Instance`
+---@field Seconds System.Int32
+---`Getter Public Instance`
+---@field TotalDays System.Double
+---`Getter Public Instance`
+---@field TotalHours System.Double
+---`Getter Public Instance`
+---@field TotalMilliseconds System.Double
+---`Getter Public Instance`
+---@field TotalMinutes System.Double
+---`Getter Public Instance`
+---@field TotalSeconds System.Double
+_G['TimeSpan'] = {}
+
+---`Method Public Instance`
+---@param ts System.TimeSpan
+---@return System.TimeSpan
+_G['TimeSpan'].Add = function(ts) end
+
+---`Method Public Static`
+---@param t1 System.TimeSpan
+---@param t2 System.TimeSpan
+---@return System.Int32
+_G['TimeSpan'].Compare = function(t1, t2) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.TimeSpan
+---@return System.Int32
+_G['TimeSpan'].CompareTo = function(value) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromDays = function(value) end
+
+---`Method Public Instance`
+---@return System.TimeSpan
+_G['TimeSpan'].Duration = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Boolean)
+---@param obj System.TimeSpan
+---@return System.Boolean
+_G['TimeSpan'].Equals = function(obj) end
+
+---`Method Public Static`
+---@param t1 System.TimeSpan
+---@param t2 System.TimeSpan
+---@return System.Boolean
+_G['TimeSpan'].Equals = function(t1, t2) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['TimeSpan'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromHours = function(value) end
+
+---`Method Private Static`
+---@param value System.Double
+---@param scale System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].Interval = function(value, scale) end
+
+---`Method Private Static`
+---@param ticks System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].IntervalFromDoubleTicks = function(ticks) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromMilliseconds = function(value) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromMinutes = function(value) end
+
+---`Method Public Instance`
+---@return System.TimeSpan
+_G['TimeSpan'].Negate = function() end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromSeconds = function(value) end
+
+---`Method Public Instance`
+---@param ts System.TimeSpan
+---@return System.TimeSpan
+_G['TimeSpan'].Subtract = function(ts) end
+
+---`Method Public Instance`
+---@param factor System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].Multiply = function(factor) end
+
+---`Method Public Instance`
+---@overload fun(divisor:System.Double):(System.TimeSpan)
+---@param ts System.TimeSpan
+---@return System.Double
+_G['TimeSpan'].Divide = function(ts) end
+
+---`Method Public Static`
+---@param value System.Int64
+---@return System.TimeSpan
+_G['TimeSpan'].FromTicks = function(value) end
+
+---`Method NonPublic Static`
+---@param hour System.Int32
+---@param minute System.Int32
+---@param second System.Int32
+---@return System.Int64
+_G['TimeSpan'].TimeToTicks = function(hour, minute, second) end
+
+---`Method Private Static`
+---@param style System.Globalization.TimeSpanStyles
+---@param parameterName System.String
+_G['TimeSpan'].ValidateStyles = function(style, parameterName) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.TimeSpan)
+---@overload fun(input:System.String, formatProvider:System.IFormatProvider):(System.TimeSpan)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formatProvider? System.IFormatProvider
+---@return System.TimeSpan
+_G['TimeSpan'].Parse = function(input, formatProvider) end
+
+---`Method Public Static`
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider):(System.TimeSpan)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider):(System.TimeSpan)
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles):(System.TimeSpan)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, format:System.ReadOnlySpan*1System*Char, formatProvider:System.IFormatProvider, styles?:System.Globalization.TimeSpanStyles):(System.TimeSpan)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles):(System.TimeSpan)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formats (System.String-arr)|(System.String[])
+---@param formatProvider System.IFormatProvider
+---@param styles? System.Globalization.TimeSpanStyles
+---@return System.TimeSpan
+_G['TimeSpan'].ParseExact = function(input, formats, formatProvider, styles) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formatProvider System.IFormatProvider
+---@param result System.TimeSpan-ref
+---@return System.Boolean
+_G['TimeSpan'].TryParse = function(input, formatProvider, result) end
+
+---`Method Public Static`
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, format:System.ReadOnlySpan*1System*Char, formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, format:System.ReadOnlySpan*1System*Char, formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles, result:System.TimeSpan-ref):(System.Boolean)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formats (System.String-arr)|(System.String[])
+---@param formatProvider System.IFormatProvider
+---@param styles System.Globalization.TimeSpanStyles
+---@param result System.TimeSpan-ref
+---@return System.Boolean
+_G['TimeSpan'].TryParseExact = function(input, formats, formatProvider, styles, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@param format System.String
+---@param formatProvider System.IFormatProvider
+---@return System.String
+_G['TimeSpan'].ToString = function(format, formatProvider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['TimeSpan'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param formatProvider? System.IFormatProvider
+---@return System.Boolean
+_G['TimeSpan'].TryFormat = function(destination, charsWritten, format, formatProvider) end
+
+---`Constructor Private Static`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'] = function(days, hours, minutes, seconds, milliseconds) end
+
+---`Constructor Private Static`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'].__new = function(days, hours, minutes, seconds, milliseconds) end
+
+---`Constructor Public Instance`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'] = function(days, hours, minutes, seconds, milliseconds) end
+
+---`Constructor Public Instance`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'].__new = function(days, hours, minutes, seconds, milliseconds) end
+
diff --git a/Meta/Types/client/_00007FFD97AF4950.lua b/Meta/Types/client/_00007FFD97AF4950.lua
new file mode 100644
index 0000000..ff43983
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97AF4950.lua
@@ -0,0 +1,258 @@
+---@meta
+---@class System.Console : System.Object
+---`Field Private Static`
+---@field s_syncObject System.Object
+---`Field Private Static`
+---@field s_in System.IO.TextReader
+---`Field Private Static`
+---@field s_out System.IO.TextWriter
+---`Field Private Static`
+---@field s_error System.IO.TextWriter
+---`Field Private Static`
+---@field s_inputEncoding System.Text.Encoding
+---`Field Private Static`
+---@field s_outputEncoding System.Text.Encoding
+---`Field Private Static`
+---@field s_isOutTextWriterRedirected System.Boolean
+---`Field Private Static`
+---@field s_isErrorTextWriterRedirected System.Boolean
+---`Field Private Static`
+---@field s_cancelCallbacks (System.ConsoleCancelEventHandler)|(fun(sender:System.Object, e:System.ConsoleCancelEventArgs))
+---`Field Private Static`
+---@field s_sigIntRegistration System.Runtime.InteropServices.PosixSignalRegistration
+---`Field Private Static`
+---@field s_sigQuitRegistration System.Runtime.InteropServices.PosixSignalRegistration
+---`Field Private Static`
+---@field _isStdInRedirected System.Runtime.CompilerServices.StrongBox*1System*Boolean
+---`Field Private Static`
+---@field _isStdOutRedirected System.Runtime.CompilerServices.StrongBox*1System*Boolean
+---`Field Private Static`
+---@field _isStdErrRedirected System.Runtime.CompilerServices.StrongBox*1System*Boolean
+---`Getter Public Static`
+---@field In System.IO.TextReader
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field InputEncoding System.Text.Encoding
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field OutputEncoding System.Text.Encoding
+---`Getter Public Static`
+---@field KeyAvailable System.Boolean
+---`Getter Public Static`
+---@field Out System.IO.TextWriter
+---`Getter Public Static`
+---@field Error System.IO.TextWriter
+---`Getter Public Static`
+---@field IsInputRedirected System.Boolean
+---`Getter Public Static`
+---@field IsOutputRedirected System.Boolean
+---`Getter Public Static`
+---@field IsErrorRedirected System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorSize System.Int32
+---`Getter Public Static`
+---@field NumberLock System.Boolean
+---`Getter Public Static`
+---@field CapsLock System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BackgroundColor System.ConsoleColor
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field ForegroundColor System.ConsoleColor
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BufferWidth System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BufferHeight System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowLeft System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowTop System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowWidth System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowHeight System.Int32
+---`Getter Public Static`
+---@field LargestWindowWidth System.Int32
+---`Getter Public Static`
+---@field LargestWindowHeight System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorVisible System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorLeft System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorTop System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Title System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field TreatControlCAsInput System.Boolean
+_G['System']['Console'] = {}
+
+---`Method Public Static`
+---@overload fun(format:System.String, arg0:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object)
+---@overload fun(format:System.String, ...:System.Object)
+---@overload fun()
+---@overload fun(value:System.Boolean)
+---@overload fun(value:System.Char)
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]))
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]), index:System.Int32, count:System.Int32)
+---@overload fun(value:System.Decimal)
+---@overload fun(value:System.Double)
+---@overload fun(value:System.Single)
+---@overload fun(value:System.Int32)
+---@overload fun(value:System.UInt32)
+---@overload fun(value:System.Int64)
+---@overload fun(value:System.UInt64)
+---@overload fun(value:System.Object)
+---@param value System.String
+_G['System']['Console'].WriteLine = function(value) end
+
+---`Method Public Static`
+---@overload fun(format:System.String, arg0:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object)
+---@overload fun(format:System.String, ...:System.Object)
+---@overload fun(value:System.Boolean)
+---@overload fun(value:System.Char)
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]))
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]), index:System.Int32, count:System.Int32)
+---@overload fun(value:System.Double)
+---@overload fun(value:System.Decimal)
+---@overload fun(value:System.Single)
+---@overload fun(value:System.Int32)
+---@overload fun(value:System.UInt32)
+---@overload fun(value:System.Int64)
+---@overload fun(value:System.UInt64)
+---@overload fun(value:System.Object)
+---@param value System.String
+_G['System']['Console'].Write = function(value) end
+
+---`Method Private Static`
+---@param ctx System.Runtime.InteropServices.PosixSignalContext
+_G['System']['Console'].HandlePosixSignal = function(ctx) end
+
+---`Method Public Static`
+---@overload fun():(System.ConsoleKeyInfo)
+---@param intercept System.Boolean
+---@return System.ConsoleKeyInfo
+_G['System']['Console'].ReadKey = function(intercept) end
+
+---`Method Private Static`
+---@param outputStream System.IO.Stream
+---@return System.IO.TextWriter
+_G['System']['Console'].CreateOutputWriter = function(outputStream) end
+
+---`Method Public Static`
+_G['System']['Console'].ResetColor = function() end
+
+---`Method Public Static`
+---@param width System.Int32
+---@param height System.Int32
+_G['System']['Console'].SetBufferSize = function(width, height) end
+
+---`Method Public Static`
+---@param left System.Int32
+---@param top System.Int32
+_G['System']['Console'].SetWindowPosition = function(left, top) end
+
+---`Method Public Static`
+---@param width System.Int32
+---@param height System.Int32
+_G['System']['Console'].SetWindowSize = function(width, height) end
+
+---`Method Public Static`
+---@return System.ValueTuple*1System*Int32*1System*Int32
+_G['System']['Console'].GetCursorPosition = function() end
+
+---`Method Public Static`
+---@overload fun()
+---@param frequency System.Int32
+---@param duration System.Int32
+_G['System']['Console'].Beep = function(frequency, duration) end
+
+---`Method Public Static`
+---@overload fun(sourceLeft:System.Int32, sourceTop:System.Int32, sourceWidth:System.Int32, sourceHeight:System.Int32, targetLeft:System.Int32, targetTop:System.Int32)
+---@param sourceLeft System.Int32
+---@param sourceTop System.Int32
+---@param sourceWidth System.Int32
+---@param sourceHeight System.Int32
+---@param targetLeft System.Int32
+---@param targetTop System.Int32
+---@param sourceChar System.Char
+---@param sourceForeColor System.ConsoleColor
+---@param sourceBackColor System.ConsoleColor
+_G['System']['Console'].MoveBufferArea = function(sourceLeft, sourceTop, sourceWidth, sourceHeight, targetLeft, targetTop, sourceChar, sourceForeColor, sourceBackColor) end
+
+---`Method Public Static`
+_G['System']['Console'].Clear = function() end
+
+---`Method Public Static`
+---@param left System.Int32
+---@param top System.Int32
+_G['System']['Console'].SetCursorPosition = function(left, top) end
+
+---`Method Public Static`
+---@overload fun():(System.IO.Stream)
+---@param bufferSize System.Int32
+---@return System.IO.Stream
+_G['System']['Console'].OpenStandardInput = function(bufferSize) end
+
+---`Method Public Static`
+---@overload fun():(System.IO.Stream)
+---@param bufferSize System.Int32
+---@return System.IO.Stream
+_G['System']['Console'].OpenStandardOutput = function(bufferSize) end
+
+---`Method Public Static`
+---@overload fun():(System.IO.Stream)
+---@param bufferSize System.Int32
+---@return System.IO.Stream
+_G['System']['Console'].OpenStandardError = function(bufferSize) end
+
+---`Method Public Static`
+---@param newIn System.IO.TextReader
+_G['System']['Console'].SetIn = function(newIn) end
+
+---`Method Public Static`
+---@param newOut System.IO.TextWriter
+_G['System']['Console'].SetOut = function(newOut) end
+
+---`Method Public Static`
+---@param newError System.IO.TextWriter
+_G['System']['Console'].SetError = function(newError) end
+
+---`Method Private Static`
+---@param obj System.Object
+---@param paramName System.String
+_G['System']['Console'].CheckNonNull = function(obj, paramName) end
+
+---`Method Public Static`
+---@return System.Int32
+_G['System']['Console'].Read = function() end
+
+---`Method Public Static`
+---@return System.String
+_G['System']['Console'].ReadLine = function() end
+
+---`Constructor Private Static`
+---@return System.Console
+_G['System']['Console'] = function() end
+
+---`Constructor Private Static`
+---@return System.Console
+_G['System']['Console'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97AFB7E8.lua b/Meta/Types/client/_00007FFD97AFB7E8.lua
new file mode 100644
index 0000000..58a8a46
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97AFB7E8.lua
@@ -0,0 +1,348 @@
+---@meta
+---@class System.Math : System.Object
+---`Field Private Static`
+---@field roundPower10Double (System.Double-arr)|(System.Double[])
+---`Field Public Static`
+---@field E System.Double
+---`Field Public Static`
+---@field PI System.Double
+---`Field Public Static`
+---@field Tau System.Double
+_G['System']['Math'] = {}
+
+---`Method Public Static`
+---@overload fun(val1:System.Byte, val2:System.Byte):(System.Byte)
+---@overload fun(val1:System.Decimal, val2:System.Decimal):(System.Decimal)
+---@overload fun(val1:System.Double, val2:System.Double):(System.Double)
+---@overload fun(val1:System.Int16, val2:System.Int16):(System.Int16)
+---@overload fun(val1:System.Int32, val2:System.Int32):(System.Int32)
+---@overload fun(val1:System.Int64, val2:System.Int64):(System.Int64)
+---@overload fun(val1:System.IntPtr, val2:System.IntPtr):(System.IntPtr)
+---@overload fun(val1:System.SByte, val2:System.SByte):(System.SByte)
+---@overload fun(val1:System.Single, val2:System.Single):(System.Single)
+---@overload fun(val1:System.UInt16, val2:System.UInt16):(System.UInt16)
+---@overload fun(val1:System.UInt32, val2:System.UInt32):(System.UInt32)
+---@overload fun(val1:System.UInt64, val2:System.UInt64):(System.UInt64)
+---@param val1 System.UIntPtr
+---@param val2 System.UIntPtr
+---@return System.UIntPtr
+_G['System']['Math'].Min = function(val1, val2) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].MinMagnitude = function(x, y) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].ReciprocalEstimate = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].ReciprocalSqrtEstimate = function(d) end
+
+---`Method Public Static`
+---@overload fun(d:System.Decimal):(System.Decimal)
+---@overload fun(d:System.Decimal, decimals:System.Int32):(System.Decimal)
+---@overload fun(d:System.Decimal, mode:System.MidpointRounding):(System.Decimal)
+---@overload fun(d:System.Decimal, decimals:System.Int32, mode:System.MidpointRounding):(System.Decimal)
+---@overload fun(a:System.Double):(System.Double)
+---@overload fun(value:System.Double, digits:System.Int32):(System.Double)
+---@overload fun(value:System.Double, mode:System.MidpointRounding):(System.Double)
+---@param value System.Double
+---@param digits System.Int32
+---@param mode System.MidpointRounding
+---@return System.Double
+_G['System']['Math'].Round = function(value, digits, mode) end
+
+---`Method Public Static`
+---@overload fun(value:System.Decimal):(System.Int32)
+---@overload fun(value:System.Double):(System.Int32)
+---@overload fun(value:System.Int16):(System.Int32)
+---@overload fun(value:System.Int32):(System.Int32)
+---@overload fun(value:System.Int64):(System.Int32)
+---@overload fun(value:System.IntPtr):(System.Int32)
+---@overload fun(value:System.SByte):(System.Int32)
+---@param value System.Single
+---@return System.Int32
+_G['System']['Math'].Sign = function(value) end
+
+---`Method Public Static`
+---@overload fun(d:System.Decimal):(System.Decimal)
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Truncate = function(d) end
+
+---`Method Private Static`
+---@param min System.Math.T
+---@param max System.Math.T
+_G['System']['Math'].ThrowMinMaxException = function(min, max) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param n System.Int32
+---@return System.Double
+_G['System']['Math'].ScaleB = function(x, n) end
+
+---`Method Public Static`
+---@overload fun(value:System.Double):(System.Double)
+---@overload fun(value:System.Single):(System.Single)
+---@overload fun(value:System.Int16):(System.Int16)
+---@overload fun(value:System.Int32):(System.Int32)
+---@overload fun(value:System.Int64):(System.Int64)
+---@overload fun(value:System.IntPtr):(System.IntPtr)
+---@overload fun(value:System.SByte):(System.SByte)
+---@param value System.Decimal
+---@return System.Decimal
+_G['System']['Math'].Abs = function(value) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Acos = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Acosh = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Asin = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Asinh = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Atan = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Atanh = function(d) end
+
+---`Method Public Static`
+---@param y System.Double
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].Atan2 = function(y, x) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Cbrt = function(d) end
+
+---`Method Public Static`
+---@overload fun(a:System.Double):(System.Double)
+---@param d System.Decimal
+---@return System.Decimal
+_G['System']['Math'].Ceiling = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Cos = function(d) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.Double
+_G['System']['Math'].Cosh = function(value) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Exp = function(d) end
+
+---`Method Public Static`
+---@overload fun(d:System.Double):(System.Double)
+---@param d System.Decimal
+---@return System.Decimal
+_G['System']['Math'].Floor = function(d) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@param z System.Double
+---@return System.Double
+_G['System']['Math'].FusedMultiplyAdd = function(x, y, z) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Int32
+_G['System']['Math'].ILogB = function(x) end
+
+---`Method Public Static`
+---@overload fun(d:System.Double):(System.Double)
+---@param a System.Double
+---@param newBase System.Double
+---@return System.Double
+_G['System']['Math'].Log = function(a, newBase) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].Log2 = function(x) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Log10 = function(d) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].Pow = function(x, y) end
+
+---`Method Public Static`
+---@param a System.Double
+---@return System.Double
+_G['System']['Math'].Sin = function(a) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.ValueTuple*1System*Double*1System*Double
+_G['System']['Math'].SinCos = function(x) end
+
+---`Method Private Static`
+---@param x System.Double
+---@param sin System.Double-ptr
+---@param cos System.Double-ptr
+_G['System']['Math'].SinCos = function(x, sin, cos) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.Double
+_G['System']['Math'].Sinh = function(value) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Sqrt = function(d) end
+
+---`Method Public Static`
+---@param a System.Double
+---@return System.Double
+_G['System']['Math'].Tan = function(a) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.Double
+_G['System']['Math'].Tanh = function(value) end
+
+---`Method Private Static`
+---@param x System.Double
+---@param intptr System.Double-ptr
+---@return System.Double
+_G['System']['Math'].ModF = function(x, intptr) end
+
+---`Method Private Static`
+_G['System']['Math'].ThrowAbsOverflow = function() end
+
+---`Method Public Static`
+---@overload fun(a:System.Int32, b:System.Int32):(System.Int64)
+---@overload fun(a:System.UInt64, b:System.UInt64, low:System.UInt64-ref):(System.UInt64)
+---@param a System.Int64
+---@param b System.Int64
+---@param low System.Int64-ref
+---@return System.Int64
+_G['System']['Math'].BigMul = function(a, b, low) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].BitDecrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].BitIncrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].CopySign = function(x, y) end
+
+---`Method Public Static`
+---@overload fun(a:System.Int32, b:System.Int32, result:System.Int32-ref):(System.Int32)
+---@overload fun(a:System.Int64, b:System.Int64, result:System.Int64-ref):(System.Int64)
+---@overload fun(left:System.SByte, right:System.SByte):(System.ValueTuple*1System*SByte*1System*SByte)
+---@overload fun(left:System.Byte, right:System.Byte):(System.ValueTuple*1System*Byte*1System*Byte)
+---@overload fun(left:System.Int16, right:System.Int16):(System.ValueTuple*1System*Int16*1System*Int16)
+---@overload fun(left:System.UInt16, right:System.UInt16):(System.ValueTuple*1System*UInt16*1System*UInt16)
+---@overload fun(left:System.Int32, right:System.Int32):(System.ValueTuple*1System*Int32*1System*Int32)
+---@overload fun(left:System.UInt32, right:System.UInt32):(System.ValueTuple*1System*UInt32*1System*UInt32)
+---@overload fun(left:System.Int64, right:System.Int64):(System.ValueTuple*1System*Int64*1System*Int64)
+---@overload fun(left:System.UInt64, right:System.UInt64):(System.ValueTuple*1System*UInt64*1System*UInt64)
+---@overload fun(left:System.IntPtr, right:System.IntPtr):(System.ValueTuple*1System*IntPtr*1System*IntPtr)
+---@param left System.UIntPtr
+---@param right System.UIntPtr
+---@return System.ValueTuple*1System*UIntPtr*1System*UIntPtr
+_G['System']['Math'].DivRem = function(left, right) end
+
+---`Method Public Static`
+---@overload fun(value:System.Byte, min:System.Byte, max:System.Byte):(System.Byte)
+---@overload fun(value:System.Decimal, min:System.Decimal, max:System.Decimal):(System.Decimal)
+---@overload fun(value:System.Double, min:System.Double, max:System.Double):(System.Double)
+---@overload fun(value:System.Int16, min:System.Int16, max:System.Int16):(System.Int16)
+---@overload fun(value:System.Int32, min:System.Int32, max:System.Int32):(System.Int32)
+---@overload fun(value:System.Int64, min:System.Int64, max:System.Int64):(System.Int64)
+---@overload fun(value:System.IntPtr, min:System.IntPtr, max:System.IntPtr):(System.IntPtr)
+---@overload fun(value:System.SByte, min:System.SByte, max:System.SByte):(System.SByte)
+---@overload fun(value:System.Single, min:System.Single, max:System.Single):(System.Single)
+---@overload fun(value:System.UInt16, min:System.UInt16, max:System.UInt16):(System.UInt16)
+---@overload fun(value:System.UInt32, min:System.UInt32, max:System.UInt32):(System.UInt32)
+---@overload fun(value:System.UInt64, min:System.UInt64, max:System.UInt64):(System.UInt64)
+---@param value System.UIntPtr
+---@param min System.UIntPtr
+---@param max System.UIntPtr
+---@return System.UIntPtr
+_G['System']['Math'].Clamp = function(value, min, max) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].IEEERemainder = function(x, y) end
+
+---`Method Public Static`
+---@overload fun(val1:System.Byte, val2:System.Byte):(System.Byte)
+---@overload fun(val1:System.Decimal, val2:System.Decimal):(System.Decimal)
+---@overload fun(val1:System.Double, val2:System.Double):(System.Double)
+---@overload fun(val1:System.Int16, val2:System.Int16):(System.Int16)
+---@overload fun(val1:System.Int32, val2:System.Int32):(System.Int32)
+---@overload fun(val1:System.Int64, val2:System.Int64):(System.Int64)
+---@overload fun(val1:System.IntPtr, val2:System.IntPtr):(System.IntPtr)
+---@overload fun(val1:System.SByte, val2:System.SByte):(System.SByte)
+---@overload fun(val1:System.Single, val2:System.Single):(System.Single)
+---@overload fun(val1:System.UInt16, val2:System.UInt16):(System.UInt16)
+---@overload fun(val1:System.UInt32, val2:System.UInt32):(System.UInt32)
+---@overload fun(val1:System.UInt64, val2:System.UInt64):(System.UInt64)
+---@param val1 System.UIntPtr
+---@param val2 System.UIntPtr
+---@return System.UIntPtr
+_G['System']['Math'].Max = function(val1, val2) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].MaxMagnitude = function(x, y) end
+
+---`Constructor Private Static`
+---@return System.Math
+_G['System']['Math'] = function() end
+
+---`Constructor Private Static`
+---@return System.Math
+_G['System']['Math'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97BDA470.lua b/Meta/Types/client/_00007FFD97BDA470.lua
new file mode 100644
index 0000000..0cc9481
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97BDA470.lua
@@ -0,0 +1,91 @@
+---@meta
+---@class Barotrauma.Media.Video : System.Object
+---`Field Private Instance`
+---@field videoInternal System.IntPtr
+---`Field Private Instance`
+---@field texture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field textureChanged System.Boolean
+---`Field Private Instance`
+---@field textureData (System.Int32-arr)|(System.Int32[])
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Private Instance`
+---@field sound Barotrauma.Sounds.VideoSound
+---`Field Private Static`
+---@field VideoFrameCallback (Barotrauma.Media.Video.Internal.EventCallback)|(fun(videoInternal:System.IntPtr, data:System.IntPtr, dataElemSize:System.Int32, dataLen:System.Int32))
+---`Field Private Static`
+---@field VideoAudioCallback (Barotrauma.Media.Video.Internal.EventCallback)|(fun(videoInternal:System.IntPtr, data:System.IntPtr, dataElemSize:System.Int32, dataLen:System.Int32))
+---`Field Private Static`
+---@field videos (System.Collections.Generic.Dictionary*1System*IntPtr*1Barotrauma*Media*Video)|({[System.IntPtr]:(Barotrauma.Media.Video)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Width System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Height System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AudioGain System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LoadFailed System.Boolean
+---`Getter Public Instance`
+---@field IsPlaying System.Boolean
+_G['Video'] = {}
+
+---`Method Public Static`
+_G['Video'].Init = function() end
+
+---`Method Public Static`
+_G['Video'].Close = function() end
+
+---`Method Public Static`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param soundManager Barotrauma.Sounds.SoundManager
+---@param filename System.String
+---@return Barotrauma.Media.Video
+_G['Video'].Load = function(graphicsDevice, soundManager, filename) end
+
+---`Method Public Instance`
+_G['Video'].Play = function() end
+
+---`Method Public Instance Virtual`
+_G['Video'].Dispose = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Video'].GetTexture = function() end
+
+---`Method Public Instance`
+---@param data System.IntPtr
+_G['Video'].SetFrameData = function(data) end
+
+---`Method Private Static`
+---@param videoInternal System.IntPtr
+---@param data System.IntPtr
+---@param dataElemSize System.Int32
+---@param dataLen System.Int32
+_G['Video'].VideoFrameUpdate = function(videoInternal, data, dataElemSize, dataLen) end
+
+---`Method Private Static`
+---@param videoInternal System.IntPtr
+---@param data System.IntPtr
+---@param dataElemSize System.Int32
+---@param dataLen System.Int32
+_G['Video'].VideoAudioUpdate = function(videoInternal, data, dataElemSize, dataLen) end
+
+---`Constructor Private Instance`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param soundManager Barotrauma.Sounds.SoundManager
+---@param filename System.String
+---@return Barotrauma.Media.Video
+_G['Video'] = function(graphicsDevice, soundManager, filename) end
+
+---`Constructor Private Instance`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param soundManager Barotrauma.Sounds.SoundManager
+---@param filename System.String
+---@return Barotrauma.Media.Video
+_G['Video'].__new = function(graphicsDevice, soundManager, filename) end
+
diff --git a/Meta/Types/client/_00007FFD97BDE0D0.lua b/Meta/Types/client/_00007FFD97BDE0D0.lua
new file mode 100644
index 0000000..0c35b2a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97BDE0D0.lua
@@ -0,0 +1,373 @@
+---@meta
+---@class Microsoft.Xna.Framework.Matrix : System.ValueType, {[System.Int32]:System.Single}
+---@operator add(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator div(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator div(System.Single):Microsoft.Xna.Framework.Matrix
+---@operator mul(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator mul(System.Single):Microsoft.Xna.Framework.Matrix
+---@operator sub(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator unm:Microsoft.Xna.Framework.Matrix
+---`Field Public Instance`
+---@field M11 System.Single
+---`Field Public Instance`
+---@field M12 System.Single
+---`Field Public Instance`
+---@field M13 System.Single
+---`Field Public Instance`
+---@field M14 System.Single
+---`Field Public Instance`
+---@field M21 System.Single
+---`Field Public Instance`
+---@field M22 System.Single
+---`Field Public Instance`
+---@field M23 System.Single
+---`Field Public Instance`
+---@field M24 System.Single
+---`Field Public Instance`
+---@field M31 System.Single
+---`Field Public Instance`
+---@field M32 System.Single
+---`Field Public Instance`
+---@field M33 System.Single
+---`Field Public Instance`
+---@field M34 System.Single
+---`Field Public Instance`
+---@field M41 System.Single
+---`Field Public Instance`
+---@field M42 System.Single
+---`Field Public Instance`
+---@field M43 System.Single
+---`Field Public Instance`
+---@field M44 System.Single
+---`Field Private Static`
+---@field identity Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Backward Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Down Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Forward Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Identity Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Left Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Right Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Translation Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Up Microsoft.Xna.Framework.Vector3
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Matrix'] = {}
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix-ref, matrix2:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, scaleFactor:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix-ref, scaleFactor:System.Single, result:Microsoft.Xna.Framework.Matrix-ref)
+---@param matrix1 Microsoft.Xna.Framework.Matrix
+---@param matrix2 Microsoft.Xna.Framework.Matrix
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'].Multiply = function(matrix1, matrix2) end
+
+---`Method Public Static`
+---@param matrix Microsoft.Xna.Framework.Matrix
+---@return (System.Single-arr)|(System.Single[])
+_G['Matrix'].ToFloatArray = function(matrix) end
+
+---`Method Public Static`
+---@overload fun(matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Negate = function(matrix, result) end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param matrix2 Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Subtract = function(matrix1, matrix2, result) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Matrix'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Transpose = function(matrix, result) end
+
+---`Method Private Static`
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param major System.Single-ref
+---@param minor1 System.Single-ref
+---@param minor2 System.Single-ref
+---@param minor3 System.Single-ref
+---@param minor4 System.Single-ref
+---@param minor5 System.Single-ref
+---@param minor6 System.Single-ref
+---@param minor7 System.Single-ref
+---@param minor8 System.Single-ref
+---@param minor9 System.Single-ref
+---@param minor10 System.Single-ref
+---@param minor11 System.Single-ref
+---@param minor12 System.Single-ref
+_G['Matrix'].FindDeterminants = function(matrix, major, minor1, minor2, minor3, minor4, minor5, minor6, minor7, minor8, minor9, minor10, minor11, minor12) end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param matrix2 Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Add = function(matrix1, matrix2, result) end
+
+---`Method Public Static`
+---@overload fun(objectPosition:Microsoft.Xna.Framework.Vector3, cameraPosition:Microsoft.Xna.Framework.Vector3, cameraUpVector:Microsoft.Xna.Framework.Vector3, cameraForwardVector:System.Nullable*1Microsoft*Xna*Framework*Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param objectPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraUpVector Microsoft.Xna.Framework.Vector3-ref
+---@param cameraForwardVector System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateBillboard = function(objectPosition, cameraPosition, cameraUpVector, cameraForwardVector, result) end
+
+---`Method Public Static`
+---@overload fun(objectPosition:Microsoft.Xna.Framework.Vector3, cameraPosition:Microsoft.Xna.Framework.Vector3, rotateAxis:Microsoft.Xna.Framework.Vector3, cameraForwardVector:System.Nullable*1Microsoft*Xna*Framework*Vector3, objectForwardVector:System.Nullable*1Microsoft*Xna*Framework*Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param objectPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraPosition Microsoft.Xna.Framework.Vector3-ref
+---@param rotateAxis Microsoft.Xna.Framework.Vector3-ref
+---@param cameraForwardVector System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param objectForwardVector System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateConstrainedBillboard = function(objectPosition, cameraPosition, rotateAxis, cameraForwardVector, objectForwardVector, result) end
+
+---`Method Public Static`
+---@overload fun(axis:Microsoft.Xna.Framework.Vector3, angle:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param axis Microsoft.Xna.Framework.Vector3-ref
+---@param angle System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateFromAxisAngle = function(axis, angle, result) end
+
+---`Method Public Static`
+---@overload fun(quaternion:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Matrix)
+---@param quaternion Microsoft.Xna.Framework.Quaternion-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateFromQuaternion = function(quaternion, result) end
+
+---`Method Public Static`
+---@overload fun(yaw:System.Single, pitch:System.Single, roll:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param yaw System.Single
+---@param pitch System.Single
+---@param roll System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateFromYawPitchRoll = function(yaw, pitch, roll, result) end
+
+---`Method Public Static`
+---@overload fun(cameraPosition:Microsoft.Xna.Framework.Vector3, cameraTarget:Microsoft.Xna.Framework.Vector3, cameraUpVector:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param cameraPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraTarget Microsoft.Xna.Framework.Vector3-ref
+---@param cameraUpVector Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateLookAt = function(cameraPosition, cameraTarget, cameraUpVector, result) end
+
+---`Method Public Static`
+---@overload fun(width:System.Single, height:System.Single, zNearPlane:System.Single, zFarPlane:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param width System.Single
+---@param height System.Single
+---@param zNearPlane System.Single
+---@param zFarPlane System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateOrthographic = function(width, height, zNearPlane, zFarPlane, result) end
+
+---`Method Public Static`
+---@overload fun(left:System.Single, right:System.Single, bottom:System.Single, top:System.Single, zNearPlane:System.Single, zFarPlane:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(viewingVolume:Microsoft.Xna.Framework.Rectangle, zNearPlane:System.Single, zFarPlane:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param left System.Single
+---@param right System.Single
+---@param bottom System.Single
+---@param top System.Single
+---@param zNearPlane System.Single
+---@param zFarPlane System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateOrthographicOffCenter = function(left, right, bottom, top, zNearPlane, zFarPlane, result) end
+
+---`Method Public Static`
+---@overload fun(width:System.Single, height:System.Single, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param width System.Single
+---@param height System.Single
+---@param nearPlaneDistance System.Single
+---@param farPlaneDistance System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreatePerspective = function(width, height, nearPlaneDistance, farPlaneDistance, result) end
+
+---`Method Public Static`
+---@overload fun(fieldOfView:System.Single, aspectRatio:System.Single, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param fieldOfView System.Single
+---@param aspectRatio System.Single
+---@param nearPlaneDistance System.Single
+---@param farPlaneDistance System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreatePerspectiveFieldOfView = function(fieldOfView, aspectRatio, nearPlaneDistance, farPlaneDistance, result) end
+
+---`Method Public Static`
+---@overload fun(left:System.Single, right:System.Single, bottom:System.Single, top:System.Single, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(viewingVolume:Microsoft.Xna.Framework.Rectangle, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param left System.Single
+---@param right System.Single
+---@param bottom System.Single
+---@param top System.Single
+---@param nearPlaneDistance System.Single
+---@param farPlaneDistance System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreatePerspectiveOffCenter = function(left, right, bottom, top, nearPlaneDistance, farPlaneDistance, result) end
+
+---`Method Public Static`
+---@overload fun(radians:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param radians System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateRotationX = function(radians, result) end
+
+---`Method Public Static`
+---@overload fun(radians:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param radians System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateRotationY = function(radians, result) end
+
+---`Method Public Static`
+---@overload fun(radians:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param radians System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateRotationZ = function(radians, result) end
+
+---`Method Public Static`
+---@overload fun(scale:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(scale:System.Single, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(xScale:System.Single, yScale:System.Single, zScale:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(xScale:System.Single, yScale:System.Single, zScale:System.Single, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(scales:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param scales Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateScale = function(scales, result) end
+
+---`Method Public Static`
+---@overload fun(lightDirection:Microsoft.Xna.Framework.Vector3, plane:Microsoft.Xna.Framework.Plane):(Microsoft.Xna.Framework.Matrix)
+---@param lightDirection Microsoft.Xna.Framework.Vector3-ref
+---@param plane Microsoft.Xna.Framework.Plane-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateShadow = function(lightDirection, plane, result) end
+
+---`Method Public Static`
+---@overload fun(xPosition:System.Single, yPosition:System.Single, zPosition:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(position:Microsoft.Xna.Framework.Vector3-ref, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(position:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param xPosition System.Single
+---@param yPosition System.Single
+---@param zPosition System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateTranslation = function(xPosition, yPosition, zPosition, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Plane):(Microsoft.Xna.Framework.Matrix)
+---@param value Microsoft.Xna.Framework.Plane-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateReflection = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector3, forward:Microsoft.Xna.Framework.Vector3, up:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param position Microsoft.Xna.Framework.Vector3-ref
+---@param forward Microsoft.Xna.Framework.Vector3-ref
+---@param up Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateWorld = function(position, forward, up, result) end
+
+---`Method Public Instance`
+---@param scale Microsoft.Xna.Framework.Vector3-ref
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param translation Microsoft.Xna.Framework.Vector3-ref
+---@return System.Boolean
+_G['Matrix'].Decompose = function(scale, rotation, translation) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Matrix'].Determinant = function() end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix-ref, matrix2:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, divider:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param divider System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Divide = function(matrix1, divider, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(other:Microsoft.Xna.Framework.Matrix):(System.Boolean)
+---@param obj System.Object
+---@return System.Boolean
+_G['Matrix'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Matrix'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Invert = function(matrix, result) end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix, amount:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param matrix2 Microsoft.Xna.Framework.Matrix-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Lerp = function(matrix1, matrix2, amount, result) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'] = function(row1, row2, row3, row4) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'].__new = function(row1, row2, row3, row4) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'] = function(row1, row2, row3, row4) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'].__new = function(row1, row2, row3, row4) end
+
diff --git a/Meta/Types/client/_00007FFD97BDEB38.lua b/Meta/Types/client/_00007FFD97BDEB38.lua
new file mode 100644
index 0000000..8b8fce0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97BDEB38.lua
@@ -0,0 +1,123 @@
+---@meta
+---@class Microsoft.Xna.Framework.Rectangle : System.ValueType
+---`Field Public Instance`
+---@field X System.Int32
+---`Field Public Instance`
+---@field Y System.Int32
+---`Field Public Instance`
+---@field Width System.Int32
+---`Field Public Instance`
+---@field Height System.Int32
+---`Field Private Static`
+---@field emptyRectangle Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---@field Empty Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field Left System.Int32
+---`Getter Public Instance`
+---@field Right System.Int32
+---`Getter Public Instance`
+---@field Top System.Int32
+---`Getter Public Instance`
+---@field Bottom System.Int32
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Location Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Size Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Point
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Rectangle'] = {}
+
+---`Method Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32):(System.Boolean)
+---@overload fun(x:System.Single, y:System.Single):(System.Boolean)
+---@overload fun(value:Microsoft.Xna.Framework.Point):(System.Boolean)
+---@overload fun(value:Microsoft.Xna.Framework.Point-ref, result:System.Boolean-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2):(System.Boolean)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, result:System.Boolean-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Rectangle):(System.Boolean)
+---@param value Microsoft.Xna.Framework.Rectangle-ref
+---@param result System.Boolean-ref
+_G['Rectangle'].Contains = function(value, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['Rectangle'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Rectangle'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@overload fun(horizontalAmount:System.Int32, verticalAmount:System.Int32)
+---@overload fun(horizontalAmount:System.Single, verticalAmount:System.Single)
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Rectangle'].Inflate = function(amount) end
+
+---`Method Public Instance`
+---@overload fun(value:Microsoft.Xna.Framework.Rectangle):(System.Boolean)
+---@param value Microsoft.Xna.Framework.Rectangle-ref
+---@param result System.Boolean-ref
+_G['Rectangle'].Intersects = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Rectangle, value2:Microsoft.Xna.Framework.Rectangle):(Microsoft.Xna.Framework.Rectangle)
+---@param value1 Microsoft.Xna.Framework.Rectangle-ref
+---@param value2 Microsoft.Xna.Framework.Rectangle-ref
+---@param result Microsoft.Xna.Framework.Rectangle-ref
+_G['Rectangle'].Intersect = function(value1, value2, result) end
+
+---`Method Public Instance`
+---@overload fun(offsetX:System.Int32, offsetY:System.Int32)
+---@overload fun(offsetX:System.Single, offsetY:System.Single)
+---@overload fun(amount:Microsoft.Xna.Framework.Point)
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Rectangle'].Offset = function(amount) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Rectangle'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Rectangle, value2:Microsoft.Xna.Framework.Rectangle):(Microsoft.Xna.Framework.Rectangle)
+---@param value1 Microsoft.Xna.Framework.Rectangle-ref
+---@param value2 Microsoft.Xna.Framework.Rectangle-ref
+---@param result Microsoft.Xna.Framework.Rectangle-ref
+_G['Rectangle'].Union = function(value1, value2, result) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Point
+_G['Rectangle'].AddPoint = function(point) end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97BDF438.lua b/Meta/Types/client/_00007FFD97BDF438.lua
new file mode 100644
index 0000000..87b4fc2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97BDF438.lua
@@ -0,0 +1,261 @@
+---@meta
+---@class Microsoft.Xna.Framework.Vector2 : System.ValueType
+---@operator unm:Microsoft.Xna.Framework.Vector2
+---@operator add(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator sub(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator mul(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator mul(System.Single):Microsoft.Xna.Framework.Vector2
+---@operator div(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator div(System.Single):Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field X System.Single
+---`Field Public Instance`
+---@field Y System.Single
+---`Field Private Static`
+---@field zeroVector Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field unitVector Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field unitXVector Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field unitYVector Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field One Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field UnitX Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field UnitY Microsoft.Xna.Framework.Vector2
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Vector2'] = {}
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Add = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, value3:Microsoft.Xna.Framework.Vector2, amount1:System.Single, amount2:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param value3 Microsoft.Xna.Framework.Vector2-ref
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Barycentric = function(value1, value2, value3, amount1, amount2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, value3:Microsoft.Xna.Framework.Vector2, value4:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param value3 Microsoft.Xna.Framework.Vector2-ref
+---@param value4 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].CatmullRom = function(value1, value2, value3, value4, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, min:Microsoft.Xna.Framework.Vector2, max:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param min Microsoft.Xna.Framework.Vector2-ref
+---@param max Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Clamp = function(value1, min, max, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result System.Single-ref
+_G['Vector2'].Distance = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result System.Single-ref
+_G['Vector2'].DistanceSquared = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2-ref, value2:Microsoft.Xna.Framework.Vector2-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, divider:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param divider System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Divide = function(value1, divider, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result System.Single-ref
+_G['Vector2'].Dot = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Vector2'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Vector2'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, tangent1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, tangent2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param tangent1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param tangent2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Hermite = function(value1, tangent1, value2, tangent2, amount, result) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector2'].Length = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector2'].LengthSquared = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Lerp = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].LerpPrecise = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Max = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Min = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2-ref, value2:Microsoft.Xna.Framework.Vector2-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, scaleFactor:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param scaleFactor System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Multiply = function(value1, scaleFactor, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Negate = function(value, result) end
+
+---`Method Public Instance`
+_G['Vector2'].Normalize = function() end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Normalize = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector2, normal:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param vector Microsoft.Xna.Framework.Vector2-ref
+---@param normal Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Reflect = function(vector, normal, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].SmoothStep = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Subtract = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Vector2'].ToString = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Point
+_G['Vector2'].ToPoint = function() end
+
+---`Method Public Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(position:Microsoft.Xna.Framework.Vector2-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), sourceIndex:System.Int32, rotation:Microsoft.Xna.Framework.Quaternion-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]))
+---@param sourceArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['Vector2'].Transform = function(sourceArray, rotation, destinationArray) end
+
+---`Method Public Static`
+---@overload fun(normal:Microsoft.Xna.Framework.Vector2, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(normal:Microsoft.Xna.Framework.Vector2-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), destinationIndex:System.Int32, length:System.Int32)
+---@param sourceArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['Vector2'].TransformNormal = function(sourceArray, matrix, destinationArray) end
+
+---`Method Public Instance`
+---@param x System.Single-ref
+---@param y System.Single-ref
+_G['Vector2'].Deconstruct = function(x, y) end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97BDF508.lua b/Meta/Types/client/_00007FFD97BDF508.lua
new file mode 100644
index 0000000..cef388e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97BDF508.lua
@@ -0,0 +1,131 @@
+---@meta
+---@class Microsoft.Xna.Framework.Graphics.SpriteBatch : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---`Field Private Instance`
+---@field _batcher Microsoft.Xna.Framework.Graphics.SpriteBatcher
+---`Field Private Instance`
+---@field _sortMode Microsoft.Xna.Framework.Graphics.SpriteSortMode
+---`Field Private Instance`
+---@field _blendState Microsoft.Xna.Framework.Graphics.BlendState
+---`Field Private Instance`
+---@field _samplerState Microsoft.Xna.Framework.Graphics.SamplerState
+---`Field Private Instance`
+---@field _depthStencilState Microsoft.Xna.Framework.Graphics.DepthStencilState
+---`Field Private Instance`
+---@field _rasterizerState Microsoft.Xna.Framework.Graphics.RasterizerState
+---`Field Private Instance`
+---@field _effect Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams
+---`Field Private Instance`
+---@field _beginCalled System.Boolean
+---`Field Private Instance`
+---@field _spriteEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Field Private Instance`
+---@field _matrixTransform Microsoft.Xna.Framework.Graphics.EffectParameter
+---`Field Private Instance`
+---@field _spritePass Microsoft.Xna.Framework.Graphics.EffectPass
+---`Field Private Instance`
+---@field _matrix System.Nullable*1Microsoft*Xna*Framework*Matrix
+---`Field Private Instance`
+---@field _lastViewport Microsoft.Xna.Framework.Graphics.Viewport
+---`Field Private Instance`
+---@field _projection Microsoft.Xna.Framework.Matrix
+---`Field Private Instance`
+---@field _tempRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field _texCoordTL Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _texCoordBR Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Static`
+---@field NeedsHalfPixelOffset System.Boolean
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'] = {}
+
+---`Method Public Instance`
+---@param sortMode? Microsoft.Xna.Framework.Graphics.SpriteSortMode
+---@param blendState? Microsoft.Xna.Framework.Graphics.BlendState
+---@param samplerState? Microsoft.Xna.Framework.Graphics.SamplerState
+---@param depthStencilState? Microsoft.Xna.Framework.Graphics.DepthStencilState
+---@param rasterizerState? Microsoft.Xna.Framework.Graphics.RasterizerState
+---@param effect? Microsoft.Xna.Framework.Graphics.Effect
+---@param transformMatrix? System.Nullable*1Microsoft*Xna*Framework*Matrix
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].Begin = function(sortMode, blendState, samplerState, depthStencilState, rasterizerState, effect, transformMatrix) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Graphics.Effect
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].GetCurrentEffect = function() end
+
+---`Method Public Instance`
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].End = function() end
+
+---`Method Public Instance`
+---@overload fun(effect?:Microsoft.Xna.Framework.Graphics.Effect, parameters?:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)}))
+---@param effectWithParams Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].SwapEffect = function(effectWithParams) end
+
+---`Method Private Instance`
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].Setup = function() end
+
+---`Method Private Instance`
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D)
+---@overload fun(spriteFont:Microsoft.Xna.Framework.Graphics.SpriteFont, text:System.String)
+---@param spriteFont Microsoft.Xna.Framework.Graphics.SpriteFont
+---@param text System.Text.StringBuilder
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].CheckValid = function(spriteFont, text) end
+
+---`Method Public Instance`
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, position?:System.Nullable*1Microsoft*Xna*Framework*Vector2, destinationRectangle?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, sourceRectangle?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, origin?:System.Nullable*1Microsoft*Xna*Framework*Vector2, rotation?:System.Single, scale?:System.Nullable*1Microsoft*Xna*Framework*Vector2, color?:System.Nullable*1Microsoft*Xna*Framework*Color, effects?:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth?:System.Single)
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, position:Microsoft.Xna.Framework.Vector2, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:System.Single, effects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single)
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, destinationRectangle:Microsoft.Xna.Framework.Rectangle, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, effects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single)
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, position:Microsoft.Xna.Framework.Vector2, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, color:Microsoft.Xna.Framework.Color)
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, destinationRectangle:Microsoft.Xna.Framework.Rectangle, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, color:Microsoft.Xna.Framework.Color)
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color)
+---@param texture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param destinationRectangle Microsoft.Xna.Framework.Rectangle
+---@param color Microsoft.Xna.Framework.Color
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].Draw = function(texture, destinationRectangle, color) end
+
+---`Method Public Instance Virtual`
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, vertices:(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[]), layerDepth:System.Single, count?:System.Nullable*1System*Int32)
+---@param texture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param position Microsoft.Xna.Framework.Vector2
+---@param sourceRectangle System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param color Microsoft.Xna.Framework.Color
+---@param rotation System.Single
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param effects Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param layerDepth System.Single
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].Draw = function(texture, position, sourceRectangle, color, rotation, origin, scale, effects, layerDepth) end
+
+---`Method NonPublic Instance`
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].FlushIfNeeded = function() end
+
+---`Method Public Instance`
+---@overload fun(spriteFont:Microsoft.Xna.Framework.Graphics.SpriteFont, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color)
+---@overload fun(spriteFont:Microsoft.Xna.Framework.Graphics.SpriteFont, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:System.Single, effects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single)
+---@overload fun(spriteFont:Microsoft.Xna.Framework.Graphics.SpriteFont, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:Microsoft.Xna.Framework.Vector2, effects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single)
+---@overload fun(spriteFont:Microsoft.Xna.Framework.Graphics.SpriteFont, text:System.Text.StringBuilder, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color)
+---@overload fun(spriteFont:Microsoft.Xna.Framework.Graphics.SpriteFont, text:System.Text.StringBuilder, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:System.Single, effects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single)
+---@param spriteFont Microsoft.Xna.Framework.Graphics.SpriteFont
+---@param text System.Text.StringBuilder
+---@param position Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param rotation System.Single
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param effects Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param layerDepth System.Single
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].DrawString = function(spriteFont, text, position, color, rotation, origin, scale, effects, layerDepth) end
+
+---`Method NonPublic Instance Virtual`
+---@param disposing System.Boolean
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].Dispose = function(disposing) end
+
+---`Constructor Public Instance`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@return Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'] = function(graphicsDevice) end
+
+---`Constructor Public Instance`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@return Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Microsoft']['Xna']['Framework']['Graphics']['SpriteBatch'].__new = function(graphicsDevice) end
+
diff --git a/Meta/Types/client/_00007FFD97C311B0.lua b/Meta/Types/client/_00007FFD97C311B0.lua
new file mode 100644
index 0000000..e1ec3e2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C311B0.lua
@@ -0,0 +1,260 @@
+---@meta
+---@class Microsoft.Xna.Framework.Graphics.Texture2D : Microsoft.Xna.Framework.Graphics.Texture
+---`Field NonPublic Instance`
+---@field width System.Int32
+---`Field NonPublic Instance`
+---@field height System.Int32
+---`Field NonPublic Instance`
+---@field ArraySize System.Int32
+---`Field Private Instance`
+---@field _shared System.Boolean
+---`Field Private Instance`
+---@field _mipmap System.Boolean
+---`Field Private Instance`
+---@field _sampleDescription SharpDX.DXGI.SampleDescription
+---`Field Private Instance`
+---@field _cachedStagingTexture SharpDX.Direct3D11.Texture2D
+---`Field Private Static`
+---@field imgfactory SharpDX.WIC.ImagingFactory
+---`Getter NonPublic Instance`
+---
`Setter Private Instance`
+---@field TexelWidth System.Single
+---`Getter NonPublic Instance`
+---
`Setter Private Instance`
+---@field TexelHeight System.Single
+---`Getter Public Instance`
+---@field Bounds Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Width System.Int32
+---`Getter Public Instance Virtual`
+---@field Height System.Int32
+---`Getter NonPublic Instance`
+---@field Shared System.Boolean
+---`Getter NonPublic Instance`
+---@field Mipmap System.Boolean
+---`Getter NonPublic Instance`
+---@field SampleDescription SharpDX.DXGI.SampleDescription
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'] = {}
+
+---`Method Public Instance`
+---@overload fun(level:System.Int32, arraySlice:System.Int32, rect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, data:(Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[]), startIndex:System.Int32, elementCount:System.Int32)
+---@overload fun(level:System.Int32, rect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, data:(Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[]), startIndex:System.Int32, elementCount:System.Int32)
+---@overload fun(data:(Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[]), startIndex:System.Int32, elementCount:System.Int32)
+---@param data (Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[])
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].SetData = function(data) end
+
+---`Method Public Instance`
+---@overload fun(level:System.Int32, arraySlice:System.Int32, rect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, data:(Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[]), startIndex:System.Int32, elementCount:System.Int32)
+---@overload fun(level:System.Int32, rect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, data:(Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[]), startIndex:System.Int32, elementCount:System.Int32)
+---@overload fun(data:(Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[]), startIndex:System.Int32, elementCount:System.Int32)
+---@param data (Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[])
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].GetData = function(data) end
+
+---`Method Public Static`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param stream System.IO.Stream
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].FromStream = function(graphicsDevice, stream) end
+
+---`Method Public Static`
+---@param stream System.IO.Stream
+---@param width System.Int32-ref
+---@param height System.Int32-ref
+---@param channels System.Int32-ref
+---@return (System.Byte-arr)|(System.Byte[])
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].TextureDataFromStream = function(stream, width, height, channels) end
+
+---`Method Public Instance`
+---@param stream System.IO.Stream
+---@param width System.Int32
+---@param height System.Int32
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].SaveAsJpeg = function(stream, width, height) end
+
+---`Method Public Instance`
+---@param stream System.IO.Stream
+---@param width System.Int32
+---@param height System.Int32
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].SaveAsPng = function(stream, width, height) end
+
+---`Method Public Instance`
+---@param textureStream System.IO.Stream
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].Reload = function(textureStream) end
+
+---`Method Private Static`
+---@param pixelHeight System.Int32
+---@param pixelWidth System.Int32
+---@param pixels (System.Int32-arr)|(System.Int32[])
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].ConvertToABGR = function(pixelHeight, pixelWidth, pixels) end
+
+---`Method Private Instance`
+---@param level System.Int32
+---@param arraySlice System.Int32
+---@param rect System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param data (Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[])
+---@param startIndex System.Int32
+---@param elementCount System.Int32
+---@param checkedRect Microsoft.Xna.Framework.Rectangle-ref
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].ValidateParams = function(level, arraySlice, rect, data, startIndex, elementCount, checkedRect) end
+
+---`Method Private Instance`
+---@param width System.Int32
+---@param height System.Int32
+---@param mipmap System.Boolean
+---@param format Microsoft.Xna.Framework.Graphics.SurfaceFormat
+---@param type Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType
+---@param shared System.Boolean
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].PlatformConstruct = function(width, height, mipmap, format, type, shared) end
+
+---`Method Private Instance`
+---@overload fun(level:System.Int32, data:(Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[]), startIndex:System.Int32, elementCount:System.Int32)
+---@param level System.Int32
+---@param arraySlice System.Int32
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param data (Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[])
+---@param startIndex System.Int32
+---@param elementCount System.Int32
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].PlatformSetData = function(level, arraySlice, rect, data, startIndex, elementCount) end
+
+---`Method Private Instance`
+---@param level System.Int32
+---@param arraySlice System.Int32
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param data (Microsoft.Xna.Framework.Graphics.T-arr)|(Microsoft.Xna.Framework.Graphics.Texture2D.T[])
+---@param startIndex System.Int32
+---@param elementCount System.Int32
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].PlatformGetData = function(level, arraySlice, rect, data, startIndex, elementCount) end
+
+---`Method NonPublic Instance Virtual`
+---@param disposing System.Boolean
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].Dispose = function(disposing) end
+
+---`Method Private Instance`
+---@param arraySlice System.Int32
+---@param level System.Int32
+---@return System.Int32
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].CalculateSubresourceIndex = function(arraySlice, level) end
+
+---`Method Private Static`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param stream System.IO.Stream
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].PlatformFromStream = function(graphicsDevice, stream) end
+
+---`Method Private Instance`
+---@param stream System.IO.Stream
+---@param width System.Int32
+---@param height System.Int32
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].PlatformSaveAsJpeg = function(stream, width, height) end
+
+---`Method Private Static`
+---@param pixelHeight System.Int32
+---@param pixelWidth System.Int32
+---@param pixels (System.Byte-arr)|(System.Byte[])
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].ConvertToRGBA = function(pixelHeight, pixelWidth, pixels) end
+
+---`Method Private Instance`
+---@param stream System.IO.Stream
+---@param width System.Int32
+---@param height System.Int32
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].PlatformSaveAsPng = function(stream, width, height) end
+
+---`Method Private Static`
+---@param bsource SharpDX.WIC.BitmapSource
+---@param device Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@return SharpDX.Direct3D11.Texture2D
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].CreateTex2DFromBitmap = function(bsource, device) end
+
+---`Method Private Static`
+---@param stream System.IO.Stream
+---@param decoder SharpDX.WIC.BitmapDecoder-ref
+---@return SharpDX.WIC.BitmapSource
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].LoadBitmap = function(stream, decoder) end
+
+---`Method NonPublic Instance Virtual`
+---@return SharpDX.Direct3D11.Texture2DDescription
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].GetTexture2DDescription = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return SharpDX.Direct3D11.Resource
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].CreateTexture = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return SharpDX.Direct3D11.ShaderResourceView
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].CreateShaderResourceView = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return SharpDX.DXGI.SampleDescription
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].CreateSampleDescription = function() end
+
+---`Method NonPublic Instance`
+---@return SharpDX.DXGI.SampleDescription
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].GetTextureSampleDescription = function() end
+
+---`Method Private Instance`
+---@param textureStream System.IO.Stream
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].PlatformReload = function(textureStream) end
+
+---`Constructor Public Instance`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, arraySize:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, type:Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType):Microsoft.Xna.Framework.Graphics.Texture2D
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param width System.Int32
+---@param height System.Int32
+---@param mipmap System.Boolean
+---@param format Microsoft.Xna.Framework.Graphics.SurfaceFormat
+---@param type Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType
+---@param shared System.Boolean
+---@param arraySize System.Int32
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'] = function(graphicsDevice, width, height, mipmap, format, type, shared, arraySize) end
+
+---`Constructor Public Instance`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, arraySize:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, type:Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType):Microsoft.Xna.Framework.Graphics.Texture2D
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param width System.Int32
+---@param height System.Int32
+---@param mipmap System.Boolean
+---@param format Microsoft.Xna.Framework.Graphics.SurfaceFormat
+---@param type Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType
+---@param shared System.Boolean
+---@param arraySize System.Int32
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].__new = function(graphicsDevice, width, height, mipmap, format, type, shared, arraySize) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, arraySize:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, type:Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType):Microsoft.Xna.Framework.Graphics.Texture2D
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param width System.Int32
+---@param height System.Int32
+---@param mipmap System.Boolean
+---@param format Microsoft.Xna.Framework.Graphics.SurfaceFormat
+---@param type Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType
+---@param shared System.Boolean
+---@param arraySize System.Int32
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'] = function(graphicsDevice, width, height, mipmap, format, type, shared, arraySize) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, arraySize:System.Int32):Microsoft.Xna.Framework.Graphics.Texture2D
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice, width:System.Int32, height:System.Int32, mipmap:System.Boolean, format:Microsoft.Xna.Framework.Graphics.SurfaceFormat, type:Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType):Microsoft.Xna.Framework.Graphics.Texture2D
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param width System.Int32
+---@param height System.Int32
+---@param mipmap System.Boolean
+---@param format Microsoft.Xna.Framework.Graphics.SurfaceFormat
+---@param type Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType
+---@param shared System.Boolean
+---@param arraySize System.Int32
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Microsoft']['Xna']['Framework']['Graphics']['Texture2D'].__new = function(graphicsDevice, width, height, mipmap, format, type, shared, arraySize) end
+
diff --git a/Meta/Types/client/_00007FFD97C325C0.lua b/Meta/Types/client/_00007FFD97C325C0.lua
new file mode 100644
index 0000000..cdae631
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C325C0.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Microsoft.Xna.Framework.Graphics.SpriteEffects : System.Enum
+---`Field Public Static`
+---@field None Microsoft.Xna.Framework.Graphics.SpriteEffects
+---`Field Public Static`
+---@field FlipHorizontally Microsoft.Xna.Framework.Graphics.SpriteEffects
+---`Field Public Static`
+---@field FlipVertically Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['SpriteEffects'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97C331E8.lua b/Meta/Types/client/_00007FFD97C331E8.lua
new file mode 100644
index 0000000..0008dc3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C331E8.lua
@@ -0,0 +1,307 @@
+---@meta
+---@class Microsoft.Xna.Framework.Vector3 : System.ValueType
+---@operator unm:Microsoft.Xna.Framework.Vector3
+---@operator sub(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator mul(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator mul(System.Single):Microsoft.Xna.Framework.Vector3
+---@operator div(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator div(System.Single):Microsoft.Xna.Framework.Vector3
+---@operator add(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---`Field Public Instance`
+---@field X System.Single
+---`Field Public Instance`
+---@field Y System.Single
+---`Field Public Instance`
+---@field Z System.Single
+---`Field Private Static`
+---@field zero Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field one Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field unitX Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field unitY Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field unitZ Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field up Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field down Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field right Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field left Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field forward Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field backward Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field One Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field UnitX Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field UnitY Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field UnitZ Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Up Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Down Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Right Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Left Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Forward Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Backward Microsoft.Xna.Framework.Vector3
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Vector3'] = {}
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Add = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, value3:Microsoft.Xna.Framework.Vector3, amount1:System.Single, amount2:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param value3 Microsoft.Xna.Framework.Vector3-ref
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Barycentric = function(value1, value2, value3, amount1, amount2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, value3:Microsoft.Xna.Framework.Vector3, value4:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param value3 Microsoft.Xna.Framework.Vector3-ref
+---@param value4 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].CatmullRom = function(value1, value2, value3, value4, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, min:Microsoft.Xna.Framework.Vector3, max:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param min Microsoft.Xna.Framework.Vector3-ref
+---@param max Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Clamp = function(value1, min, max, result) end
+
+---`Method Public Static`
+---@overload fun(vector1:Microsoft.Xna.Framework.Vector3, vector2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param vector1 Microsoft.Xna.Framework.Vector3-ref
+---@param vector2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Cross = function(vector1, vector2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result System.Single-ref
+_G['Vector3'].Distance = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result System.Single-ref
+_G['Vector3'].DistanceSquared = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, divider:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3-ref, divider:System.Single, result:Microsoft.Xna.Framework.Vector3-ref)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Divide = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result System.Single-ref
+_G['Vector3'].Dot = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Vector3
+---@return System.Boolean
+_G['Vector3'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Vector3'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, tangent1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, tangent2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param tangent1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param tangent2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Hermite = function(value1, tangent1, value2, tangent2, amount, result) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector3'].Length = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector3'].LengthSquared = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Lerp = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].LerpPrecise = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Max = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Min = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, scaleFactor:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3-ref, scaleFactor:System.Single, result:Microsoft.Xna.Framework.Vector3-ref)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Multiply = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Negate = function(value, result) end
+
+---`Method Public Instance`
+_G['Vector3'].Normalize = function() end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Normalize = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector3, normal:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param vector Microsoft.Xna.Framework.Vector3-ref
+---@param normal Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Reflect = function(vector, normal, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].SmoothStep = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Subtract = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Vector3'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector3, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(position:Microsoft.Xna.Framework.Vector3-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector3-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector3-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), sourceIndex:System.Int32, rotation:Microsoft.Xna.Framework.Quaternion-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]))
+---@param sourceArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+_G['Vector3'].Transform = function(sourceArray, rotation, destinationArray) end
+
+---`Method Public Static`
+---@overload fun(normal:Microsoft.Xna.Framework.Vector3, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(normal:Microsoft.Xna.Framework.Vector3-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector3-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), destinationIndex:System.Int32, length:System.Int32)
+---@param sourceArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+_G['Vector3'].TransformNormal = function(sourceArray, matrix, destinationArray) end
+
+---`Method Public Instance`
+---@param x System.Single-ref
+---@param y System.Single-ref
+---@param z System.Single-ref
+_G['Vector3'].Deconstruct = function(x, y, z) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'] = function(value, z) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'].__new = function(value, z) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'] = function(value, z) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'].__new = function(value, z) end
+
diff --git a/Meta/Types/client/_00007FFD97C33C18.lua b/Meta/Types/client/_00007FFD97C33C18.lua
new file mode 100644
index 0000000..c8fb1f5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C33C18.lua
@@ -0,0 +1,275 @@
+---@meta
+---@class Microsoft.Xna.Framework.Vector4 : System.ValueType
+---@operator div(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator div(System.Single):Microsoft.Xna.Framework.Vector4
+---@operator unm:Microsoft.Xna.Framework.Vector4
+---@operator add(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator sub(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator mul(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator mul(System.Single):Microsoft.Xna.Framework.Vector4
+---`Field Public Instance`
+---@field X System.Single
+---`Field Public Instance`
+---@field Y System.Single
+---`Field Public Instance`
+---@field Z System.Single
+---`Field Public Instance`
+---@field W System.Single
+---`Field Private Static`
+---@field zero Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field one Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitX Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitY Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitZ Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitW Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field One Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitX Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitY Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitZ Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitW Microsoft.Xna.Framework.Vector4
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Vector4'] = {}
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Add = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, value3:Microsoft.Xna.Framework.Vector4, amount1:System.Single, amount2:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param value3 Microsoft.Xna.Framework.Vector4-ref
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Barycentric = function(value1, value2, value3, amount1, amount2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, value3:Microsoft.Xna.Framework.Vector4, value4:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param value3 Microsoft.Xna.Framework.Vector4-ref
+---@param value4 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].CatmullRom = function(value1, value2, value3, value4, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, min:Microsoft.Xna.Framework.Vector4, max:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param min Microsoft.Xna.Framework.Vector4-ref
+---@param max Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Clamp = function(value1, min, max, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result System.Single-ref
+_G['Vector4'].Distance = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result System.Single-ref
+_G['Vector4'].DistanceSquared = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, divider:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4-ref, divider:System.Single, result:Microsoft.Xna.Framework.Vector4-ref)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Divide = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result System.Single-ref
+_G['Vector4'].Dot = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Vector4
+---@return System.Boolean
+_G['Vector4'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Vector4'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, tangent1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, tangent2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param tangent1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param tangent2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Hermite = function(value1, tangent1, value2, tangent2, amount, result) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector4'].Length = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector4'].LengthSquared = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Lerp = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].LerpPrecise = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Max = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Min = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, scaleFactor:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4-ref, scaleFactor:System.Single, result:Microsoft.Xna.Framework.Vector4-ref)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Multiply = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Negate = function(value, result) end
+
+---`Method Public Instance`
+_G['Vector4'].Normalize = function() end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Normalize = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].SmoothStep = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Subtract = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), sourceIndex:System.Int32, rotation:Microsoft.Xna.Framework.Quaternion-ref, destinationArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]))
+---@param sourceArray (Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[])
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[])
+_G['Vector4'].Transform = function(sourceArray, rotation, destinationArray) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Vector4'].ToString = function() end
+
+---`Method Public Instance`
+---@param x System.Single-ref
+---@param y System.Single-ref
+---@param z System.Single-ref
+---@param w System.Single-ref
+_G['Vector4'].Deconstruct = function(x, y, z, w) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'] = function(value) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'].__new = function(value) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'] = function(value) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97C36490.lua b/Meta/Types/client/_00007FFD97C36490.lua
new file mode 100644
index 0000000..0a05786
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C36490.lua
@@ -0,0 +1,554 @@
+---@meta
+---@class Microsoft.Xna.Framework.Color : System.ValueType
+---@operator mul(System.Single):Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field _packedValue System.UInt32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field B System.Byte
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field G System.Byte
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field R System.Byte
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field A System.Byte
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field TransparentBlack Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Transparent Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field AliceBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field AntiqueWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Aqua Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Aquamarine Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Azure Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Beige Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Bisque Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Black Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BlanchedAlmond Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Blue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BlueViolet Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Brown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BurlyWood Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field CadetBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Chartreuse Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Chocolate Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Coral Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field CornflowerBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Cornsilk Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Crimson Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Cyan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkCyan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkGoldenrod Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkKhaki Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkMagenta Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkOliveGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkOrange Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkOrchid Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSalmon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSlateBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSlateGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkTurquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkViolet Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DeepPink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DeepSkyBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DimGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DodgerBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Firebrick Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field FloralWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ForestGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Fuchsia Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Gainsboro Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GhostWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Gold Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Goldenrod Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Gray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Green Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GreenYellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Honeydew Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field HotPink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field IndianRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Indigo Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Ivory Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Khaki Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Lavender Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LavenderBlush Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LawnGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LemonChiffon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightCoral Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightCyan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightGoldenrodYellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightPink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSalmon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSkyBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSlateGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSteelBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightYellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Lime Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LimeGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Linen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Magenta Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Maroon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumAquamarine Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumOrchid Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumPurple Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumSeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumSlateBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumSpringGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumTurquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumVioletRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MidnightBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MintCream Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MistyRose Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Moccasin Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MonoGameOrange Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field NavajoWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Navy Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field OldLace Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Olive Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field OliveDrab Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Orange Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field OrangeRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Orchid Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleGoldenrod Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleTurquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleVioletRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PapayaWhip Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PeachPuff Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Peru Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Pink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Plum Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PowderBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Purple Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Red Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field RosyBrown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field RoyalBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SaddleBrown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Salmon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SandyBrown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SeaShell Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Sienna Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Silver Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SkyBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SlateBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SlateGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Snow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SpringGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SteelBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Tan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Teal Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Thistle Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Tomato Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Turquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Violet Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Wheat Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field White Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field WhiteSmoke Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Yellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field YellowGreen Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PackedValue System.UInt32
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Color'] = {}
+
+---`Method Public Static`
+---@param value1 Microsoft.Xna.Framework.Color
+---@param value2 Microsoft.Xna.Framework.Color
+---@param amount System.Single
+---@return Microsoft.Xna.Framework.Color
+_G['Color'].Lerp = function(value1, value2, amount) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector3
+_G['Color'].ToVector3 = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector4
+_G['Color'].ToVector4 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Color'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun(other:Microsoft.Xna.Framework.Color):(System.Boolean)
+---@param obj System.Object
+---@return System.Boolean
+_G['Color'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Color'].GetHashCode = function() end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'] = function(r, g, b, alpha) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'].__new = function(r, g, b, alpha) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'] = function(r, g, b, alpha) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'].__new = function(r, g, b, alpha) end
+
diff --git a/Meta/Types/client/_00007FFD97C367A0.lua b/Meta/Types/client/_00007FFD97C367A0.lua
new file mode 100644
index 0000000..affd4cb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C367A0.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Microsoft.Xna.Framework.Point : System.ValueType
+---@operator add(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---@operator sub(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---@operator mul(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---@operator div(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field X System.Int32
+---`Field Public Instance`
+---@field Y System.Int32
+---`Field Private Static`
+---@field zeroPoint Microsoft.Xna.Framework.Point
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Point
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Point'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Point
+---@return System.Boolean
+_G['Point'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Point'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Point'].ToString = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Point'].ToVector2 = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C36BD8.lua b/Meta/Types/client/_00007FFD97C36BD8.lua
new file mode 100644
index 0000000..30acde1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C36BD8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.WaterVertexData : System.ValueType
+---`Field Private Instance`
+---@field DistortStrengthX System.Single
+---`Field Private Instance`
+---@field DistortStrengthY System.Single
+---`Field Private Instance`
+---@field WaterColorStrength System.Single
+---`Field Private Instance`
+---@field WaterAlpha System.Single
+_G['WaterVertexData'] = {}
+
+---`Constructor Public Instance`
+---@param distortStrengthX System.Single
+---@param distortStrengthY System.Single
+---@param waterColorStrength System.Single
+---@param waterAlpha System.Single
+---@return Barotrauma.WaterVertexData
+_G['WaterVertexData'] = function(distortStrengthX, distortStrengthY, waterColorStrength, waterAlpha) end
+
+---`Constructor Public Instance`
+---@param distortStrengthX System.Single
+---@param distortStrengthY System.Single
+---@param waterColorStrength System.Single
+---@param waterAlpha System.Single
+---@return Barotrauma.WaterVertexData
+_G['WaterVertexData'].__new = function(distortStrengthX, distortStrengthY, waterColorStrength, waterAlpha) end
+
diff --git a/Meta/Types/client/_00007FFD97C36C68.lua b/Meta/Types/client/_00007FFD97C36C68.lua
new file mode 100644
index 0000000..899d95a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C36C68.lua
@@ -0,0 +1,92 @@
+---@meta
+---@class Barotrauma.WaterRenderer : System.Object
+---`Field Public Instance`
+---@field waterColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field IndoorsWaterColor Barotrauma.WaterVertexData
+---`Field Public Instance`
+---@field IndoorsSurfaceTopColor Barotrauma.WaterVertexData
+---`Field Public Instance`
+---@field IndoorsSurfaceBottomColor Barotrauma.WaterVertexData
+---`Field Public Instance`
+---@field vertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---`Field Public Instance`
+---@field IndoorsVertices (System.Collections.Generic.Dictionary*1Barotrauma*EntityGrid*1Microsoft*Xna*Framework*Graphics*VertexPositionColorTexture-arr)|({[Barotrauma.EntityGrid]:((Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[]))})
+---`Field Private Instance`
+---@field basicEffect Microsoft.Xna.Framework.Graphics.BasicEffect
+---`Field Public Instance`
+---@field PositionInBuffer System.Int32
+---`Field Public Instance`
+---@field PositionInIndoorsBuffer (System.Collections.Generic.Dictionary*1Barotrauma*EntityGrid*1System*Int32)|({[Barotrauma.EntityGrid]:(System.Int32)})
+---`Field Private Instance`
+---@field tempVertices (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---`Field Private Instance`
+---@field tempCorners (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+---`Field Private Instance`
+---@field buffersToRemove (System.Collections.Generic.List*1Barotrauma*EntityGrid)|(Barotrauma.EntityGrid[])
+---`Field Public Static`
+---@field Instance Barotrauma.WaterRenderer
+---`Field Public Static`
+---@field DistortionScale Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field DistortionStrength Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field BlurAmount System.Single
+---`Field Public Static`
+---@field DefaultBufferSize System.Int32
+---`Field Public Static`
+---@field DefaultIndoorsBufferSize System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WavePos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---@field WaterTexture Microsoft.Xna.Framework.Graphics.Texture2D
+_G['WaterRenderer'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param texture Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---@param cam Barotrauma.Camera
+_G['WaterRenderer'].RenderWater = function(spriteBatch, texture, cam) end
+
+---`Method Public Instance`
+---@param vel Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+_G['WaterRenderer'].ScrollWater = function(vel, deltaTime) end
+
+---`Method Public Instance`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param cam Barotrauma.Camera
+---@param texture Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---@param transform Microsoft.Xna.Framework.Matrix
+_G['WaterRenderer'].RenderAir = function(graphicsDevice, cam, texture, transform) end
+
+---`Method Public Instance`
+_G['WaterRenderer'].ResetBuffers = function() end
+
+---`Method Public Instance Virtual`
+_G['WaterRenderer'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.WaterRenderer
+---@return Barotrauma.WaterRenderer
+_G['WaterRenderer'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.WaterRenderer
+---@return Barotrauma.WaterRenderer
+_G['WaterRenderer'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.WaterRenderer
+---@return Barotrauma.WaterRenderer
+_G['WaterRenderer'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(graphicsDevice:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.WaterRenderer
+---@return Barotrauma.WaterRenderer
+_G['WaterRenderer'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C36E70.lua b/Meta/Types/client/_00007FFD97C36E70.lua
new file mode 100644
index 0000000..4b53f73
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C36E70.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaSByte : System.ValueType
+---`Field Public Instance`
+---@field Value System.SByte
+_G['SByte'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['SByte'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaSByte
+_G['SByte'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaSByte
+_G['SByte'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C36FE0.lua b/Meta/Types/client/_00007FFD97C36FE0.lua
new file mode 100644
index 0000000..df72ba0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C36FE0.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaByte : System.ValueType
+---`Field Public Instance`
+---@field Value System.Byte
+_G['Byte'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Byte'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaByte
+_G['Byte'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaByte
+_G['Byte'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C37378.lua b/Meta/Types/client/_00007FFD97C37378.lua
new file mode 100644
index 0000000..c00fb35
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C37378.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.LuaInt16 : System.ValueType
+---`Field Public Instance`
+---@field Value System.Int16
+_G['Int16'] = {}
+_G['Short'] = _G['Int16']
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Int16'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt16
+_G['Int16'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt16
+_G['Int16'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C374E8.lua b/Meta/Types/client/_00007FFD97C374E8.lua
new file mode 100644
index 0000000..068dd10
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C374E8.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.LuaUInt16 : System.ValueType
+---`Field Public Instance`
+---@field Value System.UInt16
+_G['UInt16'] = {}
+_G['UShort'] = _G['UInt16']
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['UInt16'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt16
+_G['UInt16'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt16
+_G['UInt16'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C37658.lua b/Meta/Types/client/_00007FFD97C37658.lua
new file mode 100644
index 0000000..c6e4d39
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C37658.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaInt32 : System.ValueType
+---`Field Public Instance`
+---@field Value System.Int32
+_G['Int32'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Int32'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt32
+_G['Int32'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt32
+_G['Int32'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C377C8.lua b/Meta/Types/client/_00007FFD97C377C8.lua
new file mode 100644
index 0000000..c8aa105
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C377C8.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaUInt32 : System.ValueType
+---`Field Public Instance`
+---@field Value System.UInt32
+_G['UInt32'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['UInt32'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt32
+_G['UInt32'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt32
+_G['UInt32'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C37950.lua b/Meta/Types/client/_00007FFD97C37950.lua
new file mode 100644
index 0000000..ded72c3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C37950.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.LuaInt64 : System.ValueType
+---`Field Public Instance`
+---@field Value System.Int64
+_G['Int64'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Int64'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt64
+_G['Int64'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt64
+_G['Int64'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C37AD8.lua b/Meta/Types/client/_00007FFD97C37AD8.lua
new file mode 100644
index 0000000..9879e23
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C37AD8.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.LuaUInt64 : System.ValueType
+---`Field Public Instance`
+---@field Value System.UInt64
+_G['UInt64'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['UInt64'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaUInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt64
+_G['UInt64'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaUInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt64
+_G['UInt64'].__new = function(v, radix) end
+
diff --git a/Meta/Types/client/_00007FFD97C37C48.lua b/Meta/Types/client/_00007FFD97C37C48.lua
new file mode 100644
index 0000000..2249600
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C37C48.lua
@@ -0,0 +1,23 @@
+---@meta
+---@class Barotrauma.LuaSingle : System.ValueType
+---`Field Public Instance`
+---@field Value System.Single
+_G['Single'] = {}
+_G['Float'] = _G['Single']
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Single'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSingle
+---@param v System.String
+---@return Barotrauma.LuaSingle
+_G['Single'] = function(v) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSingle
+---@param v System.String
+---@return Barotrauma.LuaSingle
+_G['Single'].__new = function(v) end
+
diff --git a/Meta/Types/client/_00007FFD97C37DB8.lua b/Meta/Types/client/_00007FFD97C37DB8.lua
new file mode 100644
index 0000000..f3dc61e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C37DB8.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.LuaDouble : System.ValueType
+---`Field Public Instance`
+---@field Value System.Double
+_G['Double'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Double'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaDouble
+---@param v System.String
+---@return Barotrauma.LuaDouble
+_G['Double'] = function(v) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaDouble
+---@param v System.String
+---@return Barotrauma.LuaDouble
+_G['Double'].__new = function(v) end
+
diff --git a/Meta/Types/client/_00007FFD97C37FE8.lua b/Meta/Types/client/_00007FFD97C37FE8.lua
new file mode 100644
index 0000000..8b45af8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C37FE8.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class Barotrauma.LuaCsLogger : System.Object
+---`Field Private Static`
+---@field overlayFrame Barotrauma.GUIFrame
+---`Field Private Static`
+---@field textBlock Barotrauma.GUITextBlock
+---`Field Private Static`
+---@field showTimer System.Double
+---`Field Public Static`
+---@field HideUserNames System.Boolean
+---`Field Public Static`
+---@field MessageLogger (Barotrauma.LuaCsMessageLogger)|(fun(message:System.String))
+---`Field Public Static`
+---@field ExceptionHandler (Barotrauma.LuaCsExceptionHandler)|(fun(ex:System.Exception, origin:Barotrauma.LuaCsMessageOrigin))
+---`Field Private Static`
+---@field LogPrefix System.String
+_G['Logger'] = {}
+
+---`Method Private Static`
+---@param message System.String
+_G['Logger'].CreateOverlay = function(message) end
+
+---`Method Public Static`
+_G['Logger'].AddToGUIUpdateList = function() end
+
+---`Method Public Static`
+---@param message System.String
+---@param time? System.Single
+---@param duration? System.Single
+_G['Logger'].ShowErrorOverlay = function(message, time, duration) end
+
+---`Method Public Static`
+---@param ex System.Exception
+---@param origin Barotrauma.LuaCsMessageOrigin
+_G['Logger'].HandleException = function(ex, origin) end
+
+---`Method Public Static`
+---@overload fun(message:System.String, origin:Barotrauma.LuaCsMessageOrigin)
+---@param message System.String
+_G['Logger'].LogError = function(message) end
+
+---`Method Public Static`
+---@param message System.String
+---@param serverColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param clientColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Logger'].LogMessage = function(message, serverColor, clientColor) end
+
+---`Method Public Static`
+---@param message System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param messageType? Barotrauma.Networking.ServerLog.MessageType
+_G['Logger'].Log = function(message, color, messageType) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C382C8.lua b/Meta/Types/client/_00007FFD97C382C8.lua
new file mode 100644
index 0000000..c5cff73
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C382C8.lua
@@ -0,0 +1,138 @@
+---@meta
+---@class Barotrauma.LuaUserData : System.Object
+_G['LuaUserData'] = {}
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Type
+_G['LuaUserData'].GetType = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return MoonSharp.Interpreter.Interop.IUserDataDescriptor
+_G['LuaUserData'].RegisterType = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+_G['LuaUserData'].RegisterExtensionType = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Boolean
+_G['LuaUserData'].IsRegistered = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@param deleteHistory? System.Boolean
+_G['LuaUserData'].UnregisterType = function(typeName, deleteHistory) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@param ... System.String
+---@return MoonSharp.Interpreter.Interop.IUserDataDescriptor
+_G['LuaUserData'].RegisterGenericType = function(typeName, ...) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@param ... System.String
+_G['LuaUserData'].UnregisterGenericType = function(typeName, ...) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@param typeName System.String
+---@return System.Boolean
+_G['LuaUserData'].IsTargetType = function(obj, typeName) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@return System.String
+_G['LuaUserData'].TypeOf = function(obj) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Object
+_G['LuaUserData'].CreateStatic = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Object
+_G['LuaUserData'].CreateEnumTable = function(typeName) end
+
+---`Method Private Static`
+---@param type System.Type
+---@param fieldName System.String
+---@return System.Reflection.FieldInfo
+_G['LuaUserData'].FindFieldRecursively = function(type, fieldName) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param fieldName System.String
+_G['LuaUserData'].MakeFieldAccessible = function(IUUD, fieldName) end
+
+---`Method Private Static`
+---@param type System.Type
+---@param methodName System.String
+---@param types? (System.Type-arr)|(System.Type[])
+---@return System.Reflection.MethodInfo
+_G['LuaUserData'].FindMethodRecursively = function(type, methodName, types) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param methodName System.String
+---@param parameters? (System.String-arr)|(System.String[])
+_G['LuaUserData'].MakeMethodAccessible = function(IUUD, methodName, parameters) end
+
+---`Method Private Static`
+---@param type System.Type
+---@param propertyName System.String
+---@return System.Reflection.PropertyInfo
+_G['LuaUserData'].FindPropertyRecursively = function(type, propertyName) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param propertyName System.String
+_G['LuaUserData'].MakePropertyAccessible = function(IUUD, propertyName) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param methodName System.String
+---@param luaKey__function System.Object
+_G['LuaUserData'].AddMethod = function(IUUD, methodName, luaKey__function) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param fieldName System.String
+---@param value MoonSharp.Interpreter.DynValue
+_G['LuaUserData'].AddField = function(IUUD, fieldName, value) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param memberName System.String
+_G['LuaUserData'].RemoveMember = function(IUUD, memberName) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@param memberName System.String
+---@return System.Boolean
+_G['LuaUserData'].HasMember = function(obj, memberName) end
+
+---`Method Public Static`
+---@param scriptObject MoonSharp.Interpreter.DynValue
+---@param desiredTypeDescriptor MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaUserData'].CreateUserDataFromDescriptor = function(scriptObject, desiredTypeDescriptor) end
+
+---`Method Public Static`
+---@param scriptObject MoonSharp.Interpreter.DynValue
+---@param desiredType System.Type
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaUserData'].CreateUserDataFromType = function(scriptObject, desiredType) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaUserData
+_G['LuaUserData'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaUserData
+_G['LuaUserData'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C38C78.lua b/Meta/Types/client/_00007FFD97C38C78.lua
new file mode 100644
index 0000000..cb8bc55
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C38C78.lua
@@ -0,0 +1,259 @@
+---@meta
+---@class Barotrauma.LuaGame : System.Object
+---`Field Public Instance`
+---@field ForceVoice System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field ForceLocalVoice System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field Settings MoonSharp.Interpreter.DynValue
+---`Field Public Instance`
+---@field allowWifiChat System.Boolean
+---`Field Public Instance`
+---@field overrideTraitors System.Boolean
+---`Field Public Instance`
+---@field overrideRespawnSub System.Boolean
+---`Field Public Instance`
+---@field overrideSignalRadio System.Boolean
+---`Field Public Instance`
+---@field disableSpamFilter System.Boolean
+---`Field Public Instance`
+---@field disableDisconnectCharacter System.Boolean
+---`Field Public Instance`
+---@field enableControlHusk System.Boolean
+---`Field Public Instance`
+---@field UpdatePriorityItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field UpdatePriorityCharacters (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field luaAddedCommand (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+---`Getter Public Instance`
+---@field IsSingleplayer System.Boolean
+---`Getter Public Instance`
+---@field IsMultiplayer System.Boolean
+---`Getter Public Instance`
+---@field SaveFolder System.String
+---`Getter Public Instance`
+---@field Client Barotrauma.Networking.GameClient
+---`Getter Public Instance`
+---@field Paused System.Boolean
+---`Getter Public Instance`
+---@field SessionId System.Byte
+---`Getter Public Instance`
+---@field MyID System.Byte
+---`Getter Public Instance`
+---@field ActiveChatMode Barotrauma.ChatMode
+---`Getter Public Instance`
+---@field ChatBox Barotrauma.ChatBox
+---`Getter Public Instance`
+---@field SoundManager Barotrauma.Sounds.SoundManager
+---`Getter Public Instance`
+---@field LightManager Barotrauma.Lights.LightManager
+---`Getter Public Instance`
+---@field SubEditorScreen Barotrauma.SubEditorScreen
+---`Getter Public Instance`
+---@field MainMenuScreen Barotrauma.MainMenuScreen
+---`Getter Public Instance`
+---@field ParticleManager Barotrauma.Particles.ParticleManager
+---`Getter Public Instance`
+---@field IsSubEditor System.Boolean
+---`Getter Public Instance`
+---@field ServerSettings Barotrauma.Networking.ServerSettings
+---`Getter Public Instance`
+---@field RespawnManager Barotrauma.Networking.RespawnManager
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MapEntityUpdateInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GapUpdateInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoweredUpdateInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterUpdateInterval System.Int32
+---`Getter Public Instance`
+---@field RoundStarted System.Boolean
+---`Getter Public Instance`
+---@field GameSession Barotrauma.GameSession
+---`Getter Public Instance`
+---@field NetLobbyScreen Barotrauma.NetLobbyScreen
+---`Getter Public Instance`
+---@field GameScreen Barotrauma.GameScreen
+---`Getter Public Instance`
+---@field World FarseerPhysics.Dynamics.World
+---`Getter Public Instance`
+---@field Peer Barotrauma.Networking.ClientPeer
+---`Getter Public Instance`
+---@field LuaAddedCommand (System.Collections.Generic.IEnumerable*1Barotrauma*DebugConsole*Command)|(fun():(Barotrauma.DebugConsole.Command))
+---`Getter Public Instance`
+---@field Commands (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+_G['Game'] = {}
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['Game'].AddPriorityItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['Game'].RemovePriorityItem = function(item) end
+
+---`Method Public Instance`
+_G['Game'].ClearPriorityItem = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Game'].AddPriorityCharacter = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Game'].RemovePriorityCharacter = function(character) end
+
+---`Method Public Instance`
+_G['Game'].ClearPriorityCharacter = function() end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].OverrideTraitors = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].OverrideRespawnSub = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].AllowWifiChat = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].OverrideSignalRadio = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].DisableSpamFilter = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].DisableDisconnectCharacter = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].EnableControlHusk = function(o) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param range? System.Single
+---@param force? System.Single
+---@param damage? System.Single
+---@param structureDamage? System.Single
+---@param itemDamage? System.Single
+---@param empStrength? System.Single
+---@param ballastFloraStrength? System.Single
+_G['Game'].Explode = function(pos, range, force, damage, structureDamage, itemDamage, empStrength, ballastFloraStrength) end
+
+---`Method Public Static`
+---@param name System.String
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param inventory? System.Boolean
+---@param character? Barotrauma.Character
+---@return System.String
+_G['Game'].SpawnItem = function(name, pos, inventory, character) end
+
+---`Method Public Static`
+---@return (Barotrauma.ContentPackage-arr)|(Barotrauma.ContentPackage[])
+_G['Game'].GetEnabledContentPackages = function() end
+
+---`Method Public Static`
+---@param itemNameOrId System.String
+---@return Barotrauma.ItemPrefab
+_G['Game'].GetItemPrefab = function(itemNameOrId) end
+
+---`Method Public Static`
+---@return Barotrauma.Submarine
+_G['Game'].GetRespawnSub = function() end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Items.Components.Steering
+_G['Game'].GetSubmarineSteering = function(sub) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Game'].GetWifiComponent = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.LightComponent
+_G['Game'].GetLightComponent = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.CustomInterface
+_G['Game'].GetCustomInterface = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.Fabricator
+_G['Game'].GetFabricatorComponent = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.Holdable
+_G['Game'].GetHoldableComponent = function(item) end
+
+---`Method Public Static`
+---@param command System.String
+_G['Game'].ExecuteCommand = function(command) end
+
+---`Method Public Static`
+---@param value System.String
+---@param stepsTaken? System.Int32
+---@param sender? Barotrauma.Character
+---@param source? Barotrauma.Item
+---@param power? System.Single
+---@param strength? System.Single
+---@return Barotrauma.Items.Components.Signal
+_G['Game'].CreateSignal = function(value, stepsTaken, sender, source, power, strength) end
+
+---`Method Public Instance`
+---@param command Barotrauma.Identifier
+---@return System.Boolean
+_G['Game'].IsCustomCommandPermitted = function(command) end
+
+---`Method Public Instance`
+---@param name System.String
+_G['Game'].RemoveCommand = function(name) end
+
+---`Method Public Instance`
+---@param name System.String
+---@param help System.String
+---@param onExecute (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param getValidArgs? (Barotrauma.LuaCsFunc)|(fun(...:System.Object):(System.Object))
+---@param isCheat? System.Boolean
+_G['Game'].AddCommand = function(name, help, onExecute, getValidArgs, isCheat) end
+
+---`Method Public Instance`
+---@param names System.String
+---@param onExecute System.Object
+_G['Game'].AssignOnExecute = function(names, onExecute) end
+
+---`Method Public Instance`
+---@param path System.String
+_G['Game'].SaveGame = function(path) end
+
+---`Method Public Instance`
+---@param path System.String
+_G['Game'].LoadGame = function(path) end
+
+---`Method Public Instance`
+_G['Game'].Stop = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaGame
+_G['Game'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaGame
+_G['Game'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C38DB8.lua b/Meta/Types/client/_00007FFD97C38DB8.lua
new file mode 100644
index 0000000..a588f8b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C38DB8.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.LuaCsPatch : System.MulticastDelegate
+_G['LuaCsPatch'] = {}
+
+---`Method Public Instance Virtual`
+---@param self System.Object
+---@param args (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return System.Object
+_G['LuaCsPatch'].Invoke = function(self, args) end
+
+---`Method Public Instance Virtual`
+---@param self System.Object
+---@param args (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsPatch'].BeginInvoke = function(self, args, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+---@return System.Object
+_G['LuaCsPatch'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatch
+_G['LuaCsPatch'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatch
+_G['LuaCsPatch'].__new = function(object, method) end
+
diff --git a/Meta/Types/client/_00007FFD97C38FE8.lua b/Meta/Types/client/_00007FFD97C38FE8.lua
new file mode 100644
index 0000000..716b311
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C38FE8.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.LuaCsAction : System.MulticastDelegate
+_G['LuaCsAction'] = {}
+
+---`Method Public Instance Virtual`
+---@param ... System.Object
+_G['LuaCsAction'].Invoke = function(...) end
+
+---`Method Public Instance Virtual`
+---@param args (System.Object-arr)|(System.Object[])
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsAction'].BeginInvoke = function(args, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+_G['LuaCsAction'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsAction
+_G['LuaCsAction'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsAction
+_G['LuaCsAction'].__new = function(object, method) end
+
diff --git a/Meta/Types/client/_00007FFD97C39218.lua b/Meta/Types/client/_00007FFD97C39218.lua
new file mode 100644
index 0000000..c1171d6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C39218.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LuaCsFunc : System.MulticastDelegate
+_G['LuaCsFunc'] = {}
+
+---`Method Public Instance Virtual`
+---@param ... System.Object
+---@return System.Object
+_G['LuaCsFunc'].Invoke = function(...) end
+
+---`Method Public Instance Virtual`
+---@param args (System.Object-arr)|(System.Object[])
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsFunc'].BeginInvoke = function(args, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+---@return System.Object
+_G['LuaCsFunc'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsFunc
+_G['LuaCsFunc'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsFunc
+_G['LuaCsFunc'].__new = function(object, method) end
+
diff --git a/Meta/Types/client/_00007FFD97C39448.lua b/Meta/Types/client/_00007FFD97C39448.lua
new file mode 100644
index 0000000..1bcccb1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C39448.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.LuaCsPatchFunc : System.MulticastDelegate
+_G['LuaCsPatchFunc'] = {}
+
+---`Method Public Instance Virtual`
+---@param instance System.Object
+---@param ptable Barotrauma.LuaCsHook.ParameterTable
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaCsPatchFunc'].Invoke = function(instance, ptable) end
+
+---`Method Public Instance Virtual`
+---@param instance System.Object
+---@param ptable Barotrauma.LuaCsHook.ParameterTable
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsPatchFunc'].BeginInvoke = function(instance, ptable, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaCsPatchFunc'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatchFunc
+_G['LuaCsPatchFunc'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatchFunc
+_G['LuaCsPatchFunc'].__new = function(object, method) end
+
diff --git a/Meta/Types/client/_00007FFD97C39A58.lua b/Meta/Types/client/_00007FFD97C39A58.lua
new file mode 100644
index 0000000..ebab35b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C39A58.lua
@@ -0,0 +1,219 @@
+---@meta
+---@class Barotrauma.LuaCsHook : System.Object
+---`Field Private Instance`
+---@field harmony HarmonyLib.Harmony
+---`Field Private Instance`
+---@field patchModuleBuilder System.Lazy*1System*Reflection*Emit*ModuleBuilder
+---`Field Private Instance`
+---@field hookFunctions (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*ValueTuple*3Barotrauma*LuaCsHook*LuaCsHookCallback*3Barotrauma*ACsMod)|({[System.String]:((System.Collections.Generic.Dictionary*1System*String*1System*ValueTuple*2Barotrauma*LuaCsHook*LuaCsHookCallback*2Barotrauma*ACsMod)|({[System.String]:(System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod)}))})
+---`Field Private Instance`
+---@field registeredPatches (System.Collections.Generic.Dictionary*1Barotrauma*LuaCsHook*MethodKey*1Barotrauma*LuaCsHook*PatchedMethod)|({[Barotrauma.LuaCsHook.MethodKey]:(Barotrauma.LuaCsHook.PatchedMethod)})
+---`Field Private Instance`
+---@field luaCs Barotrauma.LuaCsSetup
+---`Field Private Instance`
+---@field performanceMeasurement System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field compatHookPrefixMethods (System.Collections.Generic.Dictionary*1System*Int64*1System*Collections*Generic*HashSet*2System*ValueTuple*3System*String*3Barotrauma*LuaCsPatch*3Barotrauma*ACsMod)|({[System.Int64]:((System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod)|(System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod[]))})
+---`Field Private Instance`
+---@field compatHookPostfixMethods (System.Collections.Generic.Dictionary*1System*Int64*1System*Collections*Generic*HashSet*2System*ValueTuple*3System*String*3Barotrauma*LuaCsPatch*3Barotrauma*ACsMod)|({[System.Int64]:((System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod)|(System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod[]))})
+---`Field Private Static`
+---@field prohibitedHooks (System.String-arr)|(System.String[])
+---`Field Private Static`
+---@field instance Barotrauma.LuaCsHook
+---`Field Private Static`
+---@field InvalidIdentifierCharsRegex System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field _miHookLuaCsPatchPrefix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field _miHookLuaCsPatchPostfix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field _miHookLuaCsPatchRetPrefix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field _miHookLuaCsPatchRetPostfix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field FIELD_LUACS System.String
+_G['Hook'] = {}
+
+---`Method Private Static`
+---@param method System.Reflection.MethodBase
+_G['Hook'].ValidatePatchTarget = function(method) end
+
+---`Method Private Static`
+---@param identifier System.String
+---@return System.String
+_G['Hook'].NormalizeIdentifier = function(identifier) end
+
+---`Method Public Instance`
+_G['Hook'].Initialize = function() end
+
+---`Method Private Instance`
+---@return System.Reflection.Emit.ModuleBuilder
+_G['Hook'].CreateModuleBuilder = function() end
+
+---`Method Public Instance`
+---@overload fun(name:System.String, func:(Barotrauma.LuaCsFunc)|(fun(...:System.Object):(System.Object)), owner?:Barotrauma.ACsMod)
+---@param name System.String
+---@param identifier System.String
+---@param func (Barotrauma.LuaCsFunc)|(fun(...:System.Object):(System.Object))
+---@param owner? Barotrauma.ACsMod
+_G['Hook'].Add = function(name, identifier, func, owner) end
+
+---`Method Public Instance`
+---@param name System.String
+---@param identifier System.String
+---@return System.Boolean
+_G['Hook'].Exists = function(name, identifier) end
+
+---`Method Public Instance`
+---@param name System.String
+---@param identifier System.String
+_G['Hook'].Remove = function(name, identifier) end
+
+---`Method Public Instance`
+_G['Hook'].Clear = function() end
+
+---`Method Public Instance`
+---@overload fun(name:System.String, ...:System.Object):(Barotrauma.LuaCsHook.T)
+---@param name System.String
+---@param ... System.Object
+---@return System.Object
+_G['Hook'].Call = function(name, ...) end
+
+---`Method Private Static`
+---@param className System.String
+---@param methodName System.String
+---@param parameters (System.String-arr)|(System.String[])
+---@return System.Reflection.MethodBase
+_G['Hook'].ResolveMethod = function(className, methodName, parameters) end
+
+---`Method Private Instance`
+---@param identifier System.String
+---@param original System.Reflection.MethodBase
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+---@return System.Reflection.MethodInfo
+_G['Hook'].CreateDynamicHarmonyPatch = function(identifier, original, hookType) end
+
+---`Method Private Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param patch (Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue))
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+---@return System.String
+_G['Hook'].Patch = function(identifier, method, patch, hookType) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, parameterTypes:(System.String-arr)|(System.String[]), patch:(Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue)), hookType?:Barotrauma.LuaCsHook.HookMethodType):(System.String)
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, patch:(Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue)), hookType?:Barotrauma.LuaCsHook.HookMethodType):(System.String)
+---@overload fun(className:System.String, methodName:System.String, parameterTypes:(System.String-arr)|(System.String[]), patch:(Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue)), hookType?:Barotrauma.LuaCsHook.HookMethodType):(System.String)
+---@param className System.String
+---@param methodName System.String
+---@param patch (Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue))
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+---@return System.String
+_G['Hook'].Patch = function(className, methodName, patch, hookType) end
+
+---`Method Private Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+---@return System.Boolean
+_G['Hook'].RemovePatch = function(identifier, method, hookType) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, parameterTypes:(System.String-arr)|(System.String[]), hookType:Barotrauma.LuaCsHook.HookMethodType):(System.Boolean)
+---@param identifier System.String
+---@param className System.String
+---@param methodName System.String
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+---@return System.Boolean
+_G['Hook'].RemovePatch = function(identifier, className, methodName, hookType) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __instance System.Object
+---@param result System.Object-ref
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+_G['Hook']._hookLuaCsPatch = function(__originalMethod, __args, __instance, result, hookType) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __instance System.Object
+---@return System.Boolean
+_G['Hook'].HookLuaCsPatchPrefix = function(__originalMethod, __args, __instance) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __instance System.Object
+_G['Hook'].HookLuaCsPatchPostfix = function(__originalMethod, __args, __instance) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __result System.Object-ref
+---@param __instance System.Object
+---@return System.Boolean
+_G['Hook'].HookLuaCsPatchRetPrefix = function(__originalMethod, __args, __result, __instance) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __result System.Object-ref
+---@param __instance System.Object
+_G['Hook'].HookLuaCsPatchRetPostfix = function(__originalMethod, __args, __result, __instance) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param patch (Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object))
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+---@param owner? Barotrauma.ACsMod
+_G['Hook'].HookMethod = function(identifier, method, patch, hookType, owner) end
+
+---`Method NonPublic Instance`
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, parameterNames:(System.String-arr)|(System.String[]), patch:(Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object)), hookMethodType?:Barotrauma.LuaCsHook.HookMethodType)
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, patch:(Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object)), hookMethodType?:Barotrauma.LuaCsHook.HookMethodType)
+---@overload fun(className:System.String, methodName:System.String, patch:(Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object)), hookMethodType?:Barotrauma.LuaCsHook.HookMethodType)
+---@param className System.String
+---@param methodName System.String
+---@param parameterNames (System.String-arr)|(System.String[])
+---@param patch (Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object))
+---@param hookMethodType? Barotrauma.LuaCsHook.HookMethodType
+_G['Hook'].HookMethod = function(className, methodName, parameterNames, patch, hookMethodType) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+_G['Hook'].UnhookMethod = function(identifier, method, hookType) end
+
+---`Method NonPublic Instance`
+---@param identifier System.String
+---@param className System.String
+---@param methodName System.String
+---@param parameterNames (System.String-arr)|(System.String[])
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+_G['Hook'].UnhookMethod = function(identifier, className, methodName, parameterNames, hookType) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C39AF0.lua b/Meta/Types/client/_00007FFD97C39AF0.lua
new file mode 100644
index 0000000..eddb8ee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C39AF0.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.LuaCsHook.HookMethodType : System.Enum
+---`Field Public Static`
+---@field Before Barotrauma.LuaCsHook.HookMethodType
+---`Field Public Static`
+---@field After Barotrauma.LuaCsHook.HookMethodType
+_G['Hook']['HookMethodType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97C39DD0.lua b/Meta/Types/client/_00007FFD97C39DD0.lua
new file mode 100644
index 0000000..562759f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C39DD0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LuaCsHook.ParameterTable : System.Object, {[System.String]:System.Object}
+---`Field Private Instance`
+---@field parameters (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---`Field Private Instance`
+---@field returnValueModified System.Boolean
+---`Field Private Instance`
+---@field returnValue System.Object
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OriginalReturnValue System.Object
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReturnValue System.Object
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PreventExecution System.Boolean
+---`Getter Public Instance`
+---@field OriginalParameters (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---`Getter Public Instance`
+---@field ModifiedParameters (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+_G['Hook']['ParameterTable'] = {}
+
+---`Constructor Public Instance`
+---@param dict (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsHook.ParameterTable
+_G['Hook']['ParameterTable'] = function(dict) end
+
+---`Constructor Public Instance`
+---@param dict (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsHook.ParameterTable
+_G['Hook']['ParameterTable'].__new = function(dict) end
+
diff --git a/Meta/Types/client/_00007FFD97C39F78.lua b/Meta/Types/client/_00007FFD97C39F78.lua
new file mode 100644
index 0000000..e70e912
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C39F78.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.LuaCsTimer : System.Object
+---`Field Private Instance`
+---@field timedActions (System.Collections.Generic.List*1Barotrauma*LuaCsTimer*TimedAction)|(Barotrauma.LuaCsTimer.TimedAction[])
+---`Getter Public Static`
+---@field Time System.Double
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field AccumulatorMax System.Double
+_G['Timer'] = {}
+
+---`Method Public Static`
+---@return System.Double
+_G['Timer'].GetTime = function() end
+
+---`Method Private Instance`
+---@param timedAction Barotrauma.LuaCsTimer.TimedAction
+_G['Timer'].AddTimer = function(timedAction) end
+
+---`Method Public Instance`
+_G['Timer'].Update = function() end
+
+---`Method Public Instance`
+_G['Timer'].Clear = function() end
+
+---`Method Public Instance`
+---@param action (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param millisecondDelay System.Int32
+_G['Timer'].Wait = function(action, millisecondDelay) end
+
+---`Method Public Instance`
+---@param action (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Timer'].NextFrame = function(action) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsTimer
+_G['Timer'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsTimer
+_G['Timer'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3A230.lua b/Meta/Types/client/_00007FFD97C3A230.lua
new file mode 100644
index 0000000..4b924ef
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3A230.lua
@@ -0,0 +1,104 @@
+---@meta
+---@class Barotrauma.LuaCsFile : System.Object
+_G['File'] = {}
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].CanReadFromPath = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].CanWriteToPath = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@param write? System.Boolean
+---@param origin? Barotrauma.LuaCsMessageOrigin
+---@return System.Boolean
+_G['File'].IsPathAllowedException = function(path, write, origin) end
+
+---`Method Public Static`
+---@param path System.String
+---@param write? System.Boolean
+---@return System.Boolean
+_G['File'].IsPathAllowedLuaException = function(path, write) end
+
+---`Method Public Static`
+---@param path System.String
+---@param write? System.Boolean
+---@return System.Boolean
+_G['File'].IsPathAllowedCsException = function(path, write) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.String
+_G['File'].Read = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@param text System.String
+_G['File'].Write = function(path, text) end
+
+---`Method Public Static`
+---@param path System.String
+_G['File'].Delete = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+_G['File'].DeleteDirectory = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@param destination System.String
+_G['File'].Move = function(path, destination) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.IO.FileStream
+_G['File'].OpenRead = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.IO.FileStream
+_G['File'].OpenWrite = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].Exists = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].CreateDirectory = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].DirectoryExists = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return (System.String-arr)|(System.String[])
+_G['File'].GetFiles = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return (System.String-arr)|(System.String[])
+_G['File'].GetDirectories = function(path) end
+
+---`Method Public Static`
+---@param sDir System.String
+---@return (System.String-arr)|(System.String[])
+_G['File'].DirSearch = function(sDir) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsFile
+_G['File'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsFile
+_G['File'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3A558.lua b/Meta/Types/client/_00007FFD97C3A558.lua
new file mode 100644
index 0000000..33d2e81
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3A558.lua
@@ -0,0 +1,135 @@
+---@meta
+---@class Barotrauma.LuaCsNetworking : System.Object
+---`Field Private Instance`
+---@field receiveQueue (System.Collections.Generic.Dictionary*1System*UInt16*1System*Collections*Generic*Queue*2Barotrauma*Networking*IReadMessage)|({[System.UInt16]:((System.Collections.Generic.Queue*1Barotrauma*Networking*IReadMessage)|(fun():(Barotrauma.Networking.IReadMessage)))})
+---`Field Public Instance`
+---@field RestrictMessageSize System.Boolean
+---`Field Private Instance`
+---@field netReceives (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*LuaCsAction)|({[System.String]:((Barotrauma.LuaCsAction)|(fun(...:System.Object)))})
+---`Field Private Instance`
+---@field idToString (System.Collections.Generic.Dictionary*1System*UInt16*1System*String)|({[System.UInt16]:(System.String)})
+---`Field Private Instance`
+---@field stringToId (System.Collections.Generic.Dictionary*1System*String*1System*UInt16)|({[System.String]:(System.UInt16)})
+---`Field Private Static`
+---@field client System.Net.Http.HttpClient
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastClientListUpdateID System.UInt16
+_G['Networking'] = {}
+
+---`Method Public Instance`
+_G['Networking'].SendSyncMessage = function() end
+
+---`Method Public Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param header Barotrauma.Networking.ServerPacketHeader
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].NetMessageReceived = function(netMessage, header, client) end
+
+---`Method Public Instance`
+---@overload fun(netMessageName:System.String):(Barotrauma.Networking.IWriteMessage)
+---@return Barotrauma.Networking.IWriteMessage
+_G['Networking'].Start = function() end
+
+---`Method Public Instance`
+---@param netMessageName System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Networking'].Receive = function(netMessageName, callback) end
+
+---`Method Public Instance`
+---@param netMessageName System.String
+_G['Networking'].RequestId = function(netMessageName) end
+
+---`Method Public Instance`
+---@param netMessage Barotrauma.Networking.IWriteMessage
+---@param deliveryMethod? Barotrauma.Networking.DeliveryMethod
+_G['Networking'].Send = function(netMessage, deliveryMethod) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].HandleNetMessageId = function(netMessage, client) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+_G['Networking'].ReadIds = function(netMessage) end
+
+---`Method Public Instance`
+_G['Networking'].Initialize = function() end
+
+---`Method Public Instance`
+---@param netMessageName System.String
+_G['Networking'].Remove = function(netMessageName) end
+
+---`Method Public Instance`
+---@param id System.UInt16
+---@return System.String
+_G['Networking'].IdToString = function(id) end
+
+---`Method Public Instance`
+---@param name System.String
+---@return System.UInt16
+_G['Networking'].StringToId = function(name) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param name System.String
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].HandleNetMessage = function(netMessage, name, client) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].HandleNetMessageString = function(netMessage, client) end
+
+---`Method Public Instance`
+---@param url System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param data? System.String
+---@param method? System.String
+---@param contentType? System.String
+---@param headers? (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---@param savePath? System.String
+_G['Networking'].HttpRequest = function(url, callback, data, method, contentType, headers, savePath) end
+
+---`Method Public Instance`
+---@param url System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param data System.String
+---@param contentType? System.String
+---@param headers? (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---@param savePath? System.String
+_G['Networking'].HttpPost = function(url, callback, data, contentType, headers, savePath) end
+
+---`Method Public Instance`
+---@param url System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param headers? (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---@param savePath? System.String
+_G['Networking'].HttpGet = function(url, callback, headers, savePath) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Networking.INetSerializable
+---@param extraData Barotrauma.Networking.NetEntityEvent.IData
+_G['Networking'].CreateEntityEvent = function(entity, extraData) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3A6D8.lua b/Meta/Types/client/_00007FFD97C3A6D8.lua
new file mode 100644
index 0000000..ee03cd7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3A6D8.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.LuaCsSteam : System.Object
+---`Field Private Instance`
+---@field lastTimeChecked System.Double
+---`Field Private Instance`
+---@field itemsBeingDownloaded (System.Collections.Generic.List*1Barotrauma*LuaCsSteam*WorkshopItemDownload)|(Barotrauma.LuaCsSteam.WorkshopItemDownload[])
+_G['Steam'] = {}
+
+---`Method Private Static`
+---@param sourceDirName System.String
+---@param destDirName System.String
+---@param copySubDirs System.Boolean
+---@param overwriteExisting? System.Boolean
+_G['Steam'].CopyFolder = function(sourceDirName, destDirName, copySubDirs, overwriteExisting) end
+
+---`Method Private Instance`
+---@param download Barotrauma.LuaCsSteam.WorkshopItemDownload
+---@param startDownload? System.Boolean
+_G['Steam'].DownloadWorkshopItemAsync = function(download, startDownload) end
+
+---`Method Public Instance`
+---@overload fun(id:System.UInt64, destination:System.String, callback:(Barotrauma.LuaCsAction)|(fun(...:System.Object)))
+---@param item Steamworks.Ugc.Item
+---@param destination System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Steam'].DownloadWorkshopItem = function(item, destination, callback) end
+
+---`Method Public Instance`
+---@param id System.UInt64
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Steam'].GetWorkshopItem = function(id, callback) end
+
+---`Method Public Instance`
+_G['Steam'].Update = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSteam
+_G['Steam'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSteam
+_G['Steam'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3A7F8.lua b/Meta/Types/client/_00007FFD97C3A7F8.lua
new file mode 100644
index 0000000..afddd9f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3A7F8.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.LuaCsPerformanceCounter : System.Object
+---`Field Public Instance`
+---@field EnablePerformanceCounter System.Boolean
+---`Field Public Instance`
+---@field UpdateElapsedTime System.Double
+---`Field Public Instance`
+---@field HookElapsedTime (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*Double)|({[System.String]:((System.Collections.Generic.Dictionary*1System*String*1System*Double)|({[System.String]:(System.Double)}))})
+---`Getter Public Static`
+---@field MemoryUsage System.Single
+_G['PerformanceCounter'] = {}
+
+---`Method Public Instance`
+---@param eventName System.String
+---@param hookName System.String
+---@param ticks System.Int64
+_G['PerformanceCounter'].SetHookElapsedTicks = function(eventName, hookName, ticks) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsPerformanceCounter
+_G['PerformanceCounter'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsPerformanceCounter
+_G['PerformanceCounter'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3A9C8.lua b/Meta/Types/client/_00007FFD97C3A9C8.lua
new file mode 100644
index 0000000..040b99f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3A9C8.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.LuaCsConfig : System.Object
+_G['LuaCsConfig'] = {}
+
+---`Method Private Static`
+---@param typesElem System.Xml.Linq.XElement
+---@return (System.Type-arr)|(System.Type[])
+_G['LuaCsConfig'].LoadDocTypes = function(typesElem) end
+
+---`Method Private Static`
+---@param types (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['LuaCsConfig'].SaveDocTypes = function(types) end
+
+---`Method Private Static`
+---@param types (System.Type-arr)|(System.Type[])
+---@param elem System.Xml.Linq.XElement
+---@return System.Type
+_G['LuaCsConfig'].GetTypeAttr = function(types, elem) end
+
+---`Method Private Static`
+---@param elem System.Xml.Linq.XElement
+---@return Barotrauma.LuaCsConfig.ValueType
+_G['LuaCsConfig'].GetValueType = function(elem) end
+
+---`Method Private Static`
+---@param types (System.Type-arr)|(System.Type[])
+---@param elem System.Xml.Linq.XElement
+---@return System.Object
+_G['LuaCsConfig'].ParseValue = function(types, elem) end
+
+---`Method Private Static`
+---@param types (System.Collections.Generic.List*1System*Type)|(System.Type[])
+---@param type System.Type
+---@param elem System.Xml.Linq.XElement
+_G['LuaCsConfig'].AddTypeAttr = function(types, type, elem) end
+
+---`Method Private Static`
+---@param types (System.Collections.Generic.List*1System*Type)|(System.Type[])
+---@param name System.String
+---@param value System.Object
+---@return System.Xml.Linq.XElement
+_G['LuaCsConfig'].ParseObject = function(types, name, value) end
+
+---`Method Public Static`
+---@overload fun(file:System.IO.FileStream):(Barotrauma.LuaCsConfig.T)
+---@param path System.String
+---@return Barotrauma.LuaCsConfig.T
+_G['LuaCsConfig'].Load = function(path) end
+
+---`Method Public Static`
+---@overload fun(file:System.IO.FileStream, obj:System.Object)
+---@param path System.String
+---@param obj System.Object
+_G['LuaCsConfig'].Save = function(path, obj) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsConfig
+_G['LuaCsConfig'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsConfig
+_G['LuaCsConfig'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3AB50.lua b/Meta/Types/client/_00007FFD97C3AB50.lua
new file mode 100644
index 0000000..7ef6905
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3AB50.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.LuaCsSetup.LuaCsModStore : System.Object
+---`Field Private Instance`
+---@field luaModInterface (System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*LuaModStore)|(Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore[])
+---`Field Private Instance`
+---@field csModInterface (System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*CsModStore)|(Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore[])
+_G['ModStore'] = {}
+
+---`Method Public Instance`
+_G['ModStore'].Initialize = function() end
+
+---`Method Public Instance`
+_G['ModStore'].Clear = function() end
+
+---`Method NonPublic Instance`
+---@param modName System.String
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore'].Register = function(modName) end
+
+---`Method Public Instance`
+---@param mod Barotrauma.ACsMod
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore'].Register = function(mod) end
+
+---`Method Public Instance`
+---@param modName System.String
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore'].GetCsStore = function(modName) end
+
+---`Method NonPublic Instance`
+---@param modName System.String
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore'].GetLuaStore = function(modName) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSetup.LuaCsModStore
+_G['ModStore'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSetup.LuaCsModStore
+_G['ModStore'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3AEE8.lua b/Meta/Types/client/_00007FFD97C3AEE8.lua
new file mode 100644
index 0000000..511d79b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3AEE8.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore : Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1Barotrauma*ACsMod*1System*Object
+---`Field Public Instance`
+---@field Mod Barotrauma.ACsMod
+_G['ModStore']['CsModStore'] = {}
+
+---`Method Public Instance Virtual`
+---@param value Barotrauma.ACsMod
+---@return System.Boolean
+_G['ModStore']['CsModStore'].Equals = function(value) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore']['CsModStore'] = function(store) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore']['CsModStore'].__new = function(store) end
+
diff --git a/Meta/Types/client/_00007FFD97C3C060.lua b/Meta/Types/client/_00007FFD97C3C060.lua
new file mode 100644
index 0000000..37eb085
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3C060.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore : Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1System*String*1MoonSharp*Interpreter*DynValue
+---`Field Public Instance`
+---@field Name System.String
+_G['ModStore']['LuaModStore'] = {}
+
+---`Method Public Instance Virtual`
+---@param value System.String
+---@return System.Boolean
+_G['ModStore']['LuaModStore'].Equals = function(value) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1MoonSharp*Interpreter*DynValue)|({[System.String]:(MoonSharp.Interpreter.DynValue)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore']['LuaModStore'] = function(store) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1MoonSharp*Interpreter*DynValue)|({[System.String]:(MoonSharp.Interpreter.DynValue)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore']['LuaModStore'].__new = function(store) end
+
diff --git a/Meta/Types/client/_00007FFD97C3E0D8.lua b/Meta/Types/client/_00007FFD97C3E0D8.lua
new file mode 100644
index 0000000..7e369eb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3E0D8.lua
@@ -0,0 +1,120 @@
+---@meta
+---@class Barotrauma.AssemblyManager : System.Object
+---`Field Private Instance`
+---@field OnAssemblyLoaded (System.Action*1System*Reflection*Assembly)|(fun(obj:System.Reflection.Assembly))
+---`Field Private Instance`
+---@field OnAssemblyUnloading (System.Action*1System*Reflection*Assembly)|(fun(obj:System.Reflection.Assembly))
+---`Field Private Instance`
+---@field OnException (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---`Field Private Instance`
+---@field OnACLUnload (System.Action*1System*Guid)|(fun(obj:System.Guid))
+---`Field Private Instance`
+---@field IsReadyToUnloadACL (System.Func*1Barotrauma*AssemblyManager*LoadedACL*1System*Boolean)|(fun(arg:Barotrauma.AssemblyManager.LoadedACL):(System.Boolean))
+---`Field Private Instance`
+---@field _subTypesLookupCache (System.Collections.Concurrent.ConcurrentDictionary*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type)|(fun():(System.Collections.Generic.KeyValuePair*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type))
+---`Field Private Instance`
+---@field _defaultContextTypes (System.Collections.Immutable.ImmutableDictionary*1System*String*1System*Type)|({[System.String]:(System.Type)})
+---`Field Private Instance`
+---@field LoadedACLs (System.Collections.Concurrent.ConcurrentDictionary*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL)|(fun():(System.Collections.Generic.KeyValuePair*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL))
+---`Field Private Instance`
+---@field UnloadingACLs (System.Collections.Generic.List*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader)|(System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader[])
+---`Field Private Instance`
+---@field OpsLockLoaded System.Threading.ReaderWriterLockSlim
+---`Field Private Instance`
+---@field OpsLockUnloaded System.Threading.ReaderWriterLockSlim
+---`Getter Public Instance`
+---@field StillUnloadingACLs (System.Collections.Immutable.ImmutableList*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader)|(System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader[])
+---`Getter Public Instance`
+---@field IsCurrentlyUnloading System.Boolean
+_G['AssemblyManager'] = {}
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type)))
+---@param rebuildList System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['AssemblyManager'].GetSubTypesInLoadedAssemblies = function(rebuildList) end
+
+---`Method Public Instance`
+---@overload fun(id:System.Guid, types:System.Collections.Generic.IEnumerable):(System.Boolean)
+---@param id System.Guid
+---@param types System.Collections.Generic.IEnumerable
+---@return System.Boolean
+_G['AssemblyManager'].TryGetSubTypesFromACL = function(id, types) end
+
+---`Method Public Instance`
+---@param typeName System.String
+---@return (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['AssemblyManager'].GetTypesByName = function(typeName) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['AssemblyManager'].GetAllTypesInLoadedAssemblies = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AssemblyManager*LoadedACL)|(fun():(Barotrauma.AssemblyManager.LoadedACL))
+_G['AssemblyManager'].GetAllLoadedACLs = function() end
+
+---`Method NonPublic Instance`
+---@return (System.Collections.Immutable.ImmutableList*1Barotrauma*AssemblyManager*LoadedACL)|(Barotrauma.AssemblyManager.LoadedACL[])
+_G['AssemblyManager'].UnsafeGetAllLoadedACLs = function() end
+
+---`Method Public Instance`
+---@param compiledAssemblyName System.String
+---@param syntaxTree (System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*SyntaxTree)|(fun():(Microsoft.CodeAnalysis.SyntaxTree))
+---@param externalMetadataReferences (System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*MetadataReference)|(fun():(Microsoft.CodeAnalysis.MetadataReference))
+---@param compilationOptions Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions
+---@param friendlyName System.String
+---@param id System.Guid-ref
+---@param externFileAssemblyRefs? (System.Collections.Generic.IEnumerable*1System*Reflection*Assembly)|(fun():(System.Reflection.Assembly))
+---@return Barotrauma.AssemblyLoadingSuccessState
+_G['AssemblyManager'].LoadAssemblyFromMemory = function(compiledAssemblyName, syntaxTree, externalMetadataReferences, compilationOptions, friendlyName, id, externFileAssemblyRefs) end
+
+---`Method Public Instance`
+---@param guid System.Guid
+---@return System.Boolean
+_G['AssemblyManager'].SetACLToTemplateMode = function(guid) end
+
+---`Method Public Instance`
+---@param filePaths (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---@param friendlyName System.String
+---@param id System.Guid-ref
+---@return Barotrauma.AssemblyLoadingSuccessState
+_G['AssemblyManager'].LoadAssembliesFromLocations = function(filePaths, friendlyName, id) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AssemblyManager'].TryBeginDispose = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AssemblyManager'].FinalizeDispose = function() end
+
+---`Method Public Instance`
+---@param id System.Guid
+---@param acl Barotrauma.LoadedACL-ref
+---@return System.Boolean
+_G['AssemblyManager'].TryGetACL = function(id, acl) end
+
+---`Method Private Instance`
+---@param id System.Guid
+---@param friendlyName System.String
+---@param acl Barotrauma.LoadedACL-ref
+---@return System.Boolean
+_G['AssemblyManager'].GetOrCreateACL = function(id, friendlyName, acl) end
+
+---`Method Private Instance`
+---@param id System.Guid
+---@return System.Boolean
+_G['AssemblyManager'].DisposeACL = function(id) end
+
+---`Method Private Instance`
+_G['AssemblyManager'].RebuildTypesList = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.AssemblyManager
+_G['AssemblyManager'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.AssemblyManager
+_G['AssemblyManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C3FDD8.lua b/Meta/Types/client/_00007FFD97C3FDD8.lua
new file mode 100644
index 0000000..4fb9c2c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C3FDD8.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.CsPackageManager : System.Object
+---`Field Private Instance`
+---@field _publicizedAssembliesToLoad (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field _assemblyUnloadTimeoutSeconds System.Single
+---`Field Private Instance`
+---@field _publicizedAssemblyLoader System.Guid
+---`Field Private Instance`
+---@field _currentPackagesByLoadOrder (System.Collections.Generic.List*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[])
+---`Field Private Instance`
+---@field _packagesDependencies (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Collections*Immutable*ImmutableList*2Barotrauma*ContentPackage)|({[Barotrauma.ContentPackage]:((System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[]))})
+---`Field Private Instance`
+---@field _loadedCompiledPackageAssemblies (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Guid)|({[Barotrauma.ContentPackage]:(System.Guid)})
+---`Field Private Instance`
+---@field _reverseLookupGuidList (System.Collections.Generic.Dictionary*1System*Guid*1Barotrauma*ContentPackage)|({[System.Guid]:(Barotrauma.ContentPackage)})
+---`Field Private Instance`
+---@field _loadedPlugins (System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Generic*HashSet*2Barotrauma*IAssemblyPlugin)|({[System.Guid]:((System.Collections.Generic.HashSet*1Barotrauma*IAssemblyPlugin)|(Barotrauma.IAssemblyPlugin[]))})
+---`Field Private Instance`
+---@field _pluginTypes (System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableHashSet*2System*Type)|({[System.Guid]:((System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[]))})
+---`Field Private Instance`
+---@field _packageRunConfigs (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1Barotrauma*RunConfig)|({[Barotrauma.ContentPackage]:(Barotrauma.RunConfig)})
+---`Field Private Instance`
+---@field _luaRegisteredTypes (System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableList*2System*Type)|({[System.Guid]:((System.Collections.Immutable.ImmutableList*1System*Type)|(System.Type[]))})
+---`Field Private Instance`
+---@field _assemblyManager Barotrauma.AssemblyManager
+---`Field Private Instance`
+---@field _luaCsSetup Barotrauma.LuaCsSetup
+---`Field Private Instance`
+---@field _assemblyUnloadStartTime System.DateTime
+---`Field Private Instance`
+---@field OnDispose (System.Action)|(fun())
+---`Field Private Static`
+---@field ScriptParseOptions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions
+---`Field Private Static`
+---@field CompilationOptions Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions
+---`Field Private Static`
+---@field BaseAssemblyImports Microsoft.CodeAnalysis.SyntaxTree
+---`Field Private Static`
+---@field PLATFORM_TARGET System.String
+---`Field Private Static`
+---@field ARCHITECTURE_TARGET System.String
+---`Field Private Static`
+---@field SCRIPT_FILE_REGEX System.String
+---`Field Private Static`
+---@field ASSEMBLY_FILE_REGEX System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AssembliesLoaded System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PluginsPreInit System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PluginsInitialized System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PluginsLoaded System.Boolean
+_G['PluginPackageManager'] = {}
+
+---`Method Public Instance`
+---@param name System.String
+---@param caseSensitive? System.Boolean
+---@return System.Boolean
+_G['PluginPackageManager'].LuaTryRegisterPackageTypes = function(name, caseSensitive) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['PluginPackageManager'].GetCurrentPackagesByLoadOrder = function() end
+
+---`Method Public Instance`
+---@param package Barotrauma.ContentPackage-ref
+---@return System.Boolean
+_G['PluginPackageManager'].TryGetPackageForPlugin = function(package) end
+
+---`Method Public Instance`
+---@param package Barotrauma.ContentPackage
+---@param loadedPlugins System.Collections.Generic.IEnumerable
+---@return System.Boolean
+_G['PluginPackageManager'].TryGetLoadedPluginsForPackage = function(package, loadedPlugins) end
+
+---`Method Public Instance Virtual`
+_G['PluginPackageManager'].Dispose = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AssemblyLoadingSuccessState
+_G['PluginPackageManager'].LoadAssemblyPackages = function() end
+
+---`Method Public Instance`
+_G['PluginPackageManager'].RunPluginsInit = function() end
+
+---`Method Public Instance`
+_G['PluginPackageManager'].RunPluginsPreInit = function() end
+
+---`Method Public Instance`
+---@param force? System.Boolean
+_G['PluginPackageManager'].InstantiatePlugins = function(force) end
+
+---`Method Public Instance`
+_G['PluginPackageManager'].UnloadPlugins = function() end
+
+---`Method Public Static`
+---@param package Barotrauma.ContentPackage
+---@param config Barotrauma.RunConfig-ref
+---@return System.Boolean
+_G['PluginPackageManager'].GetOrCreateRunConfig = function(package, config) end
+
+---`Method Private Instance`
+---@param action (System.Action)|(fun())
+---@param messageMethodName System.String
+---@param messageTypeName System.String
+_G['PluginPackageManager'].TryRun = function(action, messageMethodName, messageTypeName) end
+
+---`Method Private Instance`
+---@param assembly System.Reflection.Assembly
+_G['PluginPackageManager'].AssemblyManagerOnAssemblyUnloading = function(assembly) end
+
+---`Method Private Instance`
+---@param assembly System.Reflection.Assembly
+_G['PluginPackageManager'].AssemblyManagerOnAssemblyLoaded = function(assembly) end
+
+---`Method NonPublic Instance Virtual`
+_G['PluginPackageManager'].Finalize = function() end
+
+---`Method Private Static`
+---@param package Barotrauma.ContentPackage
+---@param scriptFilePaths System.Collections.Immutable.ImmutableList
+---@return System.Boolean
+_G['PluginPackageManager'].TryScanPackageForScripts = function(package, scriptFilePaths) end
+
+---`Method Private Static`
+---@param package Barotrauma.ContentPackage
+---@param assemblyFilePaths System.Collections.Immutable.ImmutableList
+---@return System.Boolean
+_G['PluginPackageManager'].TryScanPackagesForAssemblies = function(package, assemblyFilePaths) end
+
+---`Method Private Static`
+---@param package Barotrauma.ContentPackage
+---@return Barotrauma.RunConfig
+_G['PluginPackageManager'].GetRunConfigForPackage = function(package) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['PluginPackageManager'].BuildPackagesList = function() end
+
+---`Method Private Static`
+---@return Microsoft.CodeAnalysis.SyntaxTree
+_G['PluginPackageManager'].GetPackageScriptImports = function() end
+
+---`Method Private Static`
+---@param packages (System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[])
+---@param dependenciesMap System.Collections.Generic.Dictionary
+---@return System.Boolean
+_G['PluginPackageManager'].TryBuildDependenciesMap = function(packages, dependenciesMap) end
+
+---`Method Private Static`
+---@param packages (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Collections*Immutable*ImmutableList*2Barotrauma*ContentPackage)|({[Barotrauma.ContentPackage]:((System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[]))})
+---@param readyToLoad System.Collections.Generic.IEnumerable
+---@param cannotLoadPackages System.Collections.Generic.IEnumerable
+---@param packageChecksPredicate? (System.Func*1Barotrauma*ContentPackage*1System*Boolean)|(fun(arg:Barotrauma.ContentPackage):(System.Boolean))
+---@return System.Boolean
+_G['PluginPackageManager'].OrderAndFilterPackagesByDependencies = function(packages, readyToLoad, cannotLoadPackages, packageChecksPredicate) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C701E8.lua b/Meta/Types/client/_00007FFD97C701E8.lua
new file mode 100644
index 0000000..8410cab
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C701E8.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---`Getter Public Instance Abstract Virtual`
+---@field Name System.String
+---`Getter Public Instance Abstract Virtual`
+---@field Type System.Type
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param script MoonSharp.Interpreter.Script
+---@param obj System.Object
+---@param index MoonSharp.Interpreter.DynValue
+---@param isDirectIndexing System.Boolean
+---@return MoonSharp.Interpreter.DynValue
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].Index = function(script, obj, index, isDirectIndexing) end
+
+---`Method Public Instance Abstract Virtual`
+---@param script MoonSharp.Interpreter.Script
+---@param obj System.Object
+---@param index MoonSharp.Interpreter.DynValue
+---@param value MoonSharp.Interpreter.DynValue
+---@param isDirectIndexing System.Boolean
+---@return System.Boolean
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].SetIndex = function(script, obj, index, value, isDirectIndexing) end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.String
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].AsString = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@param script MoonSharp.Interpreter.Script
+---@param obj System.Object
+---@param metaname System.String
+---@return MoonSharp.Interpreter.DynValue
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].MetaIndex = function(script, obj, metaname) end
+
+---`Method Public Instance Abstract Virtual`
+---@param type System.Type
+---@param obj System.Object
+---@return System.Boolean
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].IsTypeCompatible = function(type, obj) end
+
diff --git a/Meta/Types/client/_00007FFD97C70B20.lua b/Meta/Types/client/_00007FFD97C70B20.lua
new file mode 100644
index 0000000..f067b3d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C70B20.lua
@@ -0,0 +1,372 @@
+---@meta
+---@class Barotrauma.ToolBox : System.Object
+---`Field Private Static`
+---@field cachedFileNames (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Field Private Static`
+---@field removeBBCodeRegex System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field cachedLines (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2System*String)|({[System.String]:((System.Collections.Generic.List*1System*String)|(System.String[]))})
+---`Field Private Static`
+---@field affectedCharacters (System.Collections.Immutable.ImmutableHashSet*1System*Char)|(System.Char[])
+_G['ToolBox'] = {}
+
+---`Method Public Static`
+---@param point Microsoft.Xna.Framework.Vector2
+---@param verts (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param checkBoundingBox? System.Boolean
+---@return System.Boolean
+_G['ToolBox'].PointIntersectsWithPolygon = function(point, verts, checkBoundingBox) end
+
+---`Method Public Static`
+---@param verticess (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@return Microsoft.Xna.Framework.Vector2
+_G['ToolBox'].GetPolygonBoundingBoxSize = function(verticess) end
+
+---`Method Public Static`
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param scale Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['ToolBox'].ScalePolygon = function(vertices, scale) end
+
+---`Method Public Static`
+---@param poly (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@return Microsoft.Xna.Framework.Vector2
+_G['ToolBox'].GetPolygonCentroid = function(poly) end
+
+---`Method Public Static`
+---@param points (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param treshold? System.Int32
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['ToolBox'].SnapVertices = function(points, treshold) end
+
+---`Method Public Static`
+---@param rects (System.Collections.Generic.IEnumerable*1Microsoft*Xna*Framework*RectangleF)|(fun():(Microsoft.Xna.Framework.RectangleF))
+---@param treshold? System.Int32
+---@return (System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*RectangleF)|(Microsoft.Xna.Framework.RectangleF[])
+_G['ToolBox'].SnapRectangles = function(rects, treshold) end
+
+---`Method Public Static`
+---@param rectangles (System.Collections.Generic.IEnumerable*1Microsoft*Xna*Framework*RectangleF)|(fun():(Microsoft.Xna.Framework.RectangleF))
+---@return (System.Collections.Generic.List*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Vector2)|((System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])[])
+_G['ToolBox'].CombineRectanglesIntoShape = function(rectangles) end
+
+---`Method Public Static`
+---@overload fun(color:Microsoft.Xna.Framework.Color):(Microsoft.Xna.Framework.Vector3)
+---@param color Microsoft.Xna.Framework.Vector3
+---@return Microsoft.Xna.Framework.Vector3
+_G['ToolBox'].RgbToHLS = function(color) end
+
+---`Method Public Static`
+---@param hls Microsoft.Xna.Framework.Vector3
+---@return Microsoft.Xna.Framework.Color
+_G['ToolBox'].HLSToRGB = function(hls) end
+
+---`Method Private Static`
+---@param q1 System.Double
+---@param q2 System.Double
+---@param hue System.Double
+---@return System.Double
+_G['ToolBox'].QqhToRgb = function(q1, q2, hue) end
+
+---`Method Public Static`
+---@param color Microsoft.Xna.Framework.Color
+---@return Microsoft.Xna.Framework.Vector3
+_G['ToolBox'].RGBToHSV = function(color) end
+
+---`Method Public Static`
+---@param sourceColor Microsoft.Xna.Framework.Color
+---@param color Microsoft.Xna.Framework.Color
+---@return Microsoft.Xna.Framework.Color
+_G['ToolBox'].Add = function(sourceColor, color) end
+
+---`Method Public Static`
+---@param sourceColor Microsoft.Xna.Framework.Color
+---@param color Microsoft.Xna.Framework.Color
+---@return Microsoft.Xna.Framework.Color
+_G['ToolBox'].Subtract = function(sourceColor, color) end
+
+---`Method Public Static`
+---@overload fun(str:Barotrauma.LocalizedString, font:Barotrauma.GUIFont, maxWidth:System.Int32):(Barotrauma.LocalizedString)
+---@overload fun(str:System.String, font:Barotrauma.GUIFont, maxWidth:System.Int32):(Barotrauma.LocalizedString)
+---@param str System.String
+---@param font Barotrauma.ScalableFont
+---@param maxWidth System.Int32
+---@return System.String
+_G['ToolBox'].LimitString = function(str, font, maxWidth) end
+
+---`Method Public Static`
+---@param str System.String
+---@param font Barotrauma.ScalableFont
+---@param maxHeight System.Int32
+---@return System.String
+_G['ToolBox'].LimitStringHeight = function(str, font, maxHeight) end
+
+---`Method Public Static`
+---@param t System.Single
+---@param ... Microsoft.Xna.Framework.Color
+---@return Microsoft.Xna.Framework.Color
+_G['ToolBox'].GradientLerp = function(t, ...) end
+
+---`Method Public Static`
+---@overload fun(text:Barotrauma.LocalizedString, lineLength:System.Single, font:Barotrauma.GUIFont, textScale?:System.Single):(Barotrauma.LocalizedString)
+---@param text System.String
+---@param lineLength System.Single
+---@param font Barotrauma.ScalableFont
+---@param textScale? System.Single
+---@return System.String
+_G['ToolBox'].WrapText = function(text, lineLength, font, textScale) end
+
+---`Method Public Static`
+---@param a System.Version
+---@param b System.Version
+---@return System.Boolean
+_G['ToolBox'].VersionNewerIgnoreRevision = function(a, b) end
+
+---`Method Public Static`
+---@param filename System.String
+_G['ToolBox'].OpenFileWithShell = function(filename) end
+
+---`Method Public Static`
+---@param parent Barotrauma.RectTransform
+---@param padding System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['ToolBox'].PaddingSizeParentRelative = function(parent, padding) end
+
+---`Method Public Static`
+---@param text System.String
+---@param start System.Int32
+---@param length System.Int32
+---@param color Microsoft.Xna.Framework.Color
+---@return System.String
+_G['ToolBox'].ColorSectionOfString = function(text, start, length, color) end
+
+---`Method Public Static`
+---@param raw System.String
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ToolBox'].HexStringToBytes = function(raw) end
+
+---`Method Public Static`
+---@param filename System.String
+---@return System.Boolean
+_G['ToolBox'].IsProperFilenameCase = function(filename) end
+
+---`Method Public Static`
+---@param filename System.String
+---@param corrected System.Boolean-ref
+---@param directory? System.String
+---@return System.String
+_G['ToolBox'].CorrectFilenameCase = function(filename, corrected, directory) end
+
+---`Method Public Static`
+---@param fileName System.String
+---@return System.String
+_G['ToolBox'].RemoveInvalidFileNameChars = function(fileName) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['ToolBox'].RemoveBBCodeTags = function(str) end
+
+---`Method Public Static`
+---@param length System.Int32
+---@return System.String
+_G['ToolBox'].RandomSeed = function(length) end
+
+---`Method Public Static`
+---@param id Barotrauma.Identifier
+---@return System.Int32
+_G['ToolBox'].IdentifierToInt = function(id) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.Int32
+_G['ToolBox'].StringToInt = function(str) end
+
+---`Method Public Static`
+---@param inputType System.String
+---@return System.String
+_G['ToolBox'].ConvertInputType = function(inputType) end
+
+---`Method Public Static`
+---@param isFinished System.Boolean
+---@param isRunning? System.Boolean
+---@return System.String
+_G['ToolBox'].GetDebugSymbol = function(isFinished, isRunning) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@return System.String
+_G['ToolBox'].ColorizeObject = function(obj) end
+
+---`Method Public Static`
+---@param s System.String
+---@param t System.String
+---@return System.Int32
+_G['ToolBox'].LevenshteinDistance = function(s, t) end
+
+---`Method Public Static`
+---@param seconds System.Single
+---@return Barotrauma.LocalizedString
+_G['ToolBox'].SecondsToReadableTime = function(seconds) end
+
+---`Method Public Static`
+---@param filePath System.String
+---@param randSync? Barotrauma.Rand.RandSync
+---@return System.String
+_G['ToolBox'].GetRandomLine = function(filePath, randSync) end
+
+---`Method Public Static`
+---@param originalBuffer Barotrauma.Networking.IReadMessage
+---@param numberOfBits System.Int32
+---@return Barotrauma.Networking.IReadMessage
+_G['ToolBox'].ExtractBits = function(originalBuffer, numberOfBits) end
+
+---`Method Public Static`
+---@overload fun(objects:(System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T)|(fun():(Barotrauma.ToolBox.T)), weightMethod:(System.Func*1Barotrauma*ToolBox*T*1System*Single)|(fun(arg:Barotrauma.ToolBox.T):(System.Single)), randSync:Barotrauma.Rand.RandSync):(Barotrauma.ToolBox.T)
+---@overload fun(objects:(System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T)|(fun():(Barotrauma.ToolBox.T)), weightMethod:(System.Func*1Barotrauma*ToolBox*T*1System*Single)|(fun(arg:Barotrauma.ToolBox.T):(System.Single)), random:System.Random):(Barotrauma.ToolBox.T)
+---@overload fun(objects:(System.Collections.Generic.IList*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[]), weights:(System.Collections.Generic.IList*1System*Single)|(System.Single[]), randSync:Barotrauma.Rand.RandSync):(Barotrauma.ToolBox.T)
+---@param objects (System.Collections.Generic.IList*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[])
+---@param weights (System.Collections.Generic.IList*1System*Single)|(System.Single[])
+---@param random System.Random
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].SelectWeightedRandom = function(objects, weights, random) end
+
+---`Method Public Static`
+---@param source Barotrauma.ToolBox.T
+---@param flags? System.Reflection.BindingFlags
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].CreateCopy = function(source, flags) end
+
+---`Method Public Static`
+---@param source Barotrauma.ToolBox.T
+---@param target Barotrauma.ToolBox.T
+---@param flags? System.Reflection.BindingFlags
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].CopyValuesTo = function(source, target, flags) end
+
+---`Method Public Static`
+---@param source Barotrauma.ToolBox.T
+---@param destination Barotrauma.ToolBox.T
+---@param flags? System.Reflection.BindingFlags
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].CopyValues = function(source, destination, flags) end
+
+---`Method Public Static`
+---@param list (System.Collections.Generic.List*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[])
+---@param from System.Int32
+---@param to System.Int32
+_G['ToolBox'].SiftElement = function(list, from, to) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['ToolBox'].EscapeCharacters = function(str) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['ToolBox'].UnescapeCharacters = function(str) end
+
+---`Method Public Static`
+---@param command System.String
+---@return (System.String-arr)|(System.String[])
+_G['ToolBox'].SplitCommand = function(command) end
+
+---`Method Public Static`
+---@param path System.String
+---@param correctFilenameCase? System.Boolean
+---@param directory? System.String
+---@return System.String
+_G['ToolBox'].CleanUpPathCrossPlatform = function(path, correctFilenameCase, directory) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.String
+_G['ToolBox'].CleanUpPath = function(path) end
+
+---`Method Public Static`
+---@param easing Barotrauma.TransitionMode
+---@param t System.Single
+---@return System.Single
+_G['ToolBox'].GetEasing = function(easing, t) end
+
+---`Method Public Static`
+---@param center Microsoft.Xna.Framework.Point
+---@param size Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Rectangle
+_G['ToolBox'].GetWorldBounds = function(center, size) end
+
+---`Method Public Static`
+---@param o Barotrauma.ToolBox.T
+_G['ToolBox'].ThrowIfNull = function(o) end
+
+---`Method Public Static`
+---@param v System.Single
+---@return System.String
+_G['ToolBox'].GetFormattedPercentage = function(v) end
+
+---`Method Public Static`
+---@param original System.String
+---@return System.String
+_G['ToolBox'].ExtendColorToPercentageSigns = function(original) end
+
+---`Method Public Static`
+---@param original Barotrauma.Identifier
+---@param match Barotrauma.Identifier
+---@return System.Boolean
+_G['ToolBox'].StatIdentifierMatches = function(original, match) end
+
+---`Method Public Static`
+---@overload fun(self:System.Net.IPEndPoint, other:System.Net.IPEndPoint):(System.Boolean)
+---@param self System.Net.IPAddress
+---@param other System.Net.IPAddress
+---@return System.Boolean
+_G['ToolBox'].EquivalentTo = function(self, other) end
+
+---`Method Public Static`
+---@param value System.Int16
+---@return System.Single
+_G['ToolBox'].ShortAudioSampleToFloat = function(value) end
+
+---`Method Public Static`
+---@param value System.Single
+---@return System.Int16
+_G['ToolBox'].FloatToShortAudioSample = function(value) end
+
+---`Method Public Static`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param knobLength? System.Single
+---@return Barotrauma.SquareLine
+_G['ToolBox'].GetSquareLineBetweenPoints = function(start, luaKey__end, knobLength) end
+
+---`Method Public Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@return System.String
+_G['ToolBox'].BytesToHexString = function(bytes) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param point Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['ToolBox'].GetClosestPointOnRectangle = function(rect, point) end
+
+---`Method Public Static`
+---@param prefabs (System.Collections.Generic.IEnumerable*1Barotrauma*PrefabWithUintIdentifier)|(fun():(Barotrauma.PrefabWithUintIdentifier))
+---@return (System.Collections.Immutable.ImmutableArray*1System*UInt32)|(System.UInt32[])
+_G['ToolBox'].PrefabCollectionToUintIdentifierArray = function(prefabs) end
+
+---`Method Public Static`
+---@param Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ToolBox*T)|(fun():(Barotrauma.ToolBox.T))
+---@param uintIdentifiers (System.Collections.Generic.IEnumerable*1System*UInt32)|(fun():(System.UInt32))
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[])
+_G['ToolBox'].UintIdentifierArrayToPrefabCollection = function(Prefabs, uintIdentifiers) end
+
+---`Constructor Private Static`
+---@return Barotrauma.ToolBox
+_G['ToolBox'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ToolBox
+_G['ToolBox'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C71178.lua b/Meta/Types/client/_00007FFD97C71178.lua
new file mode 100644
index 0000000..a26a2c6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C71178.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Barotrauma.Identifier : System.ValueType, {[System.Range]:Barotrauma.Identifier}, {[System.Int32]:System.Char}
+---`Field Private Instance`
+---@field value System.String
+---`Field Private Instance`
+---@field hashCode System.Lazy*1System*Int32
+---`Field Public Static`
+---@field Empty Barotrauma.Identifier
+---`Field Private Static`
+---@field emptyHash System.Int32
+---`Getter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---@field HashCode System.Int32
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+_G['Identifier'] = {}
+
+---`Method Public Instance`
+---@param id Barotrauma.Identifier-ref
+---@return Barotrauma.Identifier
+_G['Identifier'].IfEmpty = function(id) end
+
+---`Method Public Instance`
+---@overload fun(subStr:Barotrauma.Identifier-ref, newStr:Barotrauma.Identifier-ref):(Barotrauma.Identifier)
+---@param subStr System.String
+---@param newStr System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].Replace = function(subStr, newStr) end
+
+---`Method Public Instance`
+---@overload fun(subStr:Barotrauma.Identifier):(Barotrauma.Identifier)
+---@param subStr System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].Remove = function(subStr) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Barotrauma.Identifier
+---@return System.Boolean
+_G['Identifier'].Equals = function(other) end
+
+---`Method Public Instance`
+---@overload fun(str:System.String):(System.Boolean)
+---@param id Barotrauma.Identifier
+---@return System.Boolean
+_G['Identifier'].StartsWith = function(id) end
+
+---`Method Public Instance`
+---@overload fun(str:System.String):(System.Boolean)
+---@param id Barotrauma.Identifier
+---@return System.Boolean
+_G['Identifier'].EndsWith = function(id) end
+
+---`Method Public Instance`
+---@param suffix System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].AppendIfMissing = function(suffix) end
+
+---`Method Public Instance`
+---@param suffix System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].RemoveFromEnd = function(suffix) end
+
+---`Method Public Instance`
+---@overload fun(str:System.String):(System.Boolean)
+---@param id Barotrauma.Identifier-ref
+---@return System.Boolean
+_G['Identifier'].Contains = function(id) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Identifier'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Identifier'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Int32
+_G['Identifier'].CompareTo = function(obj) end
+
+---`Method Private Static`
+---@param a System.String
+---@param b System.String
+---@return System.Boolean
+_G['Identifier'].StringEquality = function(a, b) end
+
+---`Method Public Instance`
+---@param c System.Char
+---@return System.Int32
+_G['Identifier'].IndexOf = function(c) end
+
+---`Constructor Public Instance`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C71248.lua b/Meta/Types/client/_00007FFD97C71248.lua
new file mode 100644
index 0000000..027825d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C71248.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.Prefab : System.Object
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field ContentFile Barotrauma.ContentFile
+---`Field Public Static`
+---@field Types (System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[])
+---`Field Private Static`
+---@field potentialCallFromConstructor System.Boolean
+---`Getter Public Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Getter Public Instance`
+---@field FilePath Barotrauma.ContentPath
+_G['Prefab'] = {}
+
+---`Method Public Static`
+_G['Prefab'].DisallowCallFromConstructor = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['Prefab'].DetermineIdentifier = function(element) end
+
+---`Method Public Instance Abstract Virtual`
+_G['Prefab'].Dispose = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'] = function(file, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'].__new = function(file, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'] = function(file, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'].__new = function(file, element) end
+
diff --git a/Meta/Types/client/_00007FFD97C71388.lua b/Meta/Types/client/_00007FFD97C71388.lua
new file mode 100644
index 0000000..b920b96
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C71388.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.PrefabWithUintIdentifier : Barotrauma.Prefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UintIdentifier System.UInt32
+_G['PrefabWithUintIdentifier'] = {}
+
+---`Constructor NonPublic Instance`
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.PrefabWithUintIdentifier
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.PrefabWithUintIdentifier
+_G['PrefabWithUintIdentifier'] = function(file, element) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.PrefabWithUintIdentifier
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.PrefabWithUintIdentifier
+_G['PrefabWithUintIdentifier'].__new = function(file, element) end
+
diff --git a/Meta/Types/client/_00007FFD97C72B98.lua b/Meta/Types/client/_00007FFD97C72B98.lua
new file mode 100644
index 0000000..25a5b1d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C72B98.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class FarseerPhysics.ConvertUnits : System.Object
+---`Field Private Static`
+---@field _displayUnitsToSimUnitsRatio System.Single
+---`Field Private Static`
+---@field _simUnitsToDisplayUnitsRatio System.Single
+_G['ConvertUnits'] = {}
+
+---`Method Public Static`
+---@param displayUnitsPerSimUnit System.Single
+_G['ConvertUnits'].SetDisplayUnitToSimUnitRatio = function(displayUnitsPerSimUnit) end
+
+---`Method Public Static`
+---@overload fun(simUnits:System.Single):(System.Single)
+---@overload fun(simUnits:System.Int32):(System.Single)
+---@overload fun(simUnits:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(simUnits:Microsoft.Xna.Framework.Vector2-ref, displayUnits:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(simUnits:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(x:System.Single, y:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param x System.Single
+---@param y System.Single
+---@param displayUnits Microsoft.Xna.Framework.Vector2-ref
+_G['ConvertUnits'].ToDisplayUnits = function(x, y, displayUnits) end
+
+---`Method Public Static`
+---@overload fun(displayUnits:System.Single):(System.Single)
+---@overload fun(displayUnits:System.Double):(System.Single)
+---@overload fun(displayUnits:System.Int32):(System.Single)
+---@overload fun(displayUnits:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(displayUnits:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(displayUnits:Microsoft.Xna.Framework.Vector2-ref, simUnits:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(x:System.Single, y:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(x:System.Double, y:System.Double):(Microsoft.Xna.Framework.Vector2)
+---@param x System.Single
+---@param y System.Single
+---@param simUnits Microsoft.Xna.Framework.Vector2-ref
+_G['ConvertUnits'].ToSimUnits = function(x, y, simUnits) end
+
+---`Constructor Private Static`
+---@return FarseerPhysics.ConvertUnits
+_G['ConvertUnits'] = function() end
+
+---`Constructor Private Static`
+---@return FarseerPhysics.ConvertUnits
+_G['ConvertUnits'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C72D90.lua b/Meta/Types/client/_00007FFD97C72D90.lua
new file mode 100644
index 0000000..5dee9ac
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C72D90.lua
@@ -0,0 +1,68 @@
+---@meta
+---@class Barotrauma.Rand : System.Object
+---`Field Private Static`
+---@field localRandom System.Random
+---`Field Private Static`
+---@field syncedRandom (System.Collections.Generic.Dictionary*1Barotrauma*Rand*RandSync*1System*Random)|({[Barotrauma.Rand.RandSync]:(System.Random)})
+---`Field Public Static`
+---@field ThreadId System.Int32
+_G['Rand'] = {}
+
+---`Method Public Static`
+---@param randSync Barotrauma.Rand.RandSync
+---@return System.Random
+_G['Rand'].GetRNG = function(randSync) end
+
+---`Method Public Static`
+---@param seed System.Int32
+_G['Rand'].SetLocalRandom = function(seed) end
+
+---`Method Public Static`
+---@param seed System.Int32
+_G['Rand'].SetSyncedSeed = function(seed) end
+
+---`Method Private Static`
+---@param sync Barotrauma.Rand.RandSync
+_G['Rand'].CheckRandThreadSafety = function(sync) end
+
+---`Method Public Static`
+---@overload fun(minimum:System.Single, maximum:System.Single, sync?:Barotrauma.Rand.RandSync):(System.Single)
+---@overload fun(minimum:System.Double, maximum:System.Double, sync?:Barotrauma.Rand.RandSync):(System.Double)
+---@param minimum System.Int32
+---@param maximum System.Int32
+---@param sync? Barotrauma.Rand.RandSync
+---@return System.Int32
+_G['Rand'].Range = function(minimum, maximum, sync) end
+
+---`Method Public Static`
+---@param max System.Int32
+---@param sync? Barotrauma.Rand.RandSync
+---@return System.Int32
+_G['Rand'].Int = function(max, sync) end
+
+---`Method Public Static`
+---@overload fun(length:System.Single, sync?:Barotrauma.Rand.RandSync):(Microsoft.Xna.Framework.Vector2)
+---@param length System.Double
+---@param sync? Barotrauma.Rand.RandSync
+---@return Voronoi2.DoubleVector2
+_G['Rand'].Vector = function(length, sync) end
+
+---`Method Public Static`
+---@param sync? Barotrauma.Rand.RandSync
+---@return System.Single
+_G['Rand'].Value = function(sync) end
+
+---`Method Public Static`
+---@param randomAlpha? System.Boolean
+---@param sync? Barotrauma.Rand.RandSync
+---@return Microsoft.Xna.Framework.Color
+_G['Rand'].Color = function(randomAlpha, sync) end
+
+---`Constructor Private Static`
+---@return Barotrauma.Rand
+_G['Rand'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Rand
+_G['Rand'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C72E18.lua b/Meta/Types/client/_00007FFD97C72E18.lua
new file mode 100644
index 0000000..9f77d24
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C72E18.lua
@@ -0,0 +1,11 @@
+---@meta
+---@class Barotrauma.Rand.RandSync : System.Enum
+---`Field Public Static`
+---@field Unsynced Barotrauma.Rand.RandSync
+---`Field Public Static`
+---@field ServerAndClient Barotrauma.Rand.RandSync
+---`Field Public Static`
+---@field ClientOnly Barotrauma.Rand.RandSync
+_G['Rand']['RandSync'] = {}
+_G['RandSync'] = _G['Rand']['RandSync']
+
diff --git a/Meta/Types/client/_00007FFD97C75BA8.lua b/Meta/Types/client/_00007FFD97C75BA8.lua
new file mode 100644
index 0000000..8bac0fd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C75BA8.lua
@@ -0,0 +1,180 @@
+---@meta
+---@class Steamworks.SteamServer : Steamworks.SteamServerClass*1Steamworks*SteamServer
+---`Field Private Static`
+---@field OnValidateAuthTicketResponse (System.Action*1Steamworks*SteamId*1Steamworks*SteamId*1Steamworks*AuthResponse)|(fun(arg1:Steamworks.SteamId, arg2:Steamworks.SteamId, arg3:Steamworks.AuthResponse))
+---`Field Private Static`
+---@field OnSteamServersConnected (System.Action)|(fun())
+---`Field Private Static`
+---@field OnSteamServerConnectFailure (System.Action*1Steamworks*Result*1System*Boolean)|(fun(arg1:Steamworks.Result, arg2:System.Boolean))
+---`Field Private Static`
+---@field OnSteamServersDisconnected (System.Action*1Steamworks*Result)|(fun(obj:Steamworks.Result))
+---`Field Private Static`
+---@field OnSteamNetAuthenticationStatus (System.Action*1Steamworks*SteamNetworkingAvailability)|(fun(obj:Steamworks.SteamNetworkingAvailability))
+---`Field Private Static`
+---@field openInterfaces (System.Collections.Generic.List*1Steamworks*SteamClass)|(Steamworks.SteamClass[])
+---`Field Private Static`
+---@field _dedicatedServer System.Boolean
+---`Field Private Static`
+---@field _maxplayers System.Int32
+---`Field Private Static`
+---@field _botcount System.Int32
+---`Field Private Static`
+---@field _mapname System.String
+---`Field Private Static`
+---@field _modDir System.String
+---`Field Private Static`
+---@field _product System.String
+---`Field Private Static`
+---@field _gameDescription System.String
+---`Field Private Static`
+---@field _serverName System.String
+---`Field Private Static`
+---@field _passworded System.Boolean
+---`Field Private Static`
+---@field _gametags System.String
+---`Field Private Static`
+---@field KeyValue (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Getter NonPublic Static`
+---@field Internal Steamworks.ISteamGameServer
+---`Getter Public Static`
+---@field IsValid System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field DedicatedServer System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field MaxPlayers System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BotCount System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field MapName System.String
+---`Getter Public Static`
+---
`Setter NonPublic Static`
+---@field ModDir System.String
+---`Getter Public Static`
+---
`Setter NonPublic Static`
+---@field Product System.String
+---`Getter Public Static`
+---
`Setter NonPublic Static`
+---@field GameDescription System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field ServerName System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Passworded System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field GameTags System.String
+---`Getter Public Static`
+---@field SteamId Steamworks.SteamId
+---`Getter Public Static`
+---@field LoggedOn System.Boolean
+---`Getter Public Static`
+---@field PublicIp System.Net.IPAddress
+---
`Setter Public Static`
+---@field AutomaticHeartbeats System.Boolean
+---
`Setter Public Static`
+---@field AdvertiseServer System.Boolean
+_G['Steamworks']['SteamServer'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param server System.Boolean
+---@return System.Boolean
+_G['Steamworks']['SteamServer'].InitializeInterface = function(server) end
+
+---`Method NonPublic Static`
+_G['Steamworks']['SteamServer'].InstallEvents = function() end
+
+---`Method Public Static`
+---@param appid Steamworks.AppId
+---@param init Steamworks.SteamServerInit
+---@param asyncCallbacks? System.Boolean
+_G['Steamworks']['SteamServer'].Init = function(appid, init, asyncCallbacks) end
+
+---`Method NonPublic Static`
+_G['Steamworks']['SteamServer'].AddInterface = function() end
+
+---`Method NonPublic Static`
+_G['Steamworks']['SteamServer'].ShutdownInterfaces = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].Shutdown = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].RunCallbacks = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].LogOnAnonymous = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].LogOff = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].ForceHeartbeat = function() end
+
+---`Method Public Static`
+---@param steamid Steamworks.SteamId
+---@param name System.String
+---@param score System.Int32
+_G['Steamworks']['SteamServer'].UpdatePlayer = function(steamid, name, score) end
+
+---`Method Public Static`
+---@param Key System.String
+---@param Value System.String
+_G['Steamworks']['SteamServer'].SetKey = function(Key, Value) end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].ClearKeys = function() end
+
+---`Method Public Static`
+---@param data (System.Byte-arr)|(System.Byte[])
+---@param steamid Steamworks.SteamId
+---@return Steamworks.BeginAuthResult
+_G['Steamworks']['SteamServer'].BeginAuthSession = function(data, steamid) end
+
+---`Method Public Static`
+---@param steamid Steamworks.SteamId
+_G['Steamworks']['SteamServer'].EndAuthSession = function(steamid) end
+
+---`Method Public Static`
+---@param packet Steamworks.Data.OutgoingPacket-ref
+---@return System.Boolean
+_G['Steamworks']['SteamServer'].GetOutgoingPacket = function(packet) end
+
+---`Method Public Static`
+---@overload fun(data:(System.Byte-arr)|(System.Byte[]), size:System.Int32, address:System.UInt32, port:System.UInt16)
+---@param ptr System.IntPtr
+---@param size System.Int32
+---@param address System.UInt32
+---@param port System.UInt16
+_G['Steamworks']['SteamServer'].HandleIncomingPacket = function(ptr, size, address, port) end
+
+---`Method Public Static`
+---@param steamid Steamworks.SteamId
+---@param appid Steamworks.AppId
+---@return Steamworks.UserHasLicenseForAppResult
+_G['Steamworks']['SteamServer'].UserHasLicenseForApp = function(steamid, appid) end
+
+---`Constructor Public Instance`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C76220.lua b/Meta/Types/client/_00007FFD97C76220.lua
new file mode 100644
index 0000000..b934853
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C76220.lua
@@ -0,0 +1,111 @@
+---@meta
+---@class Steamworks.Friend : System.ValueType
+---`Field Public Instance`
+---@field Id Steamworks.SteamId
+---`Getter Public Instance`
+---@field IsMe System.Boolean
+---`Getter Public Instance`
+---@field IsFriend System.Boolean
+---`Getter Public Instance`
+---@field IsBlocked System.Boolean
+---`Getter Public Instance`
+---@field IsPlayingThisGame System.Boolean
+---`Getter Public Instance`
+---@field IsOnline System.Boolean
+---`Getter Public Instance`
+---@field IsAway System.Boolean
+---`Getter Public Instance`
+---@field IsBusy System.Boolean
+---`Getter Public Instance`
+---@field IsSnoozing System.Boolean
+---`Getter Public Instance`
+---@field Relationship Steamworks.Relationship
+---`Getter Public Instance`
+---@field State Steamworks.FriendState
+---`Getter Public Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---@field NameHistory (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---`Getter Public Instance`
+---@field SteamLevel System.Int32
+---`Getter Public Instance`
+---@field GameInfo System.Nullable*1Steamworks*Friend*FriendGameInfo
+_G['Steamworks']['Friend'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Steamworks']['Friend'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task
+_G['Steamworks']['Friend'].RequestInfoAsync = function() end
+
+---`Method Public Instance`
+---@param group_or_room Steamworks.SteamId
+---@return System.Boolean
+_G['Steamworks']['Friend'].IsIn = function(group_or_room) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image
+_G['Steamworks']['Friend'].GetSmallAvatarAsync = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image
+_G['Steamworks']['Friend'].GetMediumAvatarAsync = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image
+_G['Steamworks']['Friend'].GetLargeAvatarAsync = function() end
+
+---`Method Public Instance`
+---@param key System.String
+---@return System.String
+_G['Steamworks']['Friend'].GetRichPresence = function(key) end
+
+---`Method Public Instance`
+---@param Text System.String
+---@return System.Boolean
+_G['Steamworks']['Friend'].InviteToGame = function(Text) end
+
+---`Method Public Instance`
+---@param message System.String
+---@return System.Boolean
+_G['Steamworks']['Friend'].SendMessage = function(message) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Friend'].RequestUserStatsAsync = function() end
+
+---`Method Public Instance`
+---@param statName System.String
+---@param defult? System.Single
+---@return System.Single
+_G['Steamworks']['Friend'].GetStatFloat = function(statName, defult) end
+
+---`Method Public Instance`
+---@param statName System.String
+---@param defult? System.Int32
+---@return System.Int32
+_G['Steamworks']['Friend'].GetStatInt = function(statName, defult) end
+
+---`Method Public Instance`
+---@param statName System.String
+---@param defult? System.Boolean
+---@return System.Boolean
+_G['Steamworks']['Friend'].GetAchievement = function(statName, defult) end
+
+---`Method Public Instance`
+---@param statName System.String
+---@return System.DateTime
+_G['Steamworks']['Friend'].GetAchievementUnlockTime = function(statName) end
+
+---`Constructor Public Instance`
+---@param steamid Steamworks.SteamId
+---@return Steamworks.Friend
+_G['Steamworks']['Friend'] = function(steamid) end
+
+---`Constructor Public Instance`
+---@param steamid Steamworks.SteamId
+---@return Steamworks.Friend
+_G['Steamworks']['Friend'].__new = function(steamid) end
+
diff --git a/Meta/Types/client/_00007FFD97C776A0.lua b/Meta/Types/client/_00007FFD97C776A0.lua
new file mode 100644
index 0000000..ec39234
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C776A0.lua
@@ -0,0 +1,206 @@
+---@meta
+---@class Steamworks.Ugc.Item : System.ValueType
+---`Field NonPublic Instance`
+---@field details Steamworks.Data.SteamUGCDetails_t
+---`Field NonPublic Instance`
+---@field _id Steamworks.Data.PublishedFileId
+---`Field Public Instance`
+---@field Children (Steamworks.Data.PublishedFileId-arr)|(Steamworks.Data.PublishedFileId[])
+---`Getter Public Instance`
+---@field Id Steamworks.Data.PublishedFileId
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Title System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Description System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Tags (System.String-arr)|(System.String[])
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field KeyValueTags (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Getter Public Instance`
+---@field CreatorApp Steamworks.AppId
+---`Getter Public Instance`
+---@field ConsumerApp Steamworks.AppId
+---`Getter Public Instance`
+---@field Owner Steamworks.Friend
+---`Getter Public Instance`
+---@field Score System.Single
+---`Getter Public Instance`
+---@field Created System.DateTime
+---`Getter Public Instance`
+---@field Updated System.DateTime
+---`Getter Public Instance`
+---@field LatestUpdateTime System.DateTime
+---`Getter Public Instance`
+---@field Visibility Steamworks.Ugc.Visibility
+---`Getter Public Instance`
+---@field IsBanned System.Boolean
+---`Getter Public Instance`
+---@field IsAcceptedForUse System.Boolean
+---`Getter Public Instance`
+---@field VotesUp System.UInt32
+---`Getter Public Instance`
+---@field VotesDown System.UInt32
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field AdditionalPreviews (Steamworks.Data.UgcAdditionalPreview-arr)|(Steamworks.Data.UgcAdditionalPreview[])
+---`Getter Public Instance`
+---@field IsInstalled System.Boolean
+---`Getter Public Instance`
+---@field IsDownloading System.Boolean
+---`Getter Public Instance`
+---@field IsDownloadPending System.Boolean
+---`Getter Public Instance`
+---@field IsSubscribed System.Boolean
+---`Getter Public Instance`
+---@field NeedsUpdate System.Boolean
+---`Getter Public Instance`
+---@field Directory System.String
+---`Getter Public Instance`
+---@field DownloadBytesTotal System.Int64
+---`Getter Public Instance`
+---@field DownloadBytesDownloaded System.Int64
+---`Getter Public Instance`
+---@field InstalledSize System.Int64
+---`Getter Public Instance`
+---@field InstallTime System.Nullable*1System*DateTime
+---`Getter Public Instance`
+---@field SizeOfFileInBytes System.Int64
+---`Getter Public Instance`
+---@field DownloadAmount System.Single
+---`Getter Private Instance`
+---@field State Steamworks.ItemState
+---`Getter Public Instance`
+---@field Url System.String
+---`Getter Public Instance`
+---@field ChangelogUrl System.String
+---`Getter Public Instance`
+---@field CommentsUrl System.String
+---`Getter Public Instance`
+---@field DiscussUrl System.String
+---`Getter Public Instance`
+---@field StatsUrl System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumSubscriptions System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumFavorites System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumFollowers System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueSubscriptions System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueFavorites System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueFollowers System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueWebsiteViews System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ReportScore System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumSecondsPlayed System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumPlaytimeSessions System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumComments System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumSecondsPlayedDuringTimePeriod System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumPlaytimeSessionsDuringTimePeriod System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field PreviewImageUrl System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Metadata System.String
+---`Getter Public Instance`
+---@field Result Steamworks.Result
+_G['Steamworks']['Ugc']['Item'] = {}
+
+---`Method Public Static`
+---@param id Steamworks.Data.PublishedFileId
+---@param maxageseconds? System.Int32
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*Item
+_G['Steamworks']['Ugc']['Item'].GetAsync = function(id, maxageseconds) end
+
+---`Method NonPublic Static`
+---@param details Steamworks.Data.SteamUGCDetails_t
+---@return Steamworks.Ugc.Item
+_G['Steamworks']['Ugc']['Item'].From = function(details) end
+
+---`Method Public Instance`
+---@param find System.String
+---@return System.Boolean
+_G['Steamworks']['Ugc']['Item'].HasTag = function(find) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].Subscribe = function() end
+
+---`Method Public Instance`
+---@param progress? (System.Action*1System*Single)|(fun(obj:System.Single))
+---@param milisecondsUpdateDelay? System.Int32
+---@param ct? System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].DownloadAsync = function(progress, milisecondsUpdateDelay, ct) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].Unsubscribe = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].AddFavorite = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].RemoveFavorite = function() end
+
+---`Method Public Instance`
+---@param up System.Boolean
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Result
+_G['Steamworks']['Ugc']['Item'].Vote = function(up) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*UserItemVote
+_G['Steamworks']['Ugc']['Item'].GetUserVote = function() end
+
+---`Method Public Instance`
+---@return Steamworks.Ugc.Editor
+_G['Steamworks']['Ugc']['Item'].Edit = function() end
+
+---`Method Public Instance`
+---@param child Steamworks.Data.PublishedFileId
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].AddDependency = function(child) end
+
+---`Method Public Instance`
+---@param child Steamworks.Data.PublishedFileId
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].RemoveDependency = function(child) end
+
+---`Constructor Public Instance`
+---@param id Steamworks.Data.PublishedFileId
+---@return Steamworks.Ugc.Item
+_G['Steamworks']['Ugc']['Item'] = function(id) end
+
+---`Constructor Public Instance`
+---@param id Steamworks.Data.PublishedFileId
+---@return Steamworks.Ugc.Item
+_G['Steamworks']['Ugc']['Item'].__new = function(id) end
+
diff --git a/Meta/Types/client/_00007FFD97C777F8.lua b/Meta/Types/client/_00007FFD97C777F8.lua
new file mode 100644
index 0000000..44882d1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C777F8.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.ContentPackageId : System.Object
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+_G['ContentPackageId'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ContentPackageId'].ToString = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['ContentPackageId'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['ContentPackageId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param s System.String
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['ContentPackageId'].Parse = function(s) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.ContentPackageId
+_G['ContentPackageId'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.ContentPackageId
+_G['ContentPackageId'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C77908.lua b/Meta/Types/client/_00007FFD97C77908.lua
new file mode 100644
index 0000000..ac0db6e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C77908.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.SteamWorkshopId : Barotrauma.ContentPackageId
+---`Field Public Instance`
+---@field Value System.UInt64
+---`Field Private Static`
+---@field Prefix System.String
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+_G['SteamWorkshopId'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamWorkshopId'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamWorkshopId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param s System.String
+---@return Barotrauma.Option*1Barotrauma*SteamWorkshopId
+_G['SteamWorkshopId'].Parse = function(s) end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.SteamWorkshopId
+_G['SteamWorkshopId'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.SteamWorkshopId
+_G['SteamWorkshopId'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97C781A8.lua b/Meta/Types/client/_00007FFD97C781A8.lua
new file mode 100644
index 0000000..d36e047
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C781A8.lua
@@ -0,0 +1,121 @@
+---@meta
+---@class Barotrauma.Entity : System.Object
+---`Field NonPublic Instance`
+---@field aiTarget Barotrauma.AITarget
+---`Field Public Instance`
+---@field ID System.UInt16
+---`Field Private Instance`
+---@field spawnTime System.Double
+---`Field Public Instance`
+---@field CreationStackTrace System.String
+---`Field Public Instance`
+---@field CreationIndex System.UInt64
+---`Field Private Static`
+---@field dictionary (System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Entity)|({[System.UInt16]:(Barotrauma.Entity)})
+---`Field Public Static`
+---@field Spawner Barotrauma.EntitySpawner
+---`Field Private Static`
+---@field creationCounter System.UInt64
+---`Field Private Static`
+---@field creationCounterMutex System.Object
+---`Field Public Static`
+---@field NullEntityID System.UInt16
+---`Field Public Static`
+---@field EntitySpawnerID System.UInt16
+---`Field Public Static`
+---@field RespawnManagerID System.UInt16
+---`Field Public Static`
+---@field DummyID System.UInt16
+---`Field Public Static`
+---@field ReservedIDStart System.UInt16
+---`Field Public Static`
+---@field MaxEntityCount System.UInt16
+---`Getter Public Static`
+---@field EntityCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdFreed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---@field AiTarget Barotrauma.AITarget
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InDetectable System.Boolean
+---`Getter Public Instance`
+---@field SpawnTime System.Double
+---`Getter Public Instance`
+---@field ErrorLine System.String
+_G['Entity'] = {}
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+_G['Entity'].GetEntities = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param id System.UInt16
+---@param submarine Barotrauma.Submarine
+---@return System.UInt16
+_G['Entity'].DetermineID = function(id, submarine) end
+
+---`Method Private Static`
+---@param idOffset System.UInt16
+---@return System.UInt16
+_G['Entity'].FindFreeId = function(idOffset) end
+
+---`Method Public Static`
+---@param minBlockSize System.Int32
+---@return System.Int32
+_G['Entity'].FindFreeIdBlock = function(minBlockSize) end
+
+---`Method Public Static`
+---@param ID System.UInt16
+---@return Barotrauma.Entity
+_G['Entity'].FindEntityByID = function(ID) end
+
+---`Method Public Static`
+_G['Entity'].RemoveAll = function() end
+
+---`Method Public Instance`
+_G['Entity'].FreeID = function() end
+
+---`Method Public Instance Virtual`
+_G['Entity'].Remove = function() end
+
+---`Method Public Static`
+---@param count System.Int32
+---@param filename System.String
+_G['Entity'].DumpIds = function(count, filename) end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C7C148.lua b/Meta/Types/client/_00007FFD97C7C148.lua
new file mode 100644
index 0000000..b14c026
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7C148.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class Barotrauma.CharacterTeamType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.CharacterTeamType
+---`Field Public Static`
+---@field Team1 Barotrauma.CharacterTeamType
+---`Field Public Static`
+---@field Team2 Barotrauma.CharacterTeamType
+---`Field Public Static`
+---@field FriendlyNPC Barotrauma.CharacterTeamType
+_G['CharacterTeamType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97C7C550.lua b/Meta/Types/client/_00007FFD97C7C550.lua
new file mode 100644
index 0000000..ea6aa61
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7C550.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.AttackResult : System.ValueType
+---`Field Public Instance`
+---@field Afflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Public Instance`
+---@field HitLimb Barotrauma.Limb
+---`Field Public Instance`
+---@field AppliedDamageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Damage System.Single
+_G['AttackResult'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(afflictions:(System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[]), hitLimb:Barotrauma.Limb, appliedDamageModifiers?:(System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])):Barotrauma.AttackResult
+---@param damage System.Single
+---@param appliedDamageModifiers? (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---@return Barotrauma.AttackResult
+_G['AttackResult'] = function(damage, appliedDamageModifiers) end
+
+---`Constructor Public Instance`
+---@overload fun(afflictions:(System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[]), hitLimb:Barotrauma.Limb, appliedDamageModifiers?:(System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])):Barotrauma.AttackResult
+---@param damage System.Single
+---@param appliedDamageModifiers? (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---@return Barotrauma.AttackResult
+_G['AttackResult'].__new = function(damage, appliedDamageModifiers) end
+
diff --git a/Meta/Types/client/_00007FFD97C7CC78.lua b/Meta/Types/client/_00007FFD97C7CC78.lua
new file mode 100644
index 0000000..d0379e7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7CC78.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.AbilityFlags : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field MustWalk Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field ImmuneToPressure Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field IgnoredByEnemyAI Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field MoveNormallyWhileDragging Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field CanTinker Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field CanTinkerFabricatorsAndDeconstructors Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field TinkeringPowersDevices Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field GainSkillPastMaximum Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field RetainExperienceForNewCharacter Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field AllowSecondOrderedTarget Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field AlwaysStayConscious Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field CanNotDieToAfflictions Barotrauma.AbilityFlags
+_G['AbilityFlags'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97C7CF70.lua b/Meta/Types/client/_00007FFD97C7CF70.lua
new file mode 100644
index 0000000..c471eff
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7CF70.lua
@@ -0,0 +1,1785 @@
+---@meta
+---@class Barotrauma.Character : Barotrauma.Entity
+---`Field NonPublic Instance`
+---@field soundTimer System.Single
+---`Field NonPublic Instance`
+---@field hudInfoTimer System.Single
+---`Field NonPublic Instance`
+---@field hudInfoVisible System.Boolean
+---`Field Private Instance`
+---@field findFocusedTimer System.Single
+---`Field NonPublic Instance`
+---@field lastRecvPositionUpdateTime System.Single
+---`Field Private Instance`
+---@field hudInfoHeight System.Single
+---`Field Private Instance`
+---@field sounds (System.Collections.Generic.List*1Barotrauma*CharacterSound)|(Barotrauma.CharacterSound[])
+---`Field Public Instance`
+---@field ExternalHighlight System.Boolean
+---`Field Private Instance`
+---@field hudProgressBars (System.Collections.Generic.Dictionary*1System*Object*1Barotrauma*HUDProgressBar)|({[System.Object]:(Barotrauma.HUDProgressBar)})
+---`Field Private Instance`
+---@field progressBarRemovals (System.Collections.Generic.List*1System*Collections*Generic*KeyValuePair*2System*Object*2Barotrauma*HUDProgressBar)|(System.Collections.Generic.KeyValuePair*1System*Object*1Barotrauma*HUDProgressBar[])
+---`Field Private Instance`
+---@field blurStrength System.Single
+---`Field Private Instance`
+---@field distortStrength System.Single
+---`Field Private Instance`
+---@field radialDistortStrength System.Single
+---`Field Private Instance`
+---@field chromaticAberrationStrength System.Single
+---`Field Private Instance`
+---@field grainStrength System.Single
+---`Field Private Instance`
+---@field bloodEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field damageEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field gibEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field guiMessages (System.Collections.Generic.List*1Barotrauma*Character*GUIMessage)|(Barotrauma.Character.GUIMessage[])
+---`Field Private Instance`
+---@field activeObjectiveEntities (System.Collections.Generic.List*1Barotrauma*Character*ObjectiveEntity)|(Barotrauma.Character.ObjectiveEntity[])
+---`Field Private Instance`
+---@field textlessSpeechBubble Barotrauma.Character.SpeechBubble
+---`Field Private Instance`
+---@field pressureEffectTimer System.Single
+---`Field Private Instance`
+---@field previousInteractablesInRange (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field interactablesInRange (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field wasFiring System.Boolean
+---`Field Private Instance`
+---@field debugInteractablesInRange (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field debugInteractablesAtCursor (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field debugInteractablesNearCursor (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Item*2System*Single)|(System.ValueTuple*1Barotrauma*Item*1System*Single[])
+---`Field Private Instance`
+---@field matchingSounds (System.Collections.Generic.List*1Barotrauma*CharacterSound)|(Barotrauma.CharacterSound[])
+---`Field Private Instance`
+---@field soundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field enabled System.Boolean
+---`Field Private Instance`
+---@field disabledByEvent System.Boolean
+---`Field Public Instance`
+---@field PreviousHull Barotrauma.Hull
+---`Field Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Field Public Instance`
+---@field Properties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Field NonPublic Instance`
+---@field keys (Barotrauma.Key-arr)|(Barotrauma.Key[])
+---`Field Private Instance`
+---@field humanPrefab Barotrauma.HumanPrefab
+---`Field Private Instance`
+---@field faction System.Nullable*1Barotrauma*Identifier
+---`Field Private Instance`
+---@field teamID Barotrauma.CharacterTeamType
+---`Field Private Instance`
+---@field originalTeamID System.Nullable*1Barotrauma*CharacterTeamType
+---`Field Private Instance`
+---@field wallet Barotrauma.Wallet
+---`Field Public Instance`
+---@field Latchers (System.Collections.Generic.HashSet*1Barotrauma*LatchOntoAI)|(Barotrauma.LatchOntoAI[])
+---`Field Public Instance`
+---@field AttachedProjectiles (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Projectile)|(Barotrauma.Items.Components.Projectile[])
+---`Field NonPublic Instance`
+---@field activeTeamChanges (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*ActiveTeamChange)|({[System.String]:(Barotrauma.ActiveTeamChange)})
+---`Field NonPublic Instance`
+---@field currentTeamChange Barotrauma.ActiveTeamChange
+---`Field Public Instance`
+---@field IsCriminal System.Boolean
+---`Field Public Instance`
+---@field IsHostileEscortee System.Boolean
+---`Field Public Instance`
+---@field CombatAction Barotrauma.CombatAction
+---`Field Public Instance`
+---@field AnimController Barotrauma.AnimController
+---`Field Private Instance`
+---@field cursorPosition Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field oxygenAvailable System.Single
+---`Field Public Instance`
+---@field Seed System.String
+---`Field NonPublic Instance`
+---@field focusedItem Barotrauma.Item
+---`Field Private Instance`
+---@field selectedCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field selectedBy Barotrauma.Character
+---`Field Private Instance`
+---@field lastAttackers (System.Collections.Generic.List*1Barotrauma*Character*Attacker)|(Barotrauma.Character.Attacker[])
+---`Field Public Instance`
+---@field LastDamageSource Barotrauma.Entity
+---`Field Public Instance`
+---@field LastDamage Barotrauma.AttackResult
+---`Field Private Instance`
+---@field itemSelectedDurations (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Double)|({[Barotrauma.ItemPrefab]:(System.Double)})
+---`Field Private Instance`
+---@field itemSelectedTime System.Double
+---`Field Public Instance`
+---@field Prefab Barotrauma.CharacterPrefab
+---`Field Public Instance`
+---@field Params Barotrauma.CharacterParams
+---`Field Public Instance`
+---@field TraitorCurrentObjective Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field attackCoolDown System.Single
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field info Barotrauma.CharacterInfo
+---`Field Private Instance`
+---@field hideFaceTimer System.Single
+---`Field Private Instance`
+---@field onCustomInteract (System.Action*1Barotrauma*Character*1Barotrauma*Character)|(fun(arg1:Barotrauma.Character, arg2:Barotrauma.Character))
+---`Field Public Instance`
+---@field ActiveConversation Barotrauma.ConversationAction
+---`Field Public Instance`
+---@field RequireConsciousnessForCustomInteract System.Boolean
+---`Field Private Instance`
+---@field lockHandsTimer System.Single
+---`Field Private Instance`
+---@field lowPassMultiplier System.Single
+---`Field Private Instance`
+---@field obstructVisionAmount System.Single
+---`Field Private Instance`
+---@field pressureProtectionLastSet System.Double
+---`Field Private Instance`
+---@field pressureProtection System.Single
+---`Field Public Instance`
+---@field KnockbackCooldownTimer System.Single
+---`Field Private Instance`
+---@field ragdollingLockTimer System.Single
+---`Field Public Instance`
+---@field IsRagdolled System.Boolean
+---`Field Public Instance`
+---@field IsForceRagdolled System.Boolean
+---`Field Public Instance`
+---@field FollowCursor System.Boolean
+---`Field Public Instance`
+---@field DisableHealthWindow System.Boolean
+---`Field Private Instance`
+---@field speechImpedimentSet System.Boolean
+---`Field Private Instance`
+---@field speechImpediment System.Single
+---`Field Private Instance`
+---@field textChatVolume System.Single
+---`Field Private Instance`
+---@field _selectedItem Barotrauma.Item
+---`Field Private Instance`
+---@field isDead System.Boolean
+---`Field Public Instance`
+---@field GodMode System.Boolean
+---`Field Public Instance`
+---@field CampaignInteractionType Barotrauma.CampaignMode.InteractionType
+---`Field Public Instance`
+---@field MerchantIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field accessRemovedCharacterErrorShown System.Boolean
+---`Field Public Instance`
+---@field MarkedAsLooted (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field OnDeath (Barotrauma.Character.OnDeathHandler)|(fun(character:Barotrauma.Character, causeOfDeath:Barotrauma.CauseOfDeath))
+---`Field Public Instance`
+---@field OnAttacked (Barotrauma.Character.OnAttackedHandler)|(fun(attacker:Barotrauma.Character, attackResult:Barotrauma.AttackResult))
+---`Field Private Instance`
+---@field disableRunningLastSet System.Double
+---`Field Private Instance`
+---@field greatestNegativeSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field greatestPositiveSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field propulsionSpeedMultiplierLastSet System.Double
+---`Field Private Instance`
+---@field propulsionSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field greatestNegativeHealthMultiplier System.Single
+---`Field Private Instance`
+---@field greatestPositiveHealthMultiplier System.Single
+---`Field Private Instance`
+---@field currentAttackTarget Barotrauma.Character.AttackTargetData
+---`Field Private Instance`
+---@field sw System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field _selectedItemPriority System.Single
+---`Field Private Instance`
+---@field _foundItem Barotrauma.Item
+---`Field Private Instance`
+---@field despawnTimer System.Single
+---`Field Private Instance`
+---@field maxAIRange System.Single
+---`Field Private Instance`
+---@field aiTargetChangeSpeed System.Single
+---`Field Private Instance`
+---@field aiChatMessageQueue (System.Collections.Generic.List*1Barotrauma*AIChatMessage)|(Barotrauma.AIChatMessage[])
+---`Field Private Instance`
+---@field prevAiChatMessages (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field currentContexts (System.Collections.Generic.HashSet*1Barotrauma*AttackContext)|(Barotrauma.AttackContext[])
+---`Field Private Instance`
+---@field visibleHulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field tempList (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field characterTalents (System.Collections.Generic.List*1Barotrauma*CharacterTalent)|(Barotrauma.CharacterTalent[])
+---`Field Private Instance`
+---@field sameRoomHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field statValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field Private Instance`
+---@field wearableStatValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field Private Instance`
+---@field abilityFlags Barotrauma.AbilityFlags
+---`Field Private Instance`
+---@field abilityResistances (System.Collections.Generic.Dictionary*1Barotrauma*TalentResistanceIdentifier*1System*Single)|({[Barotrauma.TalentResistanceIdentifier]:(System.Single)})
+---`Field Private Instance`
+---@field dequeuedInput Barotrauma.Character.InputNetFlags
+---`Field Private Instance`
+---@field prevDequeuedInput Barotrauma.Character.InputNetFlags
+---`Field Public Instance`
+---@field LastNetworkUpdateID System.UInt16
+---`Field Public Instance`
+---@field LastProcessedID System.UInt16
+---`Field Private Instance`
+---@field memInput (System.Collections.Generic.List*1Barotrauma*Character*NetInputMem)|(Barotrauma.Character.NetInputMem[])
+---`Field Private Instance`
+---@field memState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+---`Field Private Instance`
+---@field memLocalState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+---`Field Public Instance`
+---@field healthUpdateTimer System.Single
+---`Field Private Instance`
+---@field healthUpdateInterval System.Single
+---`Field Public Instance`
+---@field isSynced System.Boolean
+---`Field Public Static`
+---@field DisableControls System.Boolean
+---`Field Public Static`
+---@field DebugDrawInteract System.Boolean
+---`Field Private Static`
+---@field controlled Barotrauma.Character
+---`Field Private Static`
+---@field speechBubbles (System.Collections.Generic.List*1Barotrauma*Character*SpeechBubble)|(Barotrauma.Character.SpeechBubble[])
+---`Field Public Static`
+---@field CharacterList (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Public Static`
+---@field CharacterUpdateInterval System.Int32
+---`Field Private Static`
+---@field characterUpdateTick System.Int32
+---`Field Private Static`
+---@field overrideStatTypes (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*StatTypes)|({[Barotrauma.Identifier]:(Barotrauma.StatTypes)})
+---`Field Private Static`
+---@field DefaultHudInfoHeight System.Single
+---`Field Public Static`
+---@field MaxHighlightDistance System.Single
+---`Field Public Static`
+---@field MaxDragDistance System.Single
+---`Field Private Static`
+---@field OriginalChangeTeamIdentifier System.String
+---`Field Private Static`
+---@field maxLastAttackerCount System.Int32
+---`Field Public Static`
+---@field KnockbackCooldown System.Single
+---`Field Private Static`
+---@field cursorFollowMargin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsVisible System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowInteractionLabels System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Controlled Barotrauma.Character
+---`Getter Public Instance`
+---@field HUDProgressBars (System.Collections.Generic.Dictionary*1System*Object*1Barotrauma*HUDProgressBar)|({[System.Object]:(Barotrauma.HUDProgressBar)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BlurStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistortStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RadialDistortStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ChromaticAberrationStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrainColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrainStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollapseEffectStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CameraShake System.Single
+---`Getter Public Instance`
+---@field BloodEmitters (System.Collections.Generic.IEnumerable*1Barotrauma*Particles*ParticleEmitter)|(fun():(Barotrauma.Particles.ParticleEmitter))
+---`Getter Public Instance`
+---@field DamageEmitters (System.Collections.Generic.IEnumerable*1Barotrauma*Particles*ParticleEmitter)|(fun():(Barotrauma.Particles.ParticleEmitter))
+---`Getter Public Instance`
+---@field GibEmitters (System.Collections.Generic.IEnumerable*1Barotrauma*Particles*ParticleEmitter)|(fun():(Barotrauma.Particles.ParticleEmitter))
+---`Getter Public Static`
+---@field IsMouseOnUI System.Boolean
+---`Getter Public Instance`
+---@field ActiveObjectiveEntities (System.Collections.Generic.IEnumerable*1Barotrauma*Character*ObjectiveEntity)|(fun():(Barotrauma.Character.ObjectiveEntity))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisabledByEvent System.Boolean
+---`Getter Public Instance`
+---@field IsRemotelyControlled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsRemotePlayer System.Boolean
+---`Getter Public Instance`
+---@field IsLocalPlayer System.Boolean
+---`Getter Public Instance`
+---@field IsPlayer System.Boolean
+---`Getter Public Instance`
+---@field IsCommanding System.Boolean
+---`Getter Public Instance`
+---@field IsBot System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsEscorted System.Boolean
+---`Getter Public Instance`
+---@field JobIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DoesBleed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---@field Keys (Barotrauma.Key-arr)|(Barotrauma.Key[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanPrefab Barotrauma.HumanPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---@field OriginalTeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Wallet Barotrauma.Wallet
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowPlayDead System.Boolean
+---`Getter Public Instance`
+---@field IsOnPlayerTeam System.Boolean
+---`Getter Public Instance`
+---@field IsOriginallyOnPlayerTeam System.Boolean
+---`Getter Public Instance`
+---@field IsFriendlyNPCTurnedHostile System.Boolean
+---`Getter Public Instance`
+---@field IsInstigator System.Boolean
+---`Getter Public Instance`
+---@field LastAttackers (System.Collections.Generic.IEnumerable*1Barotrauma*Character*Attacker)|(fun():(Barotrauma.Character.Attacker))
+---`Getter Public Instance`
+---@field LastAttacker Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastOrderedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SecondLastOrderedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---@field ItemSelectedDurations (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Double)|({[Barotrauma.ItemPrefab]:(System.Double)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InvisibleTimer System.Single
+---`Getter Public Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Group Barotrauma.Identifier
+---`Getter Public Instance`
+---@field IsHumanoid System.Boolean
+---`Getter Public Instance`
+---@field IsMachine System.Boolean
+---`Getter Public Instance`
+---@field IsHusk System.Boolean
+---`Getter Public Instance`
+---@field IsDisguisedAsHusk System.Boolean
+---`Getter Public Instance`
+---@field IsHuskInfected System.Boolean
+---`Getter Public Instance`
+---@field IsMale System.Boolean
+---`Getter Public Instance`
+---@field IsFemale System.Boolean
+---`Getter Public Instance`
+---@field BloodDecalName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanSpeak System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsAir System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsWater System.Boolean
+---`Getter Public Instance`
+---@field NeedsOxygen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Noise System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Visibility System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPerceptionDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsTraitor System.Boolean
+---`Getter Public Instance`
+---@field IsHuman System.Boolean
+---`Getter Public Instance`
+---@field CurrentOrders (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+---`Getter Public Instance`
+---@field IsDismissed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ViewTarget Barotrauma.Entity
+---`Getter Public Instance`
+---@field AimRefPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Info Barotrauma.CharacterInfo
+---`Getter Public Instance`
+---@field VariantOf Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field DisplayName System.String
+---`Getter Public Instance`
+---@field LogName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideFace System.Boolean
+---`Getter Public Instance`
+---@field ConfigPath System.String
+---`Getter Public Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Inventory Barotrauma.CharacterInventory
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableFocusingOnEntities System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CustomInteractHUDText Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field AllowCustomInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LockHands System.Boolean
+---`Getter Public Instance`
+---@field AllowInput System.Boolean
+---`Getter Public Instance`
+---@field CanMove System.Boolean
+---`Getter Public Instance`
+---@field CanInteract System.Boolean
+---`Getter Public Instance`
+---@field CanEat System.Boolean
+---`Getter Public Instance`
+---@field CanClimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CursorPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SmoothedCursorPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field CursorWorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FocusedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedBy Barotrauma.Character
+---`Getter Public Instance`
+---@field HeldItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LowPassMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ObstructVisionAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ObstructVision System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PressureProtection System.Single
+---`Getter Public Instance`
+---@field InPressure System.Boolean
+---`Getter Public Instance`
+---@field Anim Barotrauma.AnimController.Animation
+---`Getter Public Instance`
+---@field IsIncapacitated System.Boolean
+---`Getter Public Instance`
+---@field IsUnconscious System.Boolean
+---`Getter Public Instance`
+---@field IsHandcuffed System.Boolean
+---`Getter Public Instance`
+---@field IsPet System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Oxygen System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenAvailable System.Single
+---`Getter Public Instance`
+---@field HullOxygenPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHullOxygen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stun System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CharacterHealth Barotrauma.CharacterHealth
+---`Getter Public Instance`
+---@field Vitality System.Single
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+---`Getter Public Instance`
+---@field HealthPercentage System.Single
+---`Getter Public Instance`
+---@field MaxVitality System.Single
+---`Getter Public Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---@field WasFullHealth System.Boolean
+---`Getter Public Instance`
+---@field AIState Barotrauma.AIState
+---`Getter Public Instance`
+---@field IsLatched System.Boolean
+---`Getter Public Instance`
+---@field EmpVulnerability System.Single
+---`Getter Public Instance`
+---@field PoisonVulnerability System.Single
+---`Getter Public Instance`
+---@field IsFlipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Bloodloss System.Single
+---`Getter Public Instance`
+---@field Bleeding System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeechImpediment System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextChatVolume System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PressureTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableImpactDamageTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreMeleeWeapons System.Boolean
+---`Getter Public Instance`
+---@field CurrentSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedSecondaryItem Barotrauma.Item
+---`Getter Public Instance`
+---@field HasSelectedAnyItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FocusedItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PickingItem Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field AIController Barotrauma.AIController
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsDead System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableDespawn System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CauseOfDeath Barotrauma.CauseOfDeath
+---`Getter Public Instance`
+---@field CanBeSelected System.Boolean
+---`Getter Public Instance`
+---@field IsDraggable System.Boolean
+---`Getter Public Instance`
+---@field CanAim System.Boolean
+---`Getter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---@field IsLowInOxygen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Unkillable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHealthWindow System.Boolean
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field IsInFriendlySub System.Boolean
+---`Getter Public Instance`
+---@field IsInPlayerSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AITurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OverrideMovement System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceRun System.Boolean
+---`Getter Public Instance`
+---@field IsClimbing System.Boolean
+---`Getter Public Instance`
+---@field CanRun System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableRunning System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PropulsionSpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HealthMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HumanPrefabHealthMultiplier System.Single
+---`Getter Private Instance`
+---@field StopWatch System.Diagnostics.Stopwatch
+---`Getter Public Instance`
+---@field IsKnockedDown System.Boolean
+---`Getter Public Instance`
+---@field IsCaptain System.Boolean
+---`Getter Public Instance`
+---@field IsEngineer System.Boolean
+---`Getter Public Instance`
+---@field IsMechanic System.Boolean
+---`Getter Public Instance`
+---@field IsMedic System.Boolean
+---`Getter Public Instance`
+---@field IsSecurity System.Boolean
+---`Getter Public Instance`
+---@field IsAssistant System.Boolean
+---`Getter Public Instance`
+---@field IsWatchman System.Boolean
+---`Getter Public Instance`
+---@field IsVip System.Boolean
+---`Getter Public Instance`
+---@field IsPrisoner System.Boolean
+---`Getter Public Instance`
+---@field IsKiller System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UniqueNameColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Getter Public Instance`
+---@field IsProtectedFromPressure System.Boolean
+---`Getter Public Instance`
+---@field IsImmuneToPressure System.Boolean
+---`Getter Public Instance`
+---@field CharacterTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterTalent)|(fun():(Barotrauma.CharacterTalent))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthUpdateInterval System.Single
+---`Getter Public Instance`
+---@field MemState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+---`Getter Public Instance`
+---@field MemLocalState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+_G['Character'] = {}
+
+---`Method Public Instance`
+---@overload fun(abilityEffectType:Barotrauma.AbilityEffectType, abilityObject:Barotrauma.Abilities.AbilityObject)
+---@param abilityEffectType Barotrauma.AbilityEffectType
+_G['Character'].CheckTalents = function(abilityEffectType) end
+
+---`Method Private Instance`
+---@param talentPrefab Barotrauma.TalentPrefab
+_G['Character'].OnTalentGiven = function(talentPrefab) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsInSameRoomAs = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['Character'].GetFriendlyCrew = function(character) end
+
+---`Method Public Instance`
+---@param recipeIdentifier Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].HasRecipeForItem = function(recipeIdentifier) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['Character'].HasStoreAccessForItem = function(prefab) end
+
+---`Method Public Instance`
+---@param amount System.Int32
+_G['Character'].GiveMoney = function(amount) end
+
+---`Method Public Instance`
+---@param amount System.Int32
+_G['Character'].SetMoney = function(amount) end
+
+---`Method Private Instance`
+---@param prevAmount System.Int32
+---@param newAmount System.Int32
+_G['Character'].OnMoneyChanged = function(prevAmount, newAmount) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param includeSaved? System.Boolean
+---@return System.Single
+_G['Character'].GetStatValue = function(statType, includeSaved) end
+
+---`Method Public Instance`
+_G['Character'].OnWearablesChanged = function() end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param value System.Single
+_G['Character'].ChangeStat = function(statType, value) end
+
+---`Method Private Static`
+---@param skillIdentifier Barotrauma.Identifier
+---@return Barotrauma.StatTypes
+_G['Character'].GetSkillStatType = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@param abilityFlag Barotrauma.AbilityFlags
+_G['Character'].AddAbilityFlag = function(abilityFlag) end
+
+---`Method Public Instance`
+---@param abilityFlag Barotrauma.AbilityFlags
+_G['Character'].RemoveAbilityFlag = function(abilityFlag) end
+
+---`Method Public Instance`
+---@param abilityFlag Barotrauma.AbilityFlags
+---@return System.Boolean
+_G['Character'].HasAbilityFlag = function(abilityFlag) end
+
+---`Method Public Instance`
+---@overload fun(resistanceId:Barotrauma.Identifier):(System.Single)
+---@param affliction Barotrauma.AfflictionPrefab
+---@return System.Single
+_G['Character'].GetAbilityResistance = function(affliction) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.TalentResistanceIdentifier
+---@param value System.Single
+_G['Character'].ChangeAbilityResistance = function(identifier, value) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.TalentResistanceIdentifier
+_G['Character'].RemoveAbilityResistance = function(identifier) end
+
+---`Method Public Instance`
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsFriendly = function(other) end
+
+---`Method Public Static`
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsFriendly = function(me, other) end
+
+---`Method Public Static`
+---@overload fun(myTeam:Barotrauma.CharacterTeamType, otherTeam:Barotrauma.CharacterTeamType):(System.Boolean)
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsOnFriendlyTeam = function(me, other) end
+
+---`Method Public Instance`
+---@overload fun(other:Barotrauma.Character):(System.Boolean)
+---@param otherTeam Barotrauma.CharacterTeamType
+---@return System.Boolean
+_G['Character'].IsOnFriendlyTeam = function(otherTeam) end
+
+---`Method Public Instance`
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsSameSpeciesOrGroup = function(other) end
+
+---`Method Public Static`
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsSameSpeciesOrGroup = function(me, other) end
+
+---`Method Public Instance`
+---@param speciesNameOrGroup Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].MatchesSpeciesNameOrGroup = function(speciesNameOrGroup) end
+
+---`Method Public Instance`
+_G['Character'].StopClimbing = function() end
+
+---`Method Public Instance`
+_G['Character'].ResetNetState = function() end
+
+---`Method Private Instance`
+_G['Character'].UpdateNetInput = function() end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['Character'].UpdateSpeechBubbles = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].UpdateControlled = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].UpdateProjSpecific = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+_G['Character'].SetOrderProjSpecific = function(order) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param damage System.Single
+_G['Character'].AddAttacker = function(character, damage) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Character'].ForgiveAttacker = function(character) end
+
+---`Method Public Instance`
+---@param otherCharacter Barotrauma.Character
+---@return System.Single
+_G['Character'].GetDamageDoneByAttacker = function(otherCharacter) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateAttackers = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateOxygen = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@return System.Single
+_G['Character'].GetDistanceToClosestPlayer = function() end
+
+---`Method NonPublic Instance`
+---@return System.Single
+_G['Character'].GetDistanceSqrToClosestPlayer = function() end
+
+---`Method Public Instance`
+---@param simPos Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['Character'].GetDistanceToClosestLimb = function(simPos) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param createNetworkEvents? System.Boolean
+_G['Character'].UpdateDespawn = function(deltaTime, createNetworkEvents) end
+
+---`Method Private Instance`
+---@param createNetworkEvents? System.Boolean
+_G['Character'].Despawn = function(createNetworkEvents) end
+
+---`Method Public Instance`
+---@param createNetworkEvents? System.Boolean
+_G['Character'].DespawnNow = function(createNetworkEvents) end
+
+---`Method Public Static`
+---@param prefab Barotrauma.CharacterPrefab
+_G['Character'].RemoveByPrefab = function(prefab) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateSightRange = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateSoundRange = function(deltaTime) end
+
+---`Method Public Instance`
+---@param speaker Barotrauma.Character
+---@return System.Boolean
+_G['Character'].CanHearCharacter = function(speaker) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param isNewOrder System.Boolean
+---@param speak? System.Boolean
+---@param force? System.Boolean
+_G['Character'].SetOrder = function(order, isNewOrder, speak, force) end
+
+---`Method Private Instance`
+---@param newOrder Barotrauma.Order
+_G['Character'].AddCurrentOrder = function(newOrder) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@return System.Boolean
+_G['Character'].RemoveDuplicateOrders = function(order) end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['Character'].GetCurrentOrderWithTopPriority = function() end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@return Barotrauma.Order
+_G['Character'].GetCurrentOrder = function(order) end
+
+---`Method Private Instance`
+---@param predicate (System.Func*1Barotrauma*Order*1System*Boolean)|(fun(arg:Barotrauma.Order):(System.Boolean))
+---@return Barotrauma.Order
+_G['Character'].GetCurrentOrder = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier)
+---@param identifier System.String
+_G['Character'].DisableLine = function(identifier) end
+
+---`Method Public Instance`
+---@param message System.String
+---@param messageType? System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param delay? System.Single
+---@param identifier? Barotrauma.Identifier
+---@param minDurationBetweenSimilar? System.Single
+_G['Character'].Speak = function(message, messageType, delay, identifier, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateAIChatMessages = function(deltaTime) end
+
+---`Method Public Instance`
+---@param damageAmount System.Single
+---@param bleedingDamageAmount System.Single
+---@param burnDamageAmount System.Single
+_G['Character'].SetAllDamage = function(damageAmount, bleedingDamageAmount, burnDamageAmount) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Character'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Public Instance`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2, afflictions:(System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction)), stun:System.Single, playSound:System.Boolean, attackImpulse?:System.Nullable*1Microsoft*Xna*Framework*Vector2, attacker?:Barotrauma.Character, damageMultiplier?:System.Single):(Barotrauma.AttackResult)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param stun System.Single
+---@param playSound System.Boolean
+---@param attackImpulse Microsoft.Xna.Framework.Vector2
+---@param hitLimb Barotrauma.Limb-ref
+---@param attacker? Barotrauma.Character
+---@param damageMultiplier? System.Single
+---@return Barotrauma.AttackResult
+_G['Character'].AddDamage = function(worldPosition, afflictions, stun, playSound, attackImpulse, hitLimb, attacker, damageMultiplier) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param deltaTime System.Single
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param playSound? System.Boolean
+---@param targetLimb? Barotrauma.Limb
+---@param penetration? System.Single
+---@return Barotrauma.AttackResult
+_G['Character'].ApplyAttack = function(attacker, worldPosition, attack, deltaTime, impulseDirection, playSound, targetLimb, penetration) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param severLimbsProbability System.Single
+---@param damage System.Single
+---@param allowBeheading System.Boolean
+---@param ignoreSeveranceProbabilityModifier? System.Boolean
+---@param attacker? Barotrauma.Character
+_G['Character'].TrySeverLimbJoints = function(targetLimb, severLimbsProbability, damage, allowBeheading, ignoreSeveranceProbabilityModifier, attacker) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Character
+_G['Character'].RecordKill = function(target) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hitLimb Barotrauma.Limb
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param stun System.Single
+---@param playSound System.Boolean
+---@param attackImpulse Microsoft.Xna.Framework.Vector2
+---@param attacker? Barotrauma.Character
+---@param damageMultiplier? System.Single
+---@param allowStacking? System.Boolean
+---@param penetration? System.Single
+---@param shouldImplode? System.Boolean
+---@param ignoreDamageOverlay? System.Boolean
+---@param recalculateVitality? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Character'].DamageLimb = function(worldPosition, hitLimb, afflictions, stun, playSound, attackImpulse, attacker, damageMultiplier, allowStacking, penetration, shouldImplode, ignoreDamageOverlay, recalculateVitality) end
+
+---`Method Private Instance`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+---@param stun System.Single
+_G['Character'].OnAttackedProjSpecific = function(attacker, attackResult, stun) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['Character'].TryAdjustAttackerSkill = function(attacker, attackResult) end
+
+---`Method Public Instance`
+---@param healer Barotrauma.Character
+---@param healthChange? System.Single
+---@param affliction? Barotrauma.Affliction
+_G['Character'].TryAdjustHealerSkill = function(healer, healthChange, affliction) end
+
+---`Method Public Instance`
+---@param newStun System.Single
+---@param allowStunDecrease? System.Boolean
+---@param isNetworkMessage? System.Boolean
+_G['Character'].SetStun = function(newStun, allowStunDecrease, isNetworkMessage) end
+
+---`Method Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param deltaTime System.Single
+_G['Character'].ApplyStatusEffects = function(actionType, deltaTime) end
+
+---`Method Private Instance`
+---@param isNetworkMessage? System.Boolean
+_G['Character'].Implode = function(isNetworkMessage) end
+
+---`Method Public Instance`
+_G['Character'].BreakJoints = function() end
+
+---`Method Private Instance`
+_G['Character'].ImplodeFX = function() end
+
+---`Method Public Instance`
+---@param huskInfection? Barotrauma.AfflictionPrefabHusk
+---@param playDead? System.Nullable*1System*Boolean
+_G['Character'].TurnIntoHusk = function(huskInfection, playDead) end
+
+---`Method Public Instance`
+---@param causeOfDeath Barotrauma.CauseOfDeathType
+---@param causeOfDeathAffliction Barotrauma.Affliction
+---@param isNetworkMessage? System.Boolean
+---@param log? System.Boolean
+_G['Character'].Kill = function(causeOfDeath, causeOfDeathAffliction, isNetworkMessage, log) end
+
+---`Method Private Instance`
+---@param causeOfDeath Barotrauma.CauseOfDeathType
+---@param causeOfDeathAffliction Barotrauma.Affliction
+---@param log System.Boolean
+_G['Character'].KillProjSpecific = function(causeOfDeath, causeOfDeathAffliction, log) end
+
+---`Method Public Instance`
+---@param removeAfflictions? System.Boolean
+---@param createNetworkEvent? System.Boolean
+_G['Character'].Revive = function(removeAfflictions, createNetworkEvent) end
+
+---`Method Public Instance Virtual`
+_G['Character'].Remove = function() end
+
+---`Method Private Instance`
+_G['Character'].DisposeProjSpecific = function() end
+
+---`Method Public Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+_G['Character'].TeleportTo = function(worldPos) end
+
+---`Method Public Static`
+---@param inventory Barotrauma.Inventory
+---@param parentElement System.Xml.Linq.XElement
+_G['Character'].SaveInventory = function(inventory, parentElement) end
+
+---`Method Public Instance`
+_G['Character'].SaveInventory = function() end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.Inventory
+---@param itemData Barotrauma.ContentXElement
+_G['Character'].SpawnInventoryItems = function(inventory, itemData) end
+
+---`Method Private Instance`
+---@param inventory Barotrauma.Inventory
+---@param element Barotrauma.ContentXElement
+---@param extraDuffelBags (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Character'].SpawnInventoryItemsRecursive = function(inventory, element, extraDuffelBags) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext)|(fun():(Barotrauma.AttackContext))
+_G['Character'].GetAttackContexts = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+_G['Character'].GetVisibleHulls = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param worldPos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Character'].GetRelativeSimPosition = function(target, worldPos) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String):(System.Boolean)
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].HasJob = function(identifier) end
+
+---`Method Public Instance`
+---@param applyXpPenalty System.Boolean
+_G['Character'].ResetTalents = function(applyXpPenalty) end
+
+---`Method Public Instance`
+_G['Character'].LoadTalents = function() end
+
+---`Method Public Instance`
+---@overload fun(talentIdentifier:Barotrauma.Identifier, addingFirstTime?:System.Boolean):(System.Boolean)
+---@overload fun(talentIdentifier:System.UInt32, addingFirstTime?:System.Boolean):(System.Boolean)
+---@param talentPrefab Barotrauma.TalentPrefab
+---@param addingFirstTime? System.Boolean
+---@return System.Boolean
+_G['Character'].GiveTalent = function(talentPrefab, addingFirstTime) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].HasTalent = function(identifier) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].HasUnlockedAllTalents = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].HasTalents = function() end
+
+---`Method Public Static`
+---@overload fun(characterInfo:Barotrauma.CharacterInfo, position:Microsoft.Xna.Framework.Vector2, seed:System.String, id?:System.UInt16, isRemotePlayer?:System.Boolean, hasAi?:System.Boolean, ragdoll?:Barotrauma.RagdollParams, spawnInitialItems?:System.Boolean):(Barotrauma.Character)
+---@overload fun(speciesName:System.String, position:Microsoft.Xna.Framework.Vector2, seed:System.String, characterInfo?:Barotrauma.CharacterInfo, id?:System.UInt16, isRemotePlayer?:System.Boolean, hasAi?:System.Boolean, createNetworkEvent?:System.Boolean, ragdoll?:Barotrauma.RagdollParams, throwErrorIfNotFound?:System.Boolean, spawnInitialItems?:System.Boolean):(Barotrauma.Character)
+---@overload fun(speciesName:Barotrauma.Identifier, position:Microsoft.Xna.Framework.Vector2, seed:System.String, characterInfo?:Barotrauma.CharacterInfo, id?:System.UInt16, isRemotePlayer?:System.Boolean, hasAi?:System.Boolean, createNetworkEvent?:System.Boolean, ragdoll?:Barotrauma.RagdollParams, throwErrorIfNotFound?:System.Boolean, spawnInitialItems?:System.Boolean):(Barotrauma.Character)
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param hasAi? System.Boolean
+---@param createNetworkEvent? System.Boolean
+---@param ragdoll? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'].Create = function(prefab, position, seed, characterInfo, id, isRemotePlayer, hasAi, createNetworkEvent, ragdoll, spawnInitialItems) end
+
+---`Method Private Instance`
+---@param mainElement Barotrauma.ContentXElement
+_G['Character'].InitProjSpecific = function(mainElement) end
+
+---`Method Public Instance`
+---@param headId? System.Nullable*1System*Int32
+---@param hairIndex? System.Int32
+---@param beardIndex? System.Int32
+---@param moustacheIndex? System.Int32
+---@param faceAttachmentIndex? System.Int32
+_G['Character'].ReloadHead = function(headId, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex) end
+
+---`Method Public Instance`
+_G['Character'].LoadHeadAttachments = function() end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+---@return System.Boolean
+_G['Character'].IsKeyHit = function(inputType) end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+---@return System.Boolean
+_G['Character'].IsKeyDown = function(inputType) end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+---@param hit System.Boolean
+---@param held System.Boolean
+_G['Character'].SetInput = function(inputType, hit, held) end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+_G['Character'].ClearInput = function(inputType) end
+
+---`Method Public Instance`
+_G['Character'].ClearInputs = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Character'].ToString = function() end
+
+---`Method Public Instance`
+---@param isPvPMode System.Boolean
+---@param spawnPoint? Barotrauma.WayPoint
+_G['Character'].GiveJobItems = function(isPvPMode, spawnPoint) end
+
+---`Method Public Instance`
+---@param spawnPoint Barotrauma.WayPoint
+---@param createNetworkEvent? System.Boolean
+_G['Character'].GiveIdCardTags = function(spawnPoint, createNetworkEvent) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['Character'].GetSkillLevel = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Character'].GetTargetMovement = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].CanRunWhileDragging = function() end
+
+---`Method Public Instance`
+---@param targetMovement Microsoft.Xna.Framework.Vector2
+---@param currentSpeed System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['Character'].ApplyMovementLimits = function(targetMovement, currentSpeed) end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Character'].StackSpeedMultiplier = function(val) end
+
+---`Method Public Instance`
+_G['Character'].ResetSpeedMultiplier = function() end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Character'].StackHealthMultiplier = function(val) end
+
+---`Method Private Instance`
+_G['Character'].CalculateHealthMultiplier = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Character'].GetTemporarySpeedReduction = function() end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param sum System.Single
+---@param max? System.Single
+---@return System.Single
+_G['Character'].CalculateMovementPenalty = function(limb, sum, max) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Character'].GetRightHandPenalty = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Character'].GetLeftHandPenalty = function() end
+
+---`Method Public Instance`
+---@param startSum? System.Single
+---@return System.Single
+_G['Character'].GetLegPenalty = function(startSum) end
+
+---`Method Public Instance`
+---@param speed System.Single
+---@return System.Single
+_G['Character'].ApplyTemporarySpeedLimits = function(speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].Control = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param damageTarget Barotrauma.IDamageable
+---@param attackPos Microsoft.Xna.Framework.Vector2
+_G['Character'].SetAttackTarget = function(attackLimb, damageTarget, attackPos) end
+
+---`Method Private Instance`
+---@return Barotrauma.Limb
+_G['Character'].GetSeeingLimb = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param seeingEntity? Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].CanSeeTarget = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Public Static`
+---@param target Barotrauma.ISpatialEntity
+---@param seeingEntity Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].IsTargetVisible = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Private Static`
+---@param target Barotrauma.Character
+---@param seeingEntity Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].IsCharacterVisible = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISpatialEntity
+---@param seeingEntity Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].CheckVisibility = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Public Instance`
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Character'].IsFacing = function(targetWorldPos) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param requireEquipped? System.Boolean
+---@param slotType? System.Nullable*1Barotrauma*InvSlotType
+---@return System.Boolean
+_G['Character'].HasItem = function(item, requireEquipped, slotType) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item, slotType?:System.Nullable*1Barotrauma*InvSlotType, predicate?:(System.Func*1Barotrauma*InvSlotType*1System*Boolean)|(fun(arg:Barotrauma.InvSlotType):(System.Boolean))):(System.Boolean)
+---@param tagOrIdentifier Barotrauma.Identifier
+---@param allowBroken? System.Boolean
+---@param slotType? System.Nullable*1Barotrauma*InvSlotType
+---@return System.Boolean
+_G['Character'].HasEquippedItem = function(tagOrIdentifier, allowBroken, slotType) end
+
+---`Method Public Instance`
+---@param tagOrIdentifier? Barotrauma.Identifier
+---@param slotType? System.Nullable*1Barotrauma*InvSlotType
+---@return Barotrauma.Item
+_G['Character'].GetEquippedItem = function(tagOrIdentifier, slotType) end
+
+---`Method Public Instance`
+---@param items System.ValueTuple
+---@return System.Boolean
+_G['Character'].HasHandsFull = function(items) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param allowedSlots (System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType))
+---@return System.Boolean
+_G['Character'].TryPutItem = function(item, allowedSlots) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].TryPutItemInBag = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].TryPutItemInAnySlot = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].Unequip = function(item) end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.Inventory
+---@param accessLevel? Barotrauma.CharacterInventory.AccessLevel
+---@return System.Boolean
+_G['Character'].CanAccessInventory = function(inventory, accessLevel) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param checkFriendlyTeam? System.Boolean
+---@return System.Boolean
+_G['Character'].CanBeHealedBy = function(character, checkFriendlyTeam) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Character'].CanBeDraggedBy = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param accessLevel? Barotrauma.CharacterInventory.AccessLevel
+---@return System.Boolean
+_G['Character'].IsInventoryAccessibleTo = function(character, accessLevel) end
+
+---`Method Public Instance`
+---@param itemIndex System.Int32-ref
+---@param targetItem Barotrauma.Item-ref
+---@param identifiers? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param ignoreBroken? System.Boolean
+---@param ignoredItems? (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param ignoredContainerIdentifiers? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param customPredicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param customPriorityFunction? (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---@param maxItemDistance? System.Single
+---@param positionalReference? Barotrauma.ISpatialEntity
+---@return System.Boolean
+_G['Character'].FindItem = function(itemIndex, targetItem, identifiers, ignoreBroken, ignoredItems, ignoredContainerIdentifiers, customPredicate, customPriorityFunction, maxItemDistance, positionalReference) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].IsItemTakenBySomeoneElse = function(item) end
+
+---`Method Public Instance`
+---@overload fun(c:Barotrauma.Character, maxDist?:System.Single, checkVisibility?:System.Boolean, skipDistanceCheck?:System.Boolean):(System.Boolean)
+---@overload fun(item:Barotrauma.Item, checkLinked?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param distanceToItem System.Single-ref
+---@param checkLinked System.Boolean
+---@return System.Boolean
+_G['Character'].CanInteractWith = function(item, distanceToItem, checkLinked) end
+
+---`Method Public Instance`
+---@param onCustomInteract (System.Action*1Barotrauma*Character*1Barotrauma*Character)|(fun(arg1:Barotrauma.Character, arg2:Barotrauma.Character))
+---@param hudText Barotrauma.LocalizedString
+_G['Character'].SetCustomInteract = function(onCustomInteract, hudText) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Character'].SelectCharacter = function(character) end
+
+---`Method Public Instance`
+_G['Character'].DeselectCharacter = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param mouseSimPos Microsoft.Xna.Framework.Vector2
+_G['Character'].DoInteractionUpdate = function(deltaTime, mouseSimPos) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['Character'].UpdateAnimAll = function(deltaTime) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].UpdateAll = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].IsDualWieldingRangedWeapons = function() end
+
+---`Method Public Instance`
+_G['Character'].ReleaseSecondaryItem = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].IsAnySelectedItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].HasSelectedAnotherSecondaryItem = function(item) end
+
+---`Method Public Instance`
+---@param probability? System.Nullable*1System*Single
+_G['Character'].EvaluatePlayDeadProbability = function(probability) end
+
+---`Method Private Instance`
+_G['Character'].ThrowIfAccessingWalletsInSingleplayer = function() end
+
+---`Method Public Instance`
+---@param newTeam Barotrauma.CharacterTeamType
+---@param processImmediately? System.Boolean
+_G['Character'].SetOriginalTeamAndChangeTeam = function(newTeam, processImmediately) end
+
+---`Method Private Instance`
+---@param newTeam Barotrauma.CharacterTeamType
+_G['Character'].ChangeTeam = function(newTeam) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@return System.Boolean
+_G['Character'].HasTeamChange = function(identifier) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param newTeamChange Barotrauma.ActiveTeamChange
+---@return System.Boolean
+_G['Character'].TryAddNewTeamChange = function(identifier, newTeamChange) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@return System.Boolean
+_G['Character'].TryRemoveTeamChange = function(identifier) end
+
+---`Method Public Instance`
+_G['Character'].UpdateTeam = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Identifier
+_G['Character'].GetBaseCharacterSpeciesName = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+---@param moveCam? System.Boolean
+_G['Character'].ControlLocalPlayer = function(deltaTime, cam, moveCam) end
+
+---`Method Public Instance`
+---@param cam Barotrauma.Camera
+_G['Character'].UpdateLocalCursor = function(cam) end
+
+---`Method Public Instance`
+---@param input Barotrauma.InputType
+_G['Character'].EmulateInput = function(input) end
+
+---`Method Private Instance`
+_G['Character'].UpdateInteractablesInRange = function() end
+
+---`Method Public Instance`
+---@param itemCollection (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param aimAssistModifier? System.Single
+---@return Barotrauma.Item
+_G['Character'].FindClosestItem = function(itemCollection, simPosition, aimAssistModifier) end
+
+---`Method Private Instance`
+---@param mouseSimPos Microsoft.Xna.Framework.Vector2
+---@param maxDist? System.Single
+---@return Barotrauma.Character
+_G['Character'].FindCharacterAtPosition = function(mouseSimPos, maxDist) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].ShouldLockHud = function() end
+
+---`Method Public Static`
+_G['Character'].AddAllToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+_G['Character'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance`
+---@param cam Barotrauma.Camera
+_G['Character'].DoVisibilityCheck = function(cam) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Character'].Draw = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param drawHealth? System.Boolean
+_G['Character'].DrawHUD = function(spriteBatch, cam, drawHealth) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Character'].DrawGUIMessages = function(spriteBatch, cam) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Character'].DrawFront = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param color Microsoft.Xna.Framework.Color
+---@param text System.String
+_G['Character'].ShowSpeechBubble = function(color, text) end
+
+---`Method Public Instance`
+---@param duration System.Single
+---@param color Microsoft.Xna.Framework.Color
+_G['Character'].ShowTextlessSpeechBubble = function(duration, color) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Character'].DrawSpeechBubbles = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Color
+_G['Character'].GetNameColor = function() end
+
+---`Method Public Instance`
+---@param rawText System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param playSound System.Boolean
+---@param identifier? Barotrauma.Identifier
+---@param value? System.Nullable*1System*Int32
+---@param lifetime? System.Single
+_G['Character'].AddMessage = function(rawText, color, playSound, identifier, value, lifetime) end
+
+---`Method Public Instance`
+---@param linkedObject System.Object
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param progress System.Single
+---@param emptyColor Microsoft.Xna.Framework.Color
+---@param fullColor Microsoft.Xna.Framework.Color
+---@param textTag? System.String
+---@return Barotrauma.HUDProgressBar
+_G['Character'].UpdateHUDProgressBar = function(linkedObject, worldPosition, progress, emptyColor, fullColor, textTag) end
+
+---`Method Public Instance`
+---@param soundType Barotrauma.CharacterSound.SoundType
+---@param soundIntervalFactor? System.Single
+---@param maxInterval? System.Single
+_G['Character'].PlaySound = function(soundType, soundIntervalFactor, maxInterval) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@param sprite Barotrauma.Sprite
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Character'].AddActiveObjectiveEntity = function(entity, sprite, color) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+_G['Character'].RemoveActiveObjectiveEntity = function(entity) end
+
+---`Method Public Instance`
+---@param predicate? (System.Func*1Barotrauma*CharacterSound*1System*Boolean)|(fun(arg:Barotrauma.CharacterSound):(System.Boolean))
+---@param random? System.Boolean
+---@return Barotrauma.CharacterSound
+_G['Character'].GetSound = function(predicate, random) end
+
+---`Method Public Instance`
+---@param segmentTableWriter Barotrauma.Networking.SegmentTableWriter
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Character'].ClientWriteInput = function(segmentTableWriter, msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Character'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Character'].ClientReadPosition = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Character'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@return Barotrauma.Character
+_G['Character'].ReadSpawnData = function(inc) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['Character'].ReadStatus = function(msg) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+_G['Character'].UpdateLimbLightSource = function(limb) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'] = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'].__new = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'] = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'].__new = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
diff --git a/Meta/Types/client/_00007FFD97C7D4D0.lua b/Meta/Types/client/_00007FFD97C7D4D0.lua
new file mode 100644
index 0000000..14f1b95
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7D4D0.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Character : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Character
+_G['Option*1Barotrauma*Character'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Character-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Character*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Character):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Character'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Character*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Character):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Character*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Character):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Character'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Character*1Barotrauma*Character)|(fun(arg:Barotrauma.Character):(Barotrauma.Character)), none:(System.Func*1Barotrauma*Character)|(fun():(Barotrauma.Character))):(Barotrauma.Character)
+---@param some (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Character'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Character):(Barotrauma.Character)
+---@param fallback Barotrauma.Option*1Barotrauma*Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Character
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Character'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Character'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7D778.lua b/Meta/Types/client/_00007FFD97C7D778.lua
new file mode 100644
index 0000000..d7fc94f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7D778.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.AccountId : System.Object
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Abstract Virtual`
+---@field EosStringRepresentation System.String
+_G['AccountId'] = {}
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['AccountId'].Parse = function(str) end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['AccountId'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['AccountId'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['AccountId'].ToString = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.AccountId
+_G['AccountId'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.AccountId
+_G['AccountId'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C7D818.lua b/Meta/Types/client/_00007FFD97C7D818.lua
new file mode 100644
index 0000000..964105b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7D818.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*AccountId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.AccountId
+_G['Option*1Barotrauma*Networking*AccountId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.AccountId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.AccountId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*AccountId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.AccountId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*AccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.AccountId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*AccountId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Networking*AccountId)|(fun(arg:Barotrauma.Networking.AccountId):(Barotrauma.Networking.AccountId)), none:(System.Func*1Barotrauma*Networking*AccountId)|(fun():(Barotrauma.Networking.AccountId))):(Barotrauma.Networking.AccountId)
+---@param some (System.Action*1Barotrauma*Networking*AccountId)|(fun(obj:Barotrauma.Networking.AccountId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*AccountId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.AccountId):(Barotrauma.Networking.AccountId)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.AccountId
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*AccountId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*AccountId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7DB10.lua b/Meta/Types/client/_00007FFD97C7DB10.lua
new file mode 100644
index 0000000..8cb7595
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7DB10.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class Barotrauma.Networking.SteamId : Barotrauma.Networking.AccountId
+---`Field Public Instance`
+---@field Value System.UInt64
+---`Field Private Static`
+---@field steam64Prefix System.String
+---`Field Private Static`
+---@field steam40Prefix System.String
+---`Field Private Static`
+---@field usualAccountInstance System.UInt64
+---`Field Private Static`
+---@field usualAccountType System.UInt64
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field EosStringRepresentation System.String
+_G['SteamId'] = {}
+
+---`Method Private Static`
+---@param id System.UInt64
+---@param offset System.Int32
+---@param numberOfBits System.Int32
+---@return System.UInt64
+_G['SteamId'].ExtractBits = function(id, offset, numberOfBits) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractY = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractAccountNumberRemainder = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractAccountInstance = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractAccountType = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractUniverse = function(id) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['SteamId'].ToString = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['SteamId'].Parse = function(str) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamId'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamId'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.Networking.SteamId
+_G['SteamId'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.Networking.SteamId
+_G['SteamId'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7DBB0.lua b/Meta/Types/client/_00007FFD97C7DBB0.lua
new file mode 100644
index 0000000..1ec63de
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7DBB0.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*SteamId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.SteamId
+_G['Option*1Barotrauma*Networking*SteamId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.SteamId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.SteamId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*SteamId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.SteamId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*SteamId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.SteamId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*SteamId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Networking*SteamId)|(fun(arg:Barotrauma.Networking.SteamId):(Barotrauma.Networking.SteamId)), none:(System.Func*1Barotrauma*Networking*SteamId)|(fun():(Barotrauma.Networking.SteamId))):(Barotrauma.Networking.SteamId)
+---@param some (System.Action*1Barotrauma*Networking*SteamId)|(fun(obj:Barotrauma.Networking.SteamId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*SteamId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.SteamId):(Barotrauma.Networking.SteamId)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.SteamId
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*SteamId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*SteamId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7DDC8.lua b/Meta/Types/client/_00007FFD97C7DDC8.lua
new file mode 100644
index 0000000..e201827
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7DDC8.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.EpicAccountId : Barotrauma.Networking.AccountId
+---`Field Private Static`
+---@field prefix System.String
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field EosStringRepresentation System.String
+_G['EpicAccountId'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['EpicAccountId'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['EpicAccountId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['EpicAccountId'].Parse = function(str) end
+
+---`Constructor Private Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EpicAccountId
+_G['EpicAccountId'] = function(value) end
+
+---`Constructor Private Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EpicAccountId
+_G['EpicAccountId'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7DE68.lua b/Meta/Types/client/_00007FFD97C7DE68.lua
new file mode 100644
index 0000000..94b3b46
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7DE68.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*EpicAccountId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.EpicAccountId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.EpicAccountId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.EpicAccountId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*EpicAccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.EpicAccountId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Networking*EpicAccountId)|(fun(arg:Barotrauma.Networking.EpicAccountId):(Barotrauma.Networking.EpicAccountId)), none:(System.Func*1Barotrauma*Networking*EpicAccountId)|(fun():(Barotrauma.Networking.EpicAccountId))):(Barotrauma.Networking.EpicAccountId)
+---@param some (System.Action*1Barotrauma*Networking*EpicAccountId)|(fun(obj:Barotrauma.Networking.EpicAccountId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.EpicAccountId):(Barotrauma.Networking.EpicAccountId)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.EpicAccountId
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*EpicAccountId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*EpicAccountId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7DFE0.lua b/Meta/Types/client/_00007FFD97C7DFE0.lua
new file mode 100644
index 0000000..7f0c8d2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7DFE0.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*ContentPackageId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.ContentPackageId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.ContentPackageId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*ContentPackageId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.ContentPackageId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*ContentPackageId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.ContentPackageId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*ContentPackageId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*ContentPackageId*1Barotrauma*ContentPackageId)|(fun(arg:Barotrauma.ContentPackageId):(Barotrauma.ContentPackageId)), none:(System.Func*1Barotrauma*ContentPackageId)|(fun():(Barotrauma.ContentPackageId))):(Barotrauma.ContentPackageId)
+---@param some (System.Action*1Barotrauma*ContentPackageId)|(fun(obj:Barotrauma.ContentPackageId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*ContentPackageId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.ContentPackageId):(Barotrauma.ContentPackageId)
+---@param fallback Barotrauma.Option*1Barotrauma*ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.ContentPackageId
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*ContentPackageId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*ContentPackageId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7E360.lua b/Meta/Types/client/_00007FFD97C7E360.lua
new file mode 100644
index 0000000..ff2d0c0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7E360.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1System*DateTime : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value System.DateTime
+_G['Option*1System*DateTime'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1System*DateTime'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1System*DateTime'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue System.DateTime-ref
+---@return System.Boolean
+_G['Option*1System*DateTime'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1System*DateTime*1Barotrauma*Option*TType)|(fun(arg:System.DateTime):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1System*DateTime'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1System*DateTime*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:System.DateTime):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1System*DateTime*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:System.DateTime):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1System*DateTime'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1System*DateTime*1System*DateTime)|(fun(arg:System.DateTime):(System.DateTime)), none:(System.Func*1System*DateTime)|(fun():(System.DateTime))):(System.DateTime)
+---@param some (System.Action*1System*DateTime)|(fun(obj:System.DateTime))
+---@param none (System.Action)|(fun())
+_G['Option*1System*DateTime'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:System.DateTime):(System.DateTime)
+---@param fallback Barotrauma.Option*1System*DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value System.DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1System*DateTime'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue System.DateTime
+---@return System.Boolean
+_G['Option*1System*DateTime'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1System*DateTime'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1System*DateTime'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value System.DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value System.DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7EE50.lua b/Meta/Types/client/_00007FFD97C7EE50.lua
new file mode 100644
index 0000000..563841d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7EE50.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.Networking.BannedPlayer : System.Object
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field AddressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+---`Field Public Instance`
+---@field Reason System.String
+---`Field Public Instance`
+---@field ExpirationTime Barotrauma.Option*1Barotrauma*SerializableDateTime
+---`Field Public Instance`
+---@field UniqueIdentifier System.UInt32
+_G['BannedPlayer'] = {}
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['BannedPlayer'].MatchesClient = function(client) end
+
+---`Constructor Public Instance`
+---@param uniqueIdentifier System.UInt32
+---@param name System.String
+---@param addressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+---@param reason System.String
+---@param expiration Barotrauma.Option*1Barotrauma*SerializableDateTime
+---@return Barotrauma.Networking.BannedPlayer
+_G['BannedPlayer'] = function(uniqueIdentifier, name, addressOrAccountId, reason, expiration) end
+
+---`Constructor Public Instance`
+---@param uniqueIdentifier System.UInt32
+---@param name System.String
+---@param addressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+---@param reason System.String
+---@param expiration Barotrauma.Option*1Barotrauma*SerializableDateTime
+---@return Barotrauma.Networking.BannedPlayer
+_G['BannedPlayer'].__new = function(uniqueIdentifier, name, addressOrAccountId, reason, expiration) end
+
diff --git a/Meta/Types/client/_00007FFD97C7EEE0.lua b/Meta/Types/client/_00007FFD97C7EEE0.lua
new file mode 100644
index 0000000..ff44d73
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7EEE0.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*BannedPlayer : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.BannedPlayer-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.BannedPlayer):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.BannedPlayer):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*BannedPlayer*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.BannedPlayer):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Networking*BannedPlayer)|(fun(arg:Barotrauma.Networking.BannedPlayer):(Barotrauma.Networking.BannedPlayer)), none:(System.Func*1Barotrauma*Networking*BannedPlayer)|(fun():(Barotrauma.Networking.BannedPlayer))):(Barotrauma.Networking.BannedPlayer)
+---@param some (System.Action*1Barotrauma*Networking*BannedPlayer)|(fun(obj:Barotrauma.Networking.BannedPlayer))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.BannedPlayer):(Barotrauma.Networking.BannedPlayer)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.BannedPlayer
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*BannedPlayer'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*BannedPlayer'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/client/_00007FFD97C7F798.lua b/Meta/Types/client/_00007FFD97C7F798.lua
new file mode 100644
index 0000000..72e3ab5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7F798.lua
@@ -0,0 +1,440 @@
+---@meta
+---@class Barotrauma.MathUtils : System.Object
+_G['MathUtils'] = {}
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector3
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].DiscardZ = function(vector) end
+
+---`Method Public Static`
+---@param portion System.Single
+---@param total System.Single
+---@return System.Single
+_G['MathUtils'].Percentage = function(portion, total) end
+
+---`Method Public Static`
+---@overload fun(i:System.Int32, n:System.Int32):(System.Int32)
+---@param i System.Single
+---@param n System.Single
+---@return System.Single
+_G['MathUtils'].PositiveModulo = function(i, n) end
+
+---`Method Public Static`
+---@param x1 System.Double
+---@param y1 System.Double
+---@param x2 System.Double
+---@param y2 System.Double
+---@return System.Double
+_G['MathUtils'].Distance = function(x1, y1, x2, y2) end
+
+---`Method Public Static`
+---@overload fun(x1:System.Double, y1:System.Double, x2:System.Double, y2:System.Double):(System.Double)
+---@param x1 System.Int32
+---@param y1 System.Int32
+---@param x2 System.Int32
+---@param y2 System.Int32
+---@return System.Int32
+_G['MathUtils'].DistanceSquared = function(x1, y1, x2, y2) end
+
+---`Method Public Static`
+---@overload fun(v1:Microsoft.Xna.Framework.Vector2, v2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].SmoothStep = function(t) end
+
+---`Method Public Static`
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].SmootherStep = function(t) end
+
+---`Method Public Static`
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].EaseIn = function(t) end
+
+---`Method Public Static`
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].EaseOut = function(t) end
+
+---`Method Public Static`
+---@param v Microsoft.Xna.Framework.Vector2
+---@param length System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].ClampLength = function(v, length) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param x System.Double
+---@param y System.Double
+---@return System.Boolean
+_G['MathUtils'].Contains = function(rect, x, y) end
+
+---`Method Public Static`
+---@overload fun(value:System.Single, div:System.Single):(System.Single)
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].Round = function(vector) end
+
+---`Method Public Static`
+---@param v System.Single
+---@return System.Int32
+_G['MathUtils'].RoundToInt = function(v) end
+
+---`Method Public Static`
+---@param value System.Single
+---@param div System.Single
+---@return System.Single
+_G['MathUtils'].RoundTowardsClosest = function(value, div) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].VectorToAngle = function(vector) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Point
+_G['MathUtils'].ToPoint = function(vector) end
+
+---`Method Public Static`
+---@overload fun(value:System.Single):(System.Boolean)
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].IsValid = function(vector) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param amount System.Int32
+---@return Microsoft.Xna.Framework.Rectangle
+_G['MathUtils'].ExpandRect = function(rect, amount) end
+
+---`Method Public Static`
+---@param pointA Microsoft.Xna.Framework.Vector2
+---@param pointB Microsoft.Xna.Framework.Vector2
+---@param pointC Microsoft.Xna.Framework.Vector2
+---@return System.Int32
+_G['MathUtils'].VectorOrientation = function(pointA, pointB, pointC) end
+
+---`Method Public Static`
+---@param from System.Single
+---@param to System.Single
+---@param step System.Single
+---@return System.Single
+_G['MathUtils'].CurveAngle = function(from, to, step) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Single
+_G['MathUtils'].WrapAngleTwoPi = function(angle) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Single
+_G['MathUtils'].WrapAnglePi = function(angle) end
+
+---`Method Public Static`
+---@param from System.Single
+---@param to System.Single
+---@return System.Single
+_G['MathUtils'].GetShortestAngle = function(from, to) end
+
+---`Method Public Static`
+---@param from System.Single
+---@param to System.Single
+---@return System.Single
+_G['MathUtils'].GetMidAngle = function(from, to) end
+
+---`Method Public Static`
+---@param a System.Single
+---@param b System.Single
+---@param c System.Single
+---@return System.Single
+_G['MathUtils'].SolveTriangleSSS = function(a, b, c) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Byte
+_G['MathUtils'].AngleToByte = function(angle) end
+
+---`Method Public Static`
+---@param b System.Byte
+---@return System.Single
+_G['MathUtils'].ByteToAngle = function(b) end
+
+---`Method Public Static`
+---@param a Microsoft.Xna.Framework.Vector2
+---@param b Microsoft.Xna.Framework.Vector2
+---@param c Microsoft.Xna.Framework.Vector2
+---@param d Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].LineSegmentsIntersect = function(a, b, c, d) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param b1 Microsoft.Xna.Framework.Vector2
+---@param b2 Microsoft.Xna.Framework.Vector2
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetLineSegmentIntersection = function(a1, a2, b1, b2, intersection) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param b1 Microsoft.Xna.Framework.Vector2
+---@param b2 Microsoft.Xna.Framework.Vector2
+---@param areLinesInfinite System.Boolean
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetLineIntersection = function(a1, a2, b1, b2, areLinesInfinite, intersection) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param axisAligned1 Microsoft.Xna.Framework.Vector2
+---@param axisAligned2 Microsoft.Xna.Framework.Vector2
+---@param isHorizontal System.Boolean
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetAxisAlignedLineIntersection = function(a1, a2, axisAligned1, axisAligned2, isHorizontal, intersection) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetLineRectangleIntersection = function(a1, a2, rect, intersection) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].FlipX = function(vector) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param point Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['MathUtils'].FlipY = function(point) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param point Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['MathUtils'].YX = function(point) end
+
+---`Method Public Static`
+---@param radians System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatedUnitXRadians = function(radians) end
+
+---`Method Public Static`
+---@param radians System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatedUnitYRadians = function(radians) end
+
+---`Method Public Static`
+---@param circlePos Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param isLineSegment System.Boolean
+---@param intersection1 System.Nullable
+---@param intersection2 System.Nullable
+---@return System.Int32
+_G['MathUtils'].GetLineCircleIntersections = function(circlePos, radius, point1, point2, isLineSegment, intersection1, intersection2) end
+
+---`Method Public Static`
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].LineToPointDistance = function(lineA, lineB, point) end
+
+---`Method Public Static`
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].LineToPointDistanceSquared = function(lineA, lineB, point) end
+
+---`Method Public Static`
+---@overload fun(lineA:Microsoft.Xna.Framework.Point, lineB:Microsoft.Xna.Framework.Point, point:Microsoft.Xna.Framework.Point):(System.Double)
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].LineSegmentToPointDistanceSquared = function(lineA, lineB, point) end
+
+---`Method Private Static`
+---@param line1X System.Double
+---@param line1Y System.Double
+---@param line2X System.Double
+---@param line2Y System.Double
+---@param pointX System.Double
+---@param pointY System.Double
+---@return System.Double
+_G['MathUtils'].LineSegmentToPointDistanceSquared = function(line1X, line1Y, line2X, line2Y, pointX, pointY) end
+
+---`Method Public Static`
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].GetClosestPointOnLineSegment = function(lineA, lineB, point) end
+
+---`Method Public Static`
+---@param circlePos Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['MathUtils'].CircleIntersectsRectangle = function(circlePos, radius, rect) end
+
+---`Method Public Static`
+---@param center Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param angle System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].GetPointOnCircumference = function(center, radius, angle) end
+
+---`Method Public Static`
+---@param center Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param points System.Int32
+---@param firstAngle? System.Single
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['MathUtils'].GetPointsOnCircumference = function(center, radius, points, firstAngle) end
+
+---`Method Public Static`
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param center Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+_G['MathUtils'].TriangulateConvexHull = function(vertices, center) end
+
+---`Method Public Static`
+---@param points (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['MathUtils'].GiftWrap = function(points) end
+
+---`Method Public Static`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param iterations System.Int32
+---@param offsetAmount System.Single
+---@param rng System.Random
+---@param bounds? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+_G['MathUtils'].GenerateJaggedLine = function(start, luaKey__end, iterations, offsetAmount, rng, bounds) end
+
+---`Method Public Static`
+---@param i System.Int64
+---@return System.String
+_G['MathUtils'].GetBytesReadable = function(i) end
+
+---`Method Public Static`
+---@param rects (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param point Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].SplitRectanglesHorizontal = function(rects, point) end
+
+---`Method Public Static`
+---@param rects (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param point Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].SplitRectanglesVertical = function(rects, point) end
+
+---`Method Public Static`
+---@overload fun(a:System.Single, b:System.Single, epsilon?:System.Single):(System.Boolean)
+---@param a Microsoft.Xna.Framework.Vector2
+---@param b Microsoft.Xna.Framework.Vector2
+---@param epsilon? System.Single
+---@return System.Boolean
+_G['MathUtils'].NearlyEqual = function(a, b, epsilon) end
+
+---`Method Public Static`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param control Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param t System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].Bezier = function(start, control, luaKey__end, t) end
+
+---`Method Public Static`
+---@param f System.Single
+---@param p System.Single
+---@return System.Single
+_G['MathUtils'].Pow = function(f, p) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Single
+_G['MathUtils'].Pow2 = function(f) end
+
+---`Method Public Static`
+---@param alignment Barotrauma.Alignment
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].ToVector2 = function(alignment) end
+
+---`Method Public Static`
+---@param point Microsoft.Xna.Framework.Vector2
+---@param target Microsoft.Xna.Framework.Vector2
+---@param radians System.Single
+---@param clockWise? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatePointAroundTarget = function(point, target, radians, clockWise) end
+
+---`Method Public Static`
+---@param point Microsoft.Xna.Framework.Vector2
+---@param radians System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatePoint = function(point, radians) end
+
+---`Method Public Static`
+---@overload fun(up:Microsoft.Xna.Framework.Vector2, center:Microsoft.Xna.Framework.Vector2, size:Microsoft.Xna.Framework.Vector2):((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]))
+---@param corners (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param up Microsoft.Xna.Framework.Vector2
+---@param center Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['MathUtils'].GetImaginaryRect = function(corners, up, center, size) end
+
+---`Method Public Static`
+---@overload fun(corners:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), point:Microsoft.Xna.Framework.Vector2):(System.Boolean)
+---@param c1 Microsoft.Xna.Framework.Vector2
+---@param c2 Microsoft.Xna.Framework.Vector2
+---@param c3 Microsoft.Xna.Framework.Vector2
+---@param c4 Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].RectangleContainsPoint = function(c1, c2, c3, c4, point) end
+
+---`Method Public Static`
+---@param c1 Microsoft.Xna.Framework.Vector2
+---@param c2 Microsoft.Xna.Framework.Vector2
+---@param c3 Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].TriangleContainsPoint = function(c1, c2, c3, point) end
+
+---`Method Public Static`
+---@param min System.Single
+---@param max System.Single
+---@param v System.Single
+---@return System.Single
+_G['MathUtils'].InverseLerp = function(min, max, v) end
+
+---`Method Public Static`
+---@param ... System.Single
+---@return System.Single
+_G['MathUtils'].Min = function(...) end
+
+---`Method Public Static`
+---@param ... System.Single
+---@return System.Single
+_G['MathUtils'].Max = function(...) end
+
+---`Method Public Static`
+---@param val System.UInt32
+---@return System.UInt32
+_G['MathUtils'].RoundUpToPowerOfTwo = function(val) end
+
diff --git a/Meta/Types/client/_00007FFD97C7FCB8.lua b/Meta/Types/client/_00007FFD97C7FCB8.lua
new file mode 100644
index 0000000..bf60b71
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7FCB8.lua
@@ -0,0 +1,250 @@
+---@meta
+---@class System.MathF : System.Object
+---`Field Private Static`
+---@field roundPower10Single (System.Single-arr)|(System.Single[])
+---`Field Public Static`
+---@field E System.Single
+---`Field Public Static`
+---@field PI System.Single
+---`Field Public Static`
+---@field Tau System.Single
+_G['System']['MathF'] = {}
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Acos = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Acosh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Asin = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Asinh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Atan = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Atanh = function(x) end
+
+---`Method Public Static`
+---@param y System.Single
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Atan2 = function(y, x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Cbrt = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Ceiling = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Cos = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Cosh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Exp = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Floor = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@param z System.Single
+---@return System.Single
+_G['System']['MathF'].FusedMultiplyAdd = function(x, y, z) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Int32
+_G['System']['MathF'].ILogB = function(x) end
+
+---`Method Public Static`
+---@overload fun(x:System.Single):(System.Single)
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Log = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Log2 = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Log10 = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Pow = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Sin = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.ValueTuple*1System*Single*1System*Single
+_G['System']['MathF'].SinCos = function(x) end
+
+---`Method Private Static`
+---@param x System.Single
+---@param sin System.Single-ptr
+---@param cos System.Single-ptr
+_G['System']['MathF'].SinCos = function(x, sin, cos) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Sinh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Sqrt = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Tan = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Tanh = function(x) end
+
+---`Method Private Static`
+---@param x System.Single
+---@param intptr System.Single-ptr
+---@return System.Single
+_G['System']['MathF'].ModF = function(x, intptr) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Abs = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].BitDecrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].BitIncrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].CopySign = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].IEEERemainder = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Max = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].MaxMagnitude = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Min = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].MinMagnitude = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].ReciprocalEstimate = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].ReciprocalSqrtEstimate = function(x) end
+
+---`Method Public Static`
+---@overload fun(x:System.Single):(System.Single)
+---@overload fun(x:System.Single, digits:System.Int32):(System.Single)
+---@overload fun(x:System.Single, mode:System.MidpointRounding):(System.Single)
+---@param x System.Single
+---@param digits System.Int32
+---@param mode System.MidpointRounding
+---@return System.Single
+_G['System']['MathF'].Round = function(x, digits, mode) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Int32
+_G['System']['MathF'].Sign = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Truncate = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param n System.Int32
+---@return System.Single
+_G['System']['MathF'].ScaleB = function(x, n) end
+
+---`Constructor Private Static`
+---@return System.MathF
+_G['System']['MathF'] = function() end
+
+---`Constructor Private Static`
+---@return System.MathF
+_G['System']['MathF'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97C7FEC8.lua b/Meta/Types/client/_00007FFD97C7FEC8.lua
new file mode 100644
index 0000000..3bc2906
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97C7FEC8.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Microsoft.Xna.Framework.MathHelper : System.Object
+---`Field Public Static`
+---@field E System.Single
+---`Field Public Static`
+---@field Log10E System.Single
+---`Field Public Static`
+---@field Log2E System.Single
+---`Field Public Static`
+---@field Pi System.Single
+---`Field Public Static`
+---@field PiOver2 System.Single
+---`Field Public Static`
+---@field PiOver4 System.Single
+---`Field Public Static`
+---@field TwoPi System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'] = {}
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param value3 System.Single
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Barycentric = function(value1, value2, value3, amount1, amount2) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param value3 System.Single
+---@param value4 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].CatmullRom = function(value1, value2, value3, value4, amount) end
+
+---`Method Public Static`
+---@overload fun(value:System.Single, min:System.Single, max:System.Single):(System.Single)
+---@param value System.Int32
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Clamp = function(value, min, max) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Distance = function(value1, value2) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param tangent1 System.Single
+---@param value2 System.Single
+---@param tangent2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Hermite = function(value1, tangent1, value2, tangent2, amount) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Lerp = function(value1, value2, amount) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].LerpPrecise = function(value1, value2, amount) end
+
+---`Method Public Static`
+---@overload fun(value1:System.Single, value2:System.Single):(System.Single)
+---@param value1 System.Int32
+---@param value2 System.Int32
+---@return System.Int32
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Max = function(value1, value2) end
+
+---`Method Public Static`
+---@overload fun(value1:System.Single, value2:System.Single):(System.Single)
+---@param value1 System.Int32
+---@param value2 System.Int32
+---@return System.Int32
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Min = function(value1, value2) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].SmoothStep = function(value1, value2, amount) end
+
+---`Method Public Static`
+---@param radians System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].ToDegrees = function(radians) end
+
+---`Method Public Static`
+---@param degrees System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].ToRadians = function(degrees) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].WrapAngle = function(angle) end
+
+---`Method Public Static`
+---@param value System.Int32
+---@return System.Boolean
+_G['Microsoft']['Xna']['Framework']['MathHelper'].IsPowerOfTwo = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97CB0218.lua b/Meta/Types/client/_00007FFD97CB0218.lua
new file mode 100644
index 0000000..8c63089
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB0218.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class Barotrauma.PerformanceCounter : System.Object
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Private Instance`
+---@field sampleBuffer (System.Collections.Generic.Queue*1System*Double)|(fun():(System.Double))
+---`Field Private Instance`
+---@field averageFramesPerSecondBuffer (System.Collections.Generic.Queue*1System*Double)|(fun():(System.Double))
+---`Field Private Instance`
+---@field timer System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field lastSecondMark System.Int64
+---`Field Private Instance`
+---@field lastMinuteMark System.Int64
+---`Field Private Instance`
+---@field elapsedTicks (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Queue*2System*Int64)|({[System.String]:((System.Collections.Generic.Queue*1System*Int64)|(fun():(System.Int64)))})
+---`Field Private Instance`
+---@field avgTicksPerFrame (System.Collections.Generic.Dictionary*1System*String*1System*Int64)|({[System.String]:(System.Int64)})
+---`Field NonPublic Instance`
+---@field UpdateTimeGraph Barotrauma.Graph
+---`Field NonPublic Instance`
+---@field DrawTimeGraph Barotrauma.Graph
+---`Field Private Instance`
+---@field tempSavedIdentifiers (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Public Static`
+---@field MaximumSamples System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AverageFramesPerSecond System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentFramesPerSecond System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AverageFramesPerSecondInPastMinute System.Double
+---`Getter Public Instance`
+---@field GetSavedIdentifiers (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+_G['PerformanceCounter'] = {}
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param ticks System.Int64
+_G['PerformanceCounter'].AddElapsedTicks = function(identifier, ticks) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@return System.Single
+_G['PerformanceCounter'].GetAverageElapsedMillisecs = function(identifier) end
+
+---`Method Public Instance`
+---@param deltaTime System.Double
+---@return System.Boolean
+_G['PerformanceCounter'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PerformanceCounter
+_G['PerformanceCounter'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PerformanceCounter
+_G['PerformanceCounter'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CB5F90.lua b/Meta/Types/client/_00007FFD97CB5F90.lua
new file mode 100644
index 0000000..a6c106a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB5F90.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.ChatMode : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.ChatMode
+---`Field Public Static`
+---@field Local Barotrauma.ChatMode
+---`Field Public Static`
+---@field Radio Barotrauma.ChatMode
+_G['ChatMode'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97CB6148.lua b/Meta/Types/client/_00007FFD97CB6148.lua
new file mode 100644
index 0000000..40e00fc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB6148.lua
@@ -0,0 +1,260 @@
+---@meta
+---@class Barotrauma.GameMain : Microsoft.Xna.Framework.Game
+---`Field Public Instance`
+---@field ConsoleArguments (System.Collections.Immutable.ImmutableArray*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field EgsExchangeCode Barotrauma.Option*1System*String
+---`Field Private Instance`
+---@field loadingScreenOpen System.Boolean
+---`Field Private Instance`
+---@field initialLoadingThread System.Threading.Thread
+---`Field Private Instance`
+---@field fixedTime Microsoft.Xna.Framework.GameTime
+---`Field Public Instance`
+---@field ConnectCommand Barotrauma.Option*1Barotrauma*Networking*ConnectCommand
+---`Field Private Instance`
+---@field defaultViewport Microsoft.Xna.Framework.Graphics.Viewport
+---`Field Private Instance`
+---@field ResolutionChanged (System.Action)|(fun())
+---`Field Public Static`
+---@field LuaCs Barotrauma.LuaCsSetup
+---`Field Public Static`
+---@field ShowFPS System.Boolean
+---`Field Public Static`
+---@field ShowPerf System.Boolean
+---`Field Public Static`
+---@field DebugDraw System.Boolean
+---`Field Public Static`
+---@field DevMode System.Boolean
+---`Field Public Static`
+---@field PerformanceCounter Barotrauma.PerformanceCounter
+---`Field Private Static`
+---@field performanceCounterTimer System.Diagnostics.Stopwatch
+---`Field Private Static`
+---@field updateCount System.Int32
+---`Field Public Static`
+---@field Version System.Version
+---`Field Public Static`
+---@field GameScreen Barotrauma.GameScreen
+---`Field Public Static`
+---@field MainMenuScreen Barotrauma.MainMenuScreen
+---`Field Public Static`
+---@field NetLobbyScreen Barotrauma.NetLobbyScreen
+---`Field Public Static`
+---@field ModDownloadScreen Barotrauma.ModDownloadScreen
+---`Field Public Static`
+---@field ServerListScreen Barotrauma.ServerListScreen
+---`Field Public Static`
+---@field SubEditorScreen Barotrauma.SubEditorScreen
+---`Field Public Static`
+---@field TestScreen Barotrauma.TestScreen
+---`Field Public Static`
+---@field ParticleEditorScreen Barotrauma.ParticleEditorScreen
+---`Field Public Static`
+---@field LevelEditorScreen Barotrauma.LevelEditorScreen
+---`Field Public Static`
+---@field SpriteEditorScreen Barotrauma.SpriteEditorScreen
+---`Field Public Static`
+---@field EventEditorScreen Barotrauma.EventEditorScreen
+---`Field Public Static`
+---@field CharacterEditorScreen Barotrauma.CharacterEditor.CharacterEditorScreen
+---`Field Public Static`
+---@field CampaignEndScreen Barotrauma.CampaignEndScreen
+---`Field Public Static`
+---@field LightManager Barotrauma.Lights.LightManager
+---`Field Public Static`
+---@field SoundManager Barotrauma.Sounds.SoundManager
+---`Field Private Static`
+---@field gameSession Barotrauma.GameSession
+---`Field Public Static`
+---@field ParticleManager Barotrauma.Particles.ParticleManager
+---`Field Private Static`
+---@field world FarseerPhysics.Dynamics.World
+---`Field Public Static`
+---@field TitleScreen Barotrauma.LoadingScreen
+---`Field Private Static`
+---@field spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---`Field Public Static`
+---@field Client Barotrauma.Networking.GameClient
+---`Field Public Static`
+---@field FirstLoad System.Boolean
+---`Field Public Static`
+---@field CancelQuickStart System.Boolean
+---`Field Private Static`
+---@field contentLoaded System.Boolean
+---`Field Private Static`
+---@field postContentLoadActions (System.Collections.Generic.Queue*1System*Action)|(fun():((System.Action)|(fun())))
+---`Field Private Static`
+---@field waitForKeyHit System.Boolean
+---`Field Private Static`
+---@field GfxProfile Microsoft.Xna.Framework.Graphics.GraphicsProfile
+---`Getter Public Static`
+---@field IsSingleplayer System.Boolean
+---`Getter Public Static`
+---@field IsMultiplayer System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field CurrentUpdateRate System.Int32
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MainThread System.Threading.Thread
+---`Getter Public Static`
+---@field VanillaContent Barotrauma.ContentPackage
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field GameSession Barotrauma.GameSession
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field World FarseerPhysics.Dynamics.World
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasLoaded System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field IsExiting System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field IsFirstLaunch System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Instance Barotrauma.GameMain
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GraphicsDeviceManager Microsoft.Xna.Framework.GraphicsDeviceManager
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field WindowMode Barotrauma.WindowMode
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GraphicsWidth System.Int32
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GraphicsHeight System.Int32
+---`Getter Public Static`
+---@field WindowActive System.Boolean
+---`Getter Public Static`
+---@field NetworkMember Barotrauma.Networking.NetworkMember
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ScissorTestEnable Microsoft.Xna.Framework.Graphics.RasterizerState
+---`Getter Public Instance`
+---@field LoadingScreenOpen System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Paused System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field ActiveChatMode Barotrauma.ChatMode
+_G['GameMain'] = {}
+
+---`Method Public Static`
+_G['GameMain'].ResetNetLobbyScreen = function() end
+
+---`Method Public Static`
+---@param action (System.Action)|(fun())
+_G['GameMain'].ExecuteAfterContentFinishedLoading = function(action) end
+
+---`Method Public Static`
+---@param sender System.Object
+---@param args Microsoft.Xna.Framework.FileDropEventArgs
+_G['GameMain'].OnFileDropped = function(sender, args) end
+
+---`Method Public Instance`
+---@param recalculateFontsAndStyles? System.Boolean
+_G['GameMain'].ApplyGraphicsSettings = function(recalculateFontsAndStyles) end
+
+---`Method Public Instance`
+---@param windowMode Barotrauma.WindowMode
+_G['GameMain'].SetWindowMode = function(windowMode) end
+
+---`Method Public Instance`
+_G['GameMain'].ResetViewPort = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['GameMain'].Initialize = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['GameMain'].LoadContent = function() end
+
+---`Method Private Instance`
+_G['GameMain'].Load = function() end
+
+---`Method Private Static`
+_G['GameMain'].ProcessLaunchCountEos = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['GameMain'].UnloadContent = function() end
+
+---`Method Private Instance`
+---@overload fun(friend:Steamworks.Friend, connectCommand:System.String)
+---@param connectCommand System.String
+_G['GameMain'].OnInvitedToSteamGame = function(connectCommand) end
+
+---`Method Private Instance`
+---@param lobby Steamworks.Data.Lobby
+---@param friendId Steamworks.SteamId
+_G['GameMain'].OnSteamLobbyJoinRequested = function(lobby, friendId) end
+
+---`Method NonPublic Instance Virtual`
+---@param gameTime Microsoft.Xna.Framework.GameTime
+_G['GameMain'].Update = function(gameTime) end
+
+---`Method Public Static`
+_G['GameMain'].ResetFrameTime = function() end
+
+---`Method Private Instance`
+_G['GameMain'].FixRazerCortex = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param gameTime Microsoft.Xna.Framework.GameTime
+_G['GameMain'].Draw = function(gameTime) end
+
+---`Method Public Static`
+---@overload fun(save:System.Boolean, showVerificationPrompt:System.Boolean)
+---@param save System.Boolean
+_G['GameMain'].QuitToMainMenu = function(save) end
+
+---`Method Public Instance`
+_G['GameMain'].ShowBugReporter = function() end
+
+---`Method Public Instance`
+---@param loader (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+---@param waitKeyHit? System.Boolean
+---@return Barotrauma.CoroutineHandle
+_G['GameMain'].ShowLoading = function(loader, waitKeyHit) end
+
+---`Method NonPublic Instance Virtual`
+---@param sender System.Object
+---@param args System.EventArgs
+_G['GameMain'].OnExiting = function(sender, args) end
+
+---`Method Public Static`
+---@overload fun(url:System.String, promptTextTag?:System.String, promptExtensionTag?:System.String):(Barotrauma.GUIMessageBox)
+---@param url System.String
+---@param promptText Barotrauma.LocalizedString
+---@return Barotrauma.GUIMessageBox
+_G['GameMain'].ShowOpenUriPrompt = function(url, promptText) end
+
+---`Method Public Static`
+_G['GameMain'].ResetIMEWorkaround = function() end
+
+---`Constructor Public Instance`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CB7318.lua b/Meta/Types/client/_00007FFD97CB7318.lua
new file mode 100644
index 0000000..30ddf23
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB7318.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Networking.Endpoint : System.Object
+---`Field Public Instance`
+---@field Address Barotrauma.Networking.Address
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Abstract Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['Endpoint'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Endpoint'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['Endpoint'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Endpoint'].ToString = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*Endpoint
+_G['Endpoint'].Parse = function(str) end
+
+---`Constructor Public Instance`
+---@param address Barotrauma.Networking.Address
+---@return Barotrauma.Networking.Endpoint
+_G['Endpoint'] = function(address) end
+
+---`Constructor Public Instance`
+---@param address Barotrauma.Networking.Address
+---@return Barotrauma.Networking.Endpoint
+_G['Endpoint'].__new = function(address) end
+
diff --git a/Meta/Types/client/_00007FFD97CB8AC8.lua b/Meta/Types/client/_00007FFD97CB8AC8.lua
new file mode 100644
index 0000000..8fe7e70
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB8AC8.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.CursorState : System.Enum
+---`Field Public Static`
+---@field Default Barotrauma.CursorState
+---`Field Public Static`
+---@field Hand Barotrauma.CursorState
+---`Field Public Static`
+---@field Move Barotrauma.CursorState
+---`Field Public Static`
+---@field IBeam Barotrauma.CursorState
+---`Field Public Static`
+---@field Dragging Barotrauma.CursorState
+---`Field Public Static`
+---@field Waiting Barotrauma.CursorState
+---`Field Public Static`
+---@field WaitingBackground Barotrauma.CursorState
+_G['GUI']['CursorState'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97CB8C18.lua b/Meta/Types/client/_00007FFD97CB8C18.lua
new file mode 100644
index 0000000..8d0b744
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB8C18.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Alignment : System.Enum
+---`Field Public Static`
+---@field CenterX Barotrauma.Alignment
+---`Field Public Static`
+---@field Left Barotrauma.Alignment
+---`Field Public Static`
+---@field Right Barotrauma.Alignment
+---`Field Public Static`
+---@field CenterY Barotrauma.Alignment
+---`Field Public Static`
+---@field Top Barotrauma.Alignment
+---`Field Public Static`
+---@field Bottom Barotrauma.Alignment
+---`Field Public Static`
+---@field TopLeft Barotrauma.Alignment
+---`Field Public Static`
+---@field TopCenter Barotrauma.Alignment
+---`Field Public Static`
+---@field TopRight Barotrauma.Alignment
+---`Field Public Static`
+---@field CenterLeft Barotrauma.Alignment
+---`Field Public Static`
+---@field Center Barotrauma.Alignment
+---`Field Public Static`
+---@field CenterRight Barotrauma.Alignment
+---`Field Public Static`
+---@field BottomLeft Barotrauma.Alignment
+---`Field Public Static`
+---@field BottomCenter Barotrauma.Alignment
+---`Field Public Static`
+---@field BottomRight Barotrauma.Alignment
+---`Field Public Static`
+---@field Any Barotrauma.Alignment
+_G['GUI']['Alignment'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97CB8D68.lua b/Meta/Types/client/_00007FFD97CB8D68.lua
new file mode 100644
index 0000000..cb6be5a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB8D68.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.GUIComponent.ComponentState : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.GUIComponent.ComponentState
+---`Field Public Static`
+---@field Hover Barotrauma.GUIComponent.ComponentState
+---`Field Public Static`
+---@field Pressed Barotrauma.GUIComponent.ComponentState
+---`Field Public Static`
+---@field Selected Barotrauma.GUIComponent.ComponentState
+---`Field Public Static`
+---@field HoverSelected Barotrauma.GUIComponent.ComponentState
+_G['GUIComponent']['ComponentState'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97CB8EB8.lua b/Meta/Types/client/_00007FFD97CB8EB8.lua
new file mode 100644
index 0000000..06d4d64
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB8EB8.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.TransitionMode : System.Enum
+---`Field Public Static`
+---@field Linear Barotrauma.TransitionMode
+---`Field Public Static`
+---@field Smooth Barotrauma.TransitionMode
+---`Field Public Static`
+---@field Smoother Barotrauma.TransitionMode
+---`Field Public Static`
+---@field EaseIn Barotrauma.TransitionMode
+---`Field Public Static`
+---@field EaseOut Barotrauma.TransitionMode
+---`Field Public Static`
+---@field Exponential Barotrauma.TransitionMode
+_G['TransitionMode'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97CB9008.lua b/Meta/Types/client/_00007FFD97CB9008.lua
new file mode 100644
index 0000000..b6d1cdc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB9008.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.SpriteFallBackState : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.SpriteFallBackState
+---`Field Public Static`
+---@field Hover Barotrauma.SpriteFallBackState
+---`Field Public Static`
+---@field Pressed Barotrauma.SpriteFallBackState
+---`Field Public Static`
+---@field Selected Barotrauma.SpriteFallBackState
+---`Field Public Static`
+---@field HoverSelected Barotrauma.SpriteFallBackState
+---`Field Public Static`
+---@field Toggle Barotrauma.SpriteFallBackState
+_G['SpriteFallBackState'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97CB9160.lua b/Meta/Types/client/_00007FFD97CB9160.lua
new file mode 100644
index 0000000..82ec326
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB9160.lua
@@ -0,0 +1,484 @@
+---@meta
+---@class Barotrauma.GUIComponent : System.Object
+---`Field Public Instance`
+---@field HoverCursor Barotrauma.CursorState
+---`Field Public Instance`
+---@field AlwaysOverrideCursor System.Boolean
+---`Field Public Instance`
+---@field OnSecondaryClicked (Barotrauma.GUIComponent.SecondaryButtonDownHandler)|(fun(component:Barotrauma.GUIComponent, userData:System.Object):(System.Boolean))
+---`Field Private Instance`
+---@field bounceTimer System.Single
+---`Field Private Instance`
+---@field bounceJump System.Single
+---`Field Private Instance`
+---@field bounceDown System.Boolean
+---`Field Public Instance`
+---@field OnAddedToGUIUpdateList (System.Action*1Barotrauma*GUIComponent)|(fun(obj:Barotrauma.GUIComponent))
+---`Field NonPublic Instance`
+---@field alignment Barotrauma.Alignment
+---`Field NonPublic Instance`
+---@field styleHierarchy (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field CanBeFocused System.Boolean
+---`Field NonPublic Instance`
+---@field color Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field hoverColor Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field selectedColor Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field disabledColor Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field pressedColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field pulsateCoroutine Barotrauma.CoroutineHandle
+---`Field NonPublic Instance`
+---@field flashColor Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field flashDuration System.Single
+---`Field Private Instance`
+---@field useRectangleFlash System.Boolean
+---`Field Private Instance`
+---@field useCircularFlash System.Boolean
+---`Field NonPublic Instance`
+---@field flashTimer System.Single
+---`Field Private Instance`
+---@field flashRectInflate Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field ignoreLayoutGroups System.Boolean
+---`Field Private Instance`
+---@field toolTip Barotrauma.RichString
+---`Field NonPublic Instance`
+---@field enabled System.Boolean
+---`Field Public Instance`
+---@field sprites (System.Collections.Generic.Dictionary*1Barotrauma*GUIComponent*ComponentState*1System*Collections*Generic*List*2Barotrauma*UISprite)|({[Barotrauma.GUIComponent.ComponentState]:((System.Collections.Generic.List*1Barotrauma*UISprite)|(Barotrauma.UISprite[]))})
+---`Field Public Instance`
+---@field SpriteEffects Microsoft.Xna.Framework.Graphics.SpriteEffects
+---`Field NonPublic Instance`
+---@field _state Barotrauma.GUIComponent.ComponentState
+---`Field NonPublic Instance`
+---@field _previousState Barotrauma.GUIComponent.ComponentState
+---`Field NonPublic Instance`
+---@field isSelected System.Boolean
+---`Field Public Instance`
+---@field UserData System.Object
+---`Field Private Instance`
+---@field spriteFadeTimer System.Single
+---`Field Private Instance`
+---@field colorFadeTimer System.Single
+---`Field Public Instance`
+---@field ExternalHighlight System.Boolean
+---`Field Private Instance`
+---@field rectTransform Barotrauma.RectTransform
+---`Field NonPublic Instance`
+---@field _currentColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field toolTipBlock Barotrauma.GUITextBlock
+---`Getter Public Instance`
+---@field Parent Barotrauma.GUIComponent
+---`Getter Public Instance`
+---@field Children (System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoUpdate System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoDraw System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UpdateOrder System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Bounce System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GlowOnSelect System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UVOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field FlashTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreLayoutGroups System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ToolTip Barotrauma.RichString
+---`Getter Public Instance`
+---@field Style Barotrauma.GUIComponentStyle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Visible System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClampMouseRectToParent System.Boolean
+---`Getter Public Instance Virtual`
+---@field MouseRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field OutlineColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Selected System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State Barotrauma.GUIComponent.ComponentState
+---`Getter Public Instance`
+---@field CountChildren System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DefaultColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HoverColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SelectedColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field DisabledColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PressedColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ColorTransition Barotrauma.TransitionMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FallBackState Barotrauma.SpriteFallBackState
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteCrossFadeTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ColorCrossFadeTime System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PlaySoundOnSelect System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RectTransform Barotrauma.RectTransform
+_G['GUI']['Component'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['Component'].Draw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['Component'].DrawToolTip = function(spriteBatch) end
+
+---`Method Public Static`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, toolTip:Barotrauma.RichString, pos:Microsoft.Xna.Framework.Vector2, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color, backgroundColor?:System.Nullable*1Microsoft*Xna*Framework*Color)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param toolTip Barotrauma.RichString
+---@param targetElement Microsoft.Xna.Framework.Rectangle
+---@param anchor? Barotrauma.Anchor
+---@param pivot? Barotrauma.Pivot
+_G['GUI']['Component'].DrawToolTip = function(spriteBatch, toolTip, targetElement, anchor, pivot) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Single
+_G['GUI']['Component'].SetAlpha = function(a) end
+
+---`Method Public Instance Virtual`
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param flashDuration? System.Single
+---@param useRectangleFlash? System.Boolean
+---@param useCircularFlash? System.Boolean
+---@param flashRectInflate? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['GUI']['Component'].Flash = function(color, flashDuration, useRectangleFlash, useCircularFlash, flashRectInflate) end
+
+---`Method Public Instance`
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['GUI']['Component'].ImmediateFlash = function(color) end
+
+---`Method Public Instance`
+---@param duration System.Single
+---@param removeAfter System.Boolean
+---@param wait? System.Single
+---@param onRemove? (System.Action)|(fun())
+---@param alsoChildren? System.Boolean
+_G['GUI']['Component'].FadeOut = function(duration, removeAfter, wait, onRemove, alsoChildren) end
+
+---`Method Public Instance`
+---@param wait System.Single
+---@param duration System.Single
+---@param alsoChildren? System.Boolean
+_G['GUI']['Component'].FadeIn = function(wait, duration, alsoChildren) end
+
+---`Method Public Instance`
+---@param wait System.Single
+---@param duration System.Single
+---@param amount System.Int32
+---@param direction Barotrauma.SlideDirection
+_G['GUI']['Component'].SlideIn = function(wait, duration, amount, direction) end
+
+---`Method Public Instance`
+---@param duration System.Single
+---@param amount System.Int32
+---@param direction Barotrauma.SlideDirection
+_G['GUI']['Component'].SlideOut = function(duration, amount, direction) end
+
+---`Method Private Instance`
+---@param duration System.Single
+---@param wait System.Single
+---@param target Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GUI']['Component'].SlideToPosition = function(duration, wait, target) end
+
+---`Method Private Instance`
+---@param to System.Single
+---@param duration System.Single
+---@param removeAfter System.Boolean
+---@param wait? System.Single
+---@param onRemove? (System.Action)|(fun())
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GUI']['Component'].LerpAlpha = function(to, duration, removeAfter, wait, onRemove) end
+
+---`Method Public Instance`
+---@param startScale Microsoft.Xna.Framework.Vector2
+---@param endScale Microsoft.Xna.Framework.Vector2
+---@param duration System.Single
+_G['GUI']['Component'].Pulsate = function(startScale, endScale, duration) end
+
+---`Method Private Instance`
+---@param startScale Microsoft.Xna.Framework.Vector2
+---@param endScale Microsoft.Xna.Framework.Vector2
+---@param duration System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GUI']['Component'].DoPulsate = function(startScale, endScale, duration) end
+
+---`Method Public Instance Virtual`
+---@param style Barotrauma.GUIComponentStyle
+_G['GUI']['Component'].ApplyStyle = function(style) end
+
+---`Method Public Instance`
+---@param style Barotrauma.GUIComponentStyle
+_G['GUI']['Component'].ApplySizeRestrictions = function(style) end
+
+---`Method Public Instance`
+_G['GUI']['Component'].InheritTotalChildrenMinHeight = function() end
+
+---`Method Public Instance`
+_G['GUI']['Component'].InheritTotalChildrenHeight = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIComponent
+_G['GUI']['Component'].FromXML = function(element, parent) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['GUI']['Component'].CheckConditional = function(element) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+---@param overrideText? System.String
+---@param anchor? System.Nullable*1Barotrauma*Anchor
+---@return Barotrauma.GUITextBlock
+_G['GUI']['Component'].LoadGUITextBlock = function(element, parent, overrideText, anchor) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIButton
+_G['GUI']['Component'].LoadLink = function(element, parent) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+_G['GUI']['Component'].LoadGridText = function(element, parent) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIFrame
+_G['GUI']['Component'].LoadGUIFrame = function(element, parent) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIButton
+_G['GUI']['Component'].LoadGUIButton = function(element, parent) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIListBox
+_G['GUI']['Component'].LoadGUIListBox = function(element, parent) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUILayoutGroup
+_G['GUI']['Component'].LoadGUILayoutGroup = function(element, parent) end
+
+---`Method Private Static`
+---@param element Barotrauma.ContentXElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIImage
+_G['GUI']['Component'].LoadGUIImage = function(element, parent) end
+
+---`Method Private Static`
+---@param element Barotrauma.ContentXElement
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIButton
+_G['GUI']['Component'].LoadAccordion = function(element, parent) end
+
+---`Method Public Instance`
+---@overload fun():(Barotrauma.GUIComponent.T)
+---@param index System.Int32
+---@return Barotrauma.GUIComponent
+_G['GUI']['Component'].GetChild = function(index) end
+
+---`Method Public Instance`
+---@return Barotrauma.GUIComponent.T
+_G['GUI']['Component'].GetAnyChild = function() end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent*T)|(fun():(Barotrauma.GUIComponent.T)))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+_G['GUI']['Component'].GetAllChildren = function() end
+
+---`Method Public Instance`
+---@param child Barotrauma.GUIComponent
+---@return System.Int32
+_G['GUI']['Component'].GetChildIndex = function(child) end
+
+---`Method Public Instance`
+---@param obj System.Object
+---@return Barotrauma.GUIComponent
+_G['GUI']['Component'].GetChildByUserData = function(obj) end
+
+---`Method Public Instance`
+---@param component Barotrauma.GUIComponent
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['GUI']['Component'].IsParentOf = function(component, recursive) end
+
+---`Method Public Instance`
+---@param component Barotrauma.GUIComponent
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['GUI']['Component'].IsChildOf = function(component, recursive) end
+
+---`Method Public Instance Virtual`
+---@param child Barotrauma.GUIComponent
+_G['GUI']['Component'].RemoveChild = function(child) end
+
+---`Method Public Instance`
+---@overload fun(predicate:(System.Func*1Barotrauma*GUIComponent*1System*Boolean)|(fun(arg:Barotrauma.GUIComponent):(System.Boolean)), recursive?:System.Boolean):(Barotrauma.GUIComponent)
+---@param userData System.Object
+---@param recursive? System.Boolean
+---@return Barotrauma.GUIComponent
+_G['GUI']['Component'].FindChild = function(userData, recursive) end
+
+---`Method Public Instance`
+---@overload fun(userData:System.Object):((System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent)))
+---@param predicate (System.Func*1Barotrauma*GUIComponent*1System*Boolean)|(fun(arg:Barotrauma.GUIComponent):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+_G['GUI']['Component'].FindChildren = function(predicate) end
+
+---`Method Public Instance Virtual`
+_G['GUI']['Component'].ClearChildren = function() end
+
+---`Method Public Instance`
+_G['GUI']['Component'].SetAsFirstChild = function() end
+
+---`Method Public Instance`
+_G['GUI']['Component'].SetAsLastChild = function() end
+
+---`Method NonPublic Instance`
+---@param r Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['GUI']['Component'].ClampRect = function(r) end
+
+---`Method Public Instance Virtual`
+---@param ignoreChildren? System.Boolean
+---@param order? System.Int32
+_G['GUI']['Component'].AddToGUIUpdateList = function(ignoreChildren, order) end
+
+---`Method Public Instance`
+---@param alsoChildren? System.Boolean
+_G['GUI']['Component'].RemoveFromGUIUpdateList = function(alsoChildren) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['GUI']['Component'].UpdateAuto = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+_G['GUI']['Component'].UpdateManually = function(deltaTime, alsoChildren, recursive) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['Component'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['GUI']['Component'].ForceLayoutRecalculation = function() end
+
+---`Method Public Instance`
+_G['GUI']['Component'].ForceUpdate = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param recursive System.Boolean
+_G['GUI']['Component'].UpdateChildren = function(deltaTime, recursive) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['Component'].DrawAuto = function(spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+_G['GUI']['Component'].DrawManually = function(spriteBatch, alsoChildren, recursive) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param recursive System.Boolean
+_G['GUI']['Component'].DrawChildren = function(spriteBatch, recursive) end
+
+---`Method NonPublic Instance Virtual`
+---@param state Barotrauma.GUIComponent.ComponentState
+---@return Microsoft.Xna.Framework.Color
+_G['GUI']['Component'].GetColor = function(state) end
+
+---`Method NonPublic Instance`
+---@param targetColor Microsoft.Xna.Framework.Color
+---@param blendedColor Microsoft.Xna.Framework.Color-ref
+---@return Microsoft.Xna.Framework.Color
+_G['GUI']['Component'].GetBlendedColor = function(targetColor, blendedColor) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(style:System.String, rectT:Barotrauma.RectTransform):Barotrauma.GUIComponent
+---@param style System.String
+---@return Barotrauma.GUIComponent
+_G['GUI']['Component'] = function(style) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(style:System.String, rectT:Barotrauma.RectTransform):Barotrauma.GUIComponent
+---@param style System.String
+---@return Barotrauma.GUIComponent
+_G['GUI']['Component'].__new = function(style) end
+
diff --git a/Meta/Types/client/_00007FFD97CB97B0.lua b/Meta/Types/client/_00007FFD97CB97B0.lua
new file mode 100644
index 0000000..d3decc6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB97B0.lua
@@ -0,0 +1,239 @@
+---@meta
+---@class Barotrauma.SerializableEntityEditor : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field elementHeight System.Int32
+---`Field Private Instance`
+---@field layoutGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field inputFieldWidth System.Single
+---`Field Private Instance`
+---@field largeInputFieldWidth System.Single
+---`Field Private Instance`
+---@field isReadonly System.Boolean
+---`Field Private Instance`
+---@field refresh (System.Action)|(fun())
+---`Field Public Static`
+---@field MissingLocalizations (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Public Static`
+---@field LockEditing System.Boolean
+---`Field Public Static`
+---@field PropertyChangesActive System.Boolean
+---`Field Public Static`
+---@field NextCommandPush System.DateTime
+---`Field Public Static`
+---@field CommandBuffer System.Tuple*1Barotrauma*SerializableProperty*1Barotrauma*PropertyCommand
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Readonly System.Boolean
+---`Getter Public Instance`
+---@field ContentHeight System.Int32
+---`Getter Public Instance`
+---@field ContentCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Fields (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUIComponent-arr)|({[Barotrauma.Identifier]:((Barotrauma.GUIComponent-arr)|(Barotrauma.GUIComponent[]))})
+_G['SerializableEntityEditor'] = {}
+
+---`Method Public Instance`
+---@param property Barotrauma.SerializableProperty
+---@param newValue System.Object
+---@param flash? System.Boolean
+_G['SerializableEntityEditor'].UpdateValue = function(property, newValue, flash) end
+
+---`Method Public Instance`
+---@param component Barotrauma.GUIComponent
+---@param childIndex System.Int32
+_G['SerializableEntityEditor'].AddCustomContent = function(component, childIndex) end
+
+---`Method Public Instance`
+_G['SerializableEntityEditor'].RefreshValues = function() end
+
+---`Method Public Instance`
+_G['SerializableEntityEditor'].Recalculate = function() end
+
+---`Method Public Instance`
+---@param property Barotrauma.SerializableProperty
+---@param entity Barotrauma.ISerializableEntity
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateNewField = function(property, entity) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.Boolean
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateBoolField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.Int32
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateIntField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.Single
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateFloatField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Private Static`
+---@param numberInput Barotrauma.GUINumberInput
+---@param getter (System.Func*1System*Single)|(fun():(System.Single))
+_G['SerializableEntityEditor'].HandleSetterValueTampering = function(numberInput, getter) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.Object
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateEnumField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.Object
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateEnumFlagField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.String
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateStringField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value Microsoft.Xna.Framework.Point
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreatePointField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value Microsoft.Xna.Framework.Vector2
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateVector2Field = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value Microsoft.Xna.Framework.Vector3
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateVector3Field = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value Microsoft.Xna.Framework.Vector4
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateVector4Field = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value Microsoft.Xna.Framework.Color
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateColorField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value Microsoft.Xna.Framework.Rectangle
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateRectangleField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value (System.String-arr)|(System.String[])
+---@param displayName Barotrauma.LocalizedString
+---@param toolTip Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['SerializableEntityEditor'].CreateStringArrayField = function(entity, property, value, displayName, toolTip) end
+
+---`Method Public Instance`
+---@param textTag System.String
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param textBox Barotrauma.GUITextBox
+_G['SerializableEntityEditor'].CreateTextPicker = function(textTag, entity, property, textBox) end
+
+---`Method Private Static`
+---@param entity Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+_G['SerializableEntityEditor'].TrySendNetworkUpdate = function(entity, property) end
+
+---`Method Private Instance`
+---@param property Barotrauma.SerializableProperty
+---@param entity System.Object
+---@param value System.Object
+---@return System.Boolean
+_G['SerializableEntityEditor'].SetPropertyValue = function(property, entity, value) end
+
+---`Method Public Static`
+---@param entity System.Object
+---@return System.Boolean
+_G['SerializableEntityEditor'].IsEntityRemoved = function(entity) end
+
+---`Method Public Static`
+_G['SerializableEntityEditor'].CommitCommandBuffer = function() end
+
+---`Method Private Instance`
+---@param property Barotrauma.SerializableProperty
+---@param parentObject System.Object
+---@param value System.Object
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*ISerializableEntity*1System*Object)|({[Barotrauma.ISerializableEntity]:(System.Object)})
+_G['SerializableEntityEditor'].MultiSetProperties = function(property, parentObject, value) end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, inGame:System.Boolean, showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, properties:(System.Collections.Generic.IEnumerable*1Barotrauma*SerializableProperty)|(fun():(Barotrauma.SerializableProperty)), showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@return Barotrauma.SerializableEntityEditor
+_G['SerializableEntityEditor'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, inGame:System.Boolean, showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, properties:(System.Collections.Generic.IEnumerable*1Barotrauma*SerializableProperty)|(fun():(Barotrauma.SerializableProperty)), showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@return Barotrauma.SerializableEntityEditor
+_G['SerializableEntityEditor'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, inGame:System.Boolean, showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, properties:(System.Collections.Generic.IEnumerable*1Barotrauma*SerializableProperty)|(fun():(Barotrauma.SerializableProperty)), showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@return Barotrauma.SerializableEntityEditor
+_G['SerializableEntityEditor'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, inGame:System.Boolean, showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@overload fun(parent:Barotrauma.RectTransform, entity:Barotrauma.ISerializableEntity, properties:(System.Collections.Generic.IEnumerable*1Barotrauma*SerializableProperty)|(fun():(Barotrauma.SerializableProperty)), showName:System.Boolean, style?:System.String, elementHeight?:System.Int32, titleFont?:Barotrauma.GUIFont):Barotrauma.SerializableEntityEditor
+---@return Barotrauma.SerializableEntityEditor
+_G['SerializableEntityEditor'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CB9C00.lua b/Meta/Types/client/_00007FFD97CB9C00.lua
new file mode 100644
index 0000000..420933a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CB9C00.lua
@@ -0,0 +1,149 @@
+---@meta
+---@class Barotrauma.SerializableProperty : System.Object
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field Attributes System.ComponentModel.AttributeCollection
+---`Field Public Instance`
+---@field PropertyType System.Type
+---`Field Public Instance`
+---@field OverridePrefabValues System.Boolean
+---`Field Public Instance`
+---@field PropertyInfo System.Reflection.PropertyInfo
+---`Field Private Instance`
+---@field valueGetters (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*Object*2System*Object)|({[Barotrauma.Identifier]:((System.Func*1System*Object*1System*Object)|(fun(arg:System.Object):(System.Object)))})
+---`Field Private Static`
+---@field supportedTypes (System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*String)|({[System.Type]:(System.String)})
+---`Field Private Static`
+---@field cachedProperties (System.Collections.Generic.Dictionary*1System*Type*1System*Collections*Generic*Dictionary*2Barotrauma*Identifier*2Barotrauma*SerializableProperty)|({[System.Type]:((System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)}))})
+_G['SerializableProperty'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.SerializableProperty.T
+_G['SerializableProperty'].GetAttribute = function() end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@param val System.Object
+_G['SerializableProperty'].SetValue = function(parentObject, val) end
+
+---`Method Public Instance`
+---@overload fun(parentObject:System.Object, value:System.String):(System.Boolean)
+---@overload fun(parentObject:System.Object, value:System.Object):(System.Boolean)
+---@overload fun(parentObject:System.Object, value:System.Single):(System.Boolean)
+---@overload fun(parentObject:System.Object, value:System.Boolean):(System.Boolean)
+---@param parentObject System.Object
+---@param value System.Int32
+---@return System.Boolean
+_G['SerializableProperty'].TrySetValue = function(parentObject, value) end
+
+---`Method Private Static`
+---@param stringArrayValues System.String
+---@return (System.String-arr)|(System.String[])
+_G['SerializableProperty'].ParseStringArray = function(stringArrayValues) end
+
+---`Method Private Static`
+---@param stringArrayValues System.String
+---@return (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+_G['SerializableProperty'].ParseIdentifierArray = function(stringArrayValues) end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@return System.Object
+_G['SerializableProperty'].GetValue = function(parentObject) end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@return System.Single
+_G['SerializableProperty'].GetFloatValue = function(parentObject) end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@return System.Boolean
+_G['SerializableProperty'].GetBoolValue = function(parentObject) end
+
+---`Method Public Static`
+---@param type System.Type
+---@return System.String
+_G['SerializableProperty'].GetSupportedTypeName = function(type) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@return System.Object
+_G['SerializableProperty'].TryGetValueWithoutReflection = function(parentObject) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Single-ref
+---@return System.Boolean
+_G['SerializableProperty'].TryGetFloatValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Boolean-ref
+---@return System.Boolean
+_G['SerializableProperty'].TryGetBoolValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.String-ref
+---@return System.Boolean
+_G['SerializableProperty'].TryGetStringValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Single
+---@return System.Boolean
+_G['SerializableProperty'].TrySetFloatValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Boolean
+---@return System.Boolean
+_G['SerializableProperty'].TrySetBoolValueWithoutReflection = function(parentObject, value) end
+
+---`Method Public Static`
+---@overload fun(obj:Barotrauma.ISerializableEntity):((System.Collections.Generic.List*1Barotrauma*SerializableProperty)|(Barotrauma.SerializableProperty[]))
+---@param obj System.Object
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['SerializableProperty'].GetProperties = function(obj) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@param element? System.Xml.Linq.XElement
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['SerializableProperty'].DeserializeProperties = function(obj, element) end
+
+---`Method Public Static`
+---@param obj Barotrauma.ISerializableEntity
+---@param element System.Xml.Linq.XElement
+---@param saveIfDefault? System.Boolean
+---@param ignoreEditable? System.Boolean
+_G['SerializableProperty'].SerializeProperties = function(obj, element, saveIfDefault, ignoreEditable) end
+
+---`Method Public Static`
+---@param entity Barotrauma.ISerializableEntity
+---@param configElement Barotrauma.ContentXElement
+---@param savedVersion System.Version
+_G['SerializableProperty'].UpgradeGameVersion = function(entity, configElement, savedVersion) end
+
+---`Constructor Public Instance`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CBA020.lua b/Meta/Types/client/_00007FFD97CBA020.lua
new file mode 100644
index 0000000..f08391f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBA020.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.Range*1System*Single : System.ValueType
+---`Field Private Instance`
+---@field start System.Single
+---`Field Private Instance`
+---@field end System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Start System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field End System.Single
+_G['Range*1System*Single'] = {}
+
+---`Method Public Instance`
+---@param v System.Single-ref
+---@return System.Boolean
+_G['Range*1System*Single'].Contains = function(v) end
+
+---`Method Private Instance`
+_G['Range*1System*Single'].VerifyStartLessThanEnd = function() end
+
+---`Method Private Instance`
+_G['Range*1System*Single'].VerifyEndGreaterThanStart = function() end
+
+---`Constructor Public Instance`
+---@param start System.Single
+---@param luaKey__end System.Single
+---@return Barotrauma.Range*1System*Single
+_G['Range*1System*Single'] = function(start, luaKey__end) end
+
+---`Constructor Public Instance`
+---@param start System.Single
+---@param luaKey__end System.Single
+---@return Barotrauma.Range*1System*Single
+_G['Range*1System*Single'].__new = function(start, luaKey__end) end
+
diff --git a/Meta/Types/client/_00007FFD97CBA2B8.lua b/Meta/Types/client/_00007FFD97CBA2B8.lua
new file mode 100644
index 0000000..21a9577
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBA2B8.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.Range*1System*Int32 : System.ValueType
+---`Field Private Instance`
+---@field start System.Int32
+---`Field Private Instance`
+---@field end System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Start System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field End System.Int32
+_G['Range*1System*Int32'] = {}
+
+---`Method Public Instance`
+---@param v System.Int32-ref
+---@return System.Boolean
+_G['Range*1System*Int32'].Contains = function(v) end
+
+---`Method Private Instance`
+_G['Range*1System*Int32'].VerifyStartLessThanEnd = function() end
+
+---`Method Private Instance`
+_G['Range*1System*Int32'].VerifyEndGreaterThanStart = function() end
+
+---`Constructor Public Instance`
+---@param start System.Int32
+---@param luaKey__end System.Int32
+---@return Barotrauma.Range*1System*Int32
+_G['Range*1System*Int32'] = function(start, luaKey__end) end
+
+---`Constructor Public Instance`
+---@param start System.Int32
+---@param luaKey__end System.Int32
+---@return Barotrauma.Range*1System*Int32
+_G['Range*1System*Int32'].__new = function(start, luaKey__end) end
+
diff --git a/Meta/Types/client/_00007FFD97CBA988.lua b/Meta/Types/client/_00007FFD97CBA988.lua
new file mode 100644
index 0000000..89d4936
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBA988.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.LanguageIdentifier : System.ValueType
+---`Field Public Instance`
+---@field Value Barotrauma.Identifier
+---`Field Public Static`
+---@field None Barotrauma.LanguageIdentifier
+---`Getter Public Instance`
+---@field ValueHash System.Int32
+_G['LanguageIdentifier'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LanguageIdentifier'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LanguageIdentifier'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LanguageIdentifier'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CBAA28.lua b/Meta/Types/client/_00007FFD97CBAA28.lua
new file mode 100644
index 0000000..cac540f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBAA28.lua
@@ -0,0 +1,138 @@
+---@meta
+---@class Barotrauma.LocalizedString : System.Object
+---@operator add(Barotrauma.LocalizedString):Barotrauma.LocalizedString
+---@operator add(System.Object):Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field languageVersion System.Int32
+---`Field NonPublic Instance`
+---@field cachedValue System.String
+---`Field Public Static`
+---@field EmptyString Barotrauma.RawLString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Getter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---@field Length System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Loaded System.Boolean
+_G['LocalizedString'] = {}
+
+---`Method NonPublic Instance`
+_G['LocalizedString'].UpdateLanguage = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['LocalizedString'].MustRetrieveValue = function() end
+
+---`Method NonPublic Static`
+---@param str Barotrauma.LocalizedString
+---@return System.Boolean
+_G['LocalizedString'].MustRetrieveValue = function(str) end
+
+---`Method Public Instance Abstract Virtual`
+_G['LocalizedString'].RetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LocalizedString'].ToString = function() end
+
+---`Method Public Instance`
+---@overload fun(subStr:System.String, comparison?:System.StringComparison):(System.Boolean)
+---@param chr System.Char
+---@param comparison? System.StringComparison
+---@return System.Boolean
+_G['LocalizedString'].Contains = function(chr, comparison) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].ToUpper = function() end
+
+---`Method Public Static`
+---@overload fun(separator:System.String, ...:Barotrauma.LocalizedString):(Barotrauma.LocalizedString)
+---@param separator System.String
+---@param subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].Join = function(separator, subStrs) end
+
+---`Method Public Instance`
+---@param fallback Barotrauma.LocalizedString
+---@param useDefaultLanguageIfFound? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].Fallback = function(fallback, useDefaultLanguageIfFound) end
+
+---`Method Public Instance`
+---@param ... System.Char
+---@return (System.Collections.Generic.IReadOnlyList*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+_G['LocalizedString'].Split = function(...) end
+
+---`Method Public Instance`
+---@overload fun(find:Barotrauma.Identifier, replace:Barotrauma.LocalizedString, stringComparison?:System.StringComparison):(Barotrauma.LocalizedString)
+---@overload fun(find:System.String, replace:Barotrauma.LocalizedString, stringComparison?:System.StringComparison):(Barotrauma.LocalizedString)
+---@param find Barotrauma.LocalizedString
+---@param replace Barotrauma.LocalizedString
+---@param stringComparison? System.StringComparison
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].Replace = function(find, replace, stringComparison) end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].TrimStart = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].TrimEnd = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].ToLower = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LocalizedString'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@overload fun(other:Barotrauma.LocalizedString, comparison?:System.StringComparison):(System.Boolean)
+---@param other System.String
+---@param comparison? System.StringComparison
+---@return System.Boolean
+_G['LocalizedString'].Equals = function(other, comparison) end
+
+---`Method Public Instance`
+---@overload fun(other:Barotrauma.LocalizedString, comparison?:System.StringComparison):(System.Boolean)
+---@param other System.String
+---@param comparison? System.StringComparison
+---@return System.Boolean
+_G['LocalizedString'].StartsWith = function(other, comparison) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LocalizedString'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Int32
+_G['LocalizedString'].CompareTo = function(obj) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CBABA8.lua b/Meta/Types/client/_00007FFD97CBABA8.lua
new file mode 100644
index 0000000..2c0b746
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBABA8.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.AddedPunctuationLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStrs (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field punctuationSymbol System.Char
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['AddedPunctuationLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['AddedPunctuationLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param symbol System.Char
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.AddedPunctuationLString
+_G['AddedPunctuationLString'] = function(symbol, ...) end
+
+---`Constructor Public Instance`
+---@param symbol System.Char
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.AddedPunctuationLString
+_G['AddedPunctuationLString'].__new = function(symbol, ...) end
+
diff --git a/Meta/Types/client/_00007FFD97CBB4B0.lua b/Meta/Types/client/_00007FFD97CBB4B0.lua
new file mode 100644
index 0000000..37078ef
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBB4B0.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.CapitalizeLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['CapitalizeLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['CapitalizeLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@return Barotrauma.CapitalizeLString
+_G['CapitalizeLString'] = function(nStr) end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@return Barotrauma.CapitalizeLString
+_G['CapitalizeLString'].__new = function(nStr) end
+
diff --git a/Meta/Types/client/_00007FFD97CBB688.lua b/Meta/Types/client/_00007FFD97CBB688.lua
new file mode 100644
index 0000000..e0b8dad
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBB688.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.ConcatLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field left Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field right Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['ConcatLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['ConcatLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param l Barotrauma.LocalizedString
+---@param r Barotrauma.LocalizedString
+---@return Barotrauma.ConcatLString
+_G['ConcatLString'] = function(l, r) end
+
+---`Constructor Public Instance`
+---@param l Barotrauma.LocalizedString
+---@param r Barotrauma.LocalizedString
+---@return Barotrauma.ConcatLString
+_G['ConcatLString'].__new = function(l, r) end
+
diff --git a/Meta/Types/client/_00007FFD97CBB8D8.lua b/Meta/Types/client/_00007FFD97CBB8D8.lua
new file mode 100644
index 0000000..345173e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBB8D8.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.FallbackLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field primary Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field fallback Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field useDefaultLanguageIfFound System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PrimaryIsLoaded System.Boolean
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['FallbackLString'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['FallbackLString'].MustRetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+_G['FallbackLString'].RetrieveValue = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['FallbackLString'].GetLastFallback = function() end
+
+---`Constructor Public Instance`
+---@param primary Barotrauma.LocalizedString
+---@param fallback Barotrauma.LocalizedString
+---@param useDefaultLanguageIfFound? System.Boolean
+---@return Barotrauma.FallbackLString
+_G['FallbackLString'] = function(primary, fallback, useDefaultLanguageIfFound) end
+
+---`Constructor Public Instance`
+---@param primary Barotrauma.LocalizedString
+---@param fallback Barotrauma.LocalizedString
+---@param useDefaultLanguageIfFound? System.Boolean
+---@return Barotrauma.FallbackLString
+_G['FallbackLString'].__new = function(primary, fallback, useDefaultLanguageIfFound) end
+
diff --git a/Meta/Types/client/_00007FFD97CBBAC0.lua b/Meta/Types/client/_00007FFD97CBBAC0.lua
new file mode 100644
index 0000000..624393b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBBAC0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.FormattedLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field str Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field subStrs (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['FormattedLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['FormattedLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param str Barotrauma.LocalizedString
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.FormattedLString
+_G['FormattedLString'] = function(str, ...) end
+
+---`Constructor Public Instance`
+---@param str Barotrauma.LocalizedString
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.FormattedLString
+_G['FormattedLString'].__new = function(str, ...) end
+
diff --git a/Meta/Types/client/_00007FFD97CBBCA8.lua b/Meta/Types/client/_00007FFD97CBBCA8.lua
new file mode 100644
index 0000000..a80f989
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBBCA8.lua
@@ -0,0 +1,29 @@
+---@meta
+---@class Barotrauma.InputTypeLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field useColorHighlight System.Boolean
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['InputTypeLString'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['InputTypeLString'].MustRetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+_G['InputTypeLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@param useColorHighlight? System.Boolean
+---@return Barotrauma.InputTypeLString
+_G['InputTypeLString'] = function(nStr, useColorHighlight) end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@param useColorHighlight? System.Boolean
+---@return Barotrauma.InputTypeLString
+_G['InputTypeLString'].__new = function(nStr, useColorHighlight) end
+
diff --git a/Meta/Types/client/_00007FFD97CBBE80.lua b/Meta/Types/client/_00007FFD97CBBE80.lua
new file mode 100644
index 0000000..0273f0e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBBE80.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.JoinLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---`Field Private Instance`
+---@field separator System.String
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['JoinLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['JoinLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param separator System.String
+---@param subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---@return Barotrauma.JoinLString
+_G['JoinLString'] = function(separator, subStrs) end
+
+---`Constructor Public Instance`
+---@param separator System.String
+---@param subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---@return Barotrauma.JoinLString
+_G['JoinLString'].__new = function(separator, subStrs) end
+
diff --git a/Meta/Types/client/_00007FFD97CBC0C0.lua b/Meta/Types/client/_00007FFD97CBC0C0.lua
new file mode 100644
index 0000000..dc34b15
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBC0C0.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.LowerLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['LowerLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['LowerLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.LowerLString
+_G['LowerLString'] = function(nestedStr) end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.LowerLString
+_G['LowerLString'].__new = function(nestedStr) end
+
diff --git a/Meta/Types/client/_00007FFD97CBC278.lua b/Meta/Types/client/_00007FFD97CBC278.lua
new file mode 100644
index 0000000..a60a211
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBC278.lua
@@ -0,0 +1,23 @@
+---@meta
+---@class Barotrauma.RawLString : Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['RawLString'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['RawLString'].MustRetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+_G['RawLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.RawLString
+_G['RawLString'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.RawLString
+_G['RawLString'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97CBC4C0.lua b/Meta/Types/client/_00007FFD97CBC4C0.lua
new file mode 100644
index 0000000..bf3067d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBC4C0.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.ReplaceLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field replacements (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*LocalizedString*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|({[Barotrauma.LocalizedString]:(System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals)})
+---`Field Private Instance`
+---@field stringComparison System.StringComparison
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['ReplaceLString'] = {}
+
+---`Method Private Static`
+---@param text System.String
+---@param variableTag System.String
+---@param variableValue System.String
+---@return System.String
+_G['ReplaceLString'].HandleVariableCapitalization = function(text, variableTag, variableValue) end
+
+---`Method Public Instance Virtual`
+_G['ReplaceLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, ...:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@param nStr Barotrauma.LocalizedString
+---@param sc System.StringComparison
+---@param ... System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString
+---@return Barotrauma.ReplaceLString
+_G['ReplaceLString'] = function(nStr, sc, ...) end
+
+---`Constructor Public Instance`
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, ...:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@param nStr Barotrauma.LocalizedString
+---@param sc System.StringComparison
+---@param ... System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString
+---@return Barotrauma.ReplaceLString
+_G['ReplaceLString'].__new = function(nStr, sc, ...) end
+
diff --git a/Meta/Types/client/_00007FFD97CBC888.lua b/Meta/Types/client/_00007FFD97CBC888.lua
new file mode 100644
index 0000000..ef8b9f8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBC888.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.ServerMsgLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field serverMessage System.String
+---`Field Private Instance`
+---@field messageSplit (System.Collections.Immutable.ImmutableArray*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field loadedSuccessfully Barotrauma.LocalizedString.LoadedSuccessfully
+---`Field Private Static`
+---@field reFormattedMessage System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field reReplacedMessage System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field messageFormatters (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*String*2System*String)|({[Barotrauma.Identifier]:((System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String)))})
+---`Field Private Static`
+---@field serverMessageCharacters (System.Collections.Immutable.ImmutableHashSet*1System*Char)|(System.Char[])
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['ServerMsgLString'] = {}
+
+---`Method Private Static`
+---@param message System.String
+---@return System.Boolean
+_G['ServerMsgLString'].IsServerMessageWithVariables = function(message) end
+
+---`Method Public Instance Virtual`
+_G['ServerMsgLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CBCA70.lua b/Meta/Types/client/_00007FFD97CBCA70.lua
new file mode 100644
index 0000000..38c6c64
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBCA70.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.SplitLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field loaded System.Boolean
+---`Field Private Instance`
+---@field splitter Barotrauma.LStringSplitter
+---`Field Private Instance`
+---@field index System.Int32
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['SplitLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['SplitLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param splitter Barotrauma.LStringSplitter
+---@param index System.Int32
+---@return Barotrauma.SplitLString
+_G['SplitLString'] = function(splitter, index) end
+
+---`Constructor Public Instance`
+---@param splitter Barotrauma.LStringSplitter
+---@param index System.Int32
+---@return Barotrauma.SplitLString
+_G['SplitLString'].__new = function(splitter, index) end
+
diff --git a/Meta/Types/client/_00007FFD97CBE320.lua b/Meta/Types/client/_00007FFD97CBE320.lua
new file mode 100644
index 0000000..4efc989
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBE320.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.TagLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field tags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field loadedSuccessfully Barotrauma.LocalizedString.LoadedSuccessfully
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UsingDefaultLanguageAsFallback System.Boolean
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['TagLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['TagLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param ... Barotrauma.Identifier
+---@return Barotrauma.TagLString
+_G['TagLString'] = function(...) end
+
+---`Constructor Public Instance`
+---@param ... Barotrauma.Identifier
+---@return Barotrauma.TagLString
+_G['TagLString'].__new = function(...) end
+
diff --git a/Meta/Types/client/_00007FFD97CBEDD0.lua b/Meta/Types/client/_00007FFD97CBEDD0.lua
new file mode 100644
index 0000000..402c8fd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBEDD0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.TrimLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field mode Barotrauma.TrimLString.Mode
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['TrimLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['TrimLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@param mode Barotrauma.TrimLString.Mode
+---@return Barotrauma.TrimLString
+_G['TrimLString'] = function(nestedStr, mode) end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@param mode Barotrauma.TrimLString.Mode
+---@return Barotrauma.TrimLString
+_G['TrimLString'].__new = function(nestedStr, mode) end
+
diff --git a/Meta/Types/client/_00007FFD97CBEFA8.lua b/Meta/Types/client/_00007FFD97CBEFA8.lua
new file mode 100644
index 0000000..e2584cb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBEFA8.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.UpperLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['UpperLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['UpperLString'].RetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['UpperLString'].ToUpper = function() end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.UpperLString
+_G['UpperLString'] = function(nestedStr) end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.UpperLString
+_G['UpperLString'].__new = function(nestedStr) end
+
diff --git a/Meta/Types/client/_00007FFD97CBF748.lua b/Meta/Types/client/_00007FFD97CBF748.lua
new file mode 100644
index 0000000..68b941a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBF748.lua
@@ -0,0 +1,104 @@
+---@meta
+---@class Barotrauma.RichString : System.Object
+---`Field NonPublic Instance`
+---@field loaded System.Boolean
+---`Field NonPublic Instance`
+---@field language Barotrauma.LanguageIdentifier
+---`Field Private Instance`
+---@field languageVersion System.Int32
+---`Field NonPublic Instance`
+---@field cachedSanitizedValue System.String
+---`Field Private Instance`
+---@field postProcess (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---`Field Private Instance`
+---@field shouldParseRichTextData System.Boolean
+---`Field Private Instance`
+---@field originalStr Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SanitizedString Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field font Barotrauma.GUIFont
+---`Field Private Instance`
+---@field componentStyle Barotrauma.GUIComponentStyle
+---`Field Private Instance`
+---@field forceUpperCase System.Boolean
+---`Getter Public Instance`
+---@field SanitizedValue System.String
+---`Getter Public Instance`
+---@field Length System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NestedStr Barotrauma.LocalizedString
+---`Getter Private Instance`
+---@field FontOrStyleForceUpperCase System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RichTextData System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*RichTextData
+_G['RichString'] = {}
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@param postProcess? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---@return Barotrauma.RichString
+_G['RichString'].Rich = function(str, postProcess) end
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.RichString
+_G['RichString'].Plain = function(str) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['RichString'].MustRetrieveValue = function() end
+
+---`Method Public Instance`
+_G['RichString'].RetrieveValue = function() end
+
+---`Method Public Instance`
+---@param font Barotrauma.GUIFont
+---@param componentStyle Barotrauma.GUIComponentStyle
+---@return Barotrauma.RichString
+_G['RichString'].CaseTiedToFontAndStyle = function(font, componentStyle) end
+
+---`Method Public Instance`
+---@return Barotrauma.RichString
+_G['RichString'].ToUpper = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.RichString
+_G['RichString'].ToLower = function() end
+
+---`Method Public Instance`
+---@param from System.String
+---@param to System.String
+---@param stringComparison? System.StringComparison
+---@return Barotrauma.RichString
+_G['RichString'].Replace = function(from, to, stringComparison) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['RichString'].ToString = function() end
+
+---`Method Public Instance`
+---@overload fun(str:System.String, stringComparison?:System.StringComparison):(System.Boolean)
+---@param chr System.Char
+---@param stringComparison? System.StringComparison
+---@return System.Boolean
+_G['RichString'].Contains = function(chr, stringComparison) end
+
+---`Constructor Private Instance`
+---@overload fun(nestedStr:Barotrauma.LocalizedString, shouldParseRichTextData:System.Boolean, postProcess?:(System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String)), font?:Barotrauma.GUIFont, componentStyle?:Barotrauma.GUIComponentStyle):Barotrauma.RichString
+---@param nestedStr Barotrauma.LocalizedString
+---@param shouldParseRichTextData System.Boolean
+---@param postProcess? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---@return Barotrauma.RichString
+_G['RichString'] = function(nestedStr, shouldParseRichTextData, postProcess) end
+
+---`Constructor Private Instance`
+---@overload fun(nestedStr:Barotrauma.LocalizedString, shouldParseRichTextData:System.Boolean, postProcess?:(System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String)), font?:Barotrauma.GUIFont, componentStyle?:Barotrauma.GUIComponentStyle):Barotrauma.RichString
+---@param nestedStr Barotrauma.LocalizedString
+---@param shouldParseRichTextData System.Boolean
+---@param postProcess? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---@return Barotrauma.RichString
+_G['RichString'].__new = function(nestedStr, shouldParseRichTextData, postProcess) end
+
diff --git a/Meta/Types/client/_00007FFD97CBF878.lua b/Meta/Types/client/_00007FFD97CBF878.lua
new file mode 100644
index 0000000..8dc8f70
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CBF878.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.RichTextData : System.Object
+---`Field Public Instance`
+---@field StartIndex System.Int32
+---`Field Public Instance`
+---@field EndIndex System.Int32
+---`Field Public Instance`
+---@field Color System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Public Instance`
+---@field Metadata System.String
+---`Field Public Instance`
+---@field Alpha System.Single
+---`Field Private Static`
+---@field definitionIndicator System.Char
+---`Field Private Static`
+---@field attributeSeparator System.Char
+---`Field Private Static`
+---@field keyValueSeparator System.Char
+---`Field Private Static`
+---@field colorDefinition System.String
+---`Field Private Static`
+---@field metadataDefinition System.String
+---`Field Private Static`
+---@field endDefinition System.String
+_G['RichTextData'] = {}
+
+---`Method Public Static`
+---@param text System.String
+---@param sanitizedText System.String-ref
+---@return System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*RichTextData
+_G['RichTextData'].GetRichTextData = function(text, sanitizedText) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.RichTextData
+_G['RichTextData'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.RichTextData
+_G['RichTextData'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD0250.lua b/Meta/Types/client/_00007FFD97CD0250.lua
new file mode 100644
index 0000000..c2c2c3b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD0250.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.StripRichTagsLString : Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field RichStr Barotrauma.RichString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['StripRichTagsLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['StripRichTagsLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param richStr Barotrauma.RichString
+---@return Barotrauma.StripRichTagsLString
+_G['StripRichTagsLString'] = function(richStr) end
+
+---`Constructor Public Instance`
+---@param richStr Barotrauma.RichString
+---@return Barotrauma.StripRichTagsLString
+_G['StripRichTagsLString'].__new = function(richStr) end
+
diff --git a/Meta/Types/client/_00007FFD97CD20C0.lua b/Meta/Types/client/_00007FFD97CD20C0.lua
new file mode 100644
index 0000000..845538b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD20C0.lua
@@ -0,0 +1,186 @@
+---@meta
+---@class Barotrauma.TextManager : System.Object
+---`Field Public Static`
+---@field DebugDraw System.Boolean
+---`Field Public Static`
+---@field DefaultLanguage Barotrauma.LanguageIdentifier
+---`Field Public Static`
+---@field TextPacks (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack))
+---`Field Private Static`
+---@field cachedStrings (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*WeakReference*2Barotrauma*TagLString)|({[Barotrauma.Identifier]:(System.WeakReference*1Barotrauma*TagLString)})
+---`Field Private Static`
+---@field nonCacheableTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field SpeciallyHandledCharCategories (System.Collections.Immutable.ImmutableArray*1Barotrauma*TextManager*SpeciallyHandledCharCategory)|(Barotrauma.TextManager.SpeciallyHandledCharCategory[])
+---`Field Private Static`
+---@field SpeciallyHandledCharacterRanges (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*TextManager*SpeciallyHandledCharCategory*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Range*3System*Int32)|({[Barotrauma.TextManager.SpeciallyHandledCharCategory]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[]))})
+---`Getter Public Static`
+---@field AvailableLanguages (System.Collections.Generic.IEnumerable*1Barotrauma*LanguageIdentifier)|(fun():(Barotrauma.LanguageIdentifier))
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LanguageVersion System.Int32
+_G['TextManager'] = {}
+
+---`Method Private Static`
+---@param ... System.Text.Unicode.UnicodeRange
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])
+_G['TextManager'].UnicodeToIntRanges = function(...) end
+
+---`Method Public Static`
+---@overload fun(text:Barotrauma.LocalizedString):(Barotrauma.TextManager.SpeciallyHandledCharCategory)
+---@param text System.String
+---@return Barotrauma.TextManager.SpeciallyHandledCharCategory
+_G['TextManager'].GetSpeciallyHandledCategories = function(text) end
+
+---`Method Public Static`
+---@overload fun(text:Barotrauma.LocalizedString):(System.Boolean)
+---@param text System.String
+---@return System.Boolean
+_G['TextManager'].IsCJK = function(text) end
+
+---`Method Public Static`
+_G['TextManager'].VerifyLanguageAvailable = function() end
+
+---`Method Public Static`
+---@overload fun(tag:System.String):(System.Boolean)
+---@overload fun(tag:Barotrauma.Identifier):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@param language Barotrauma.LanguageIdentifier
+---@return System.Boolean
+_G['TextManager'].ContainsTag = function(tag, language) end
+
+---`Method Public Static`
+---@overload fun(tag:System.String):((System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String)))
+---@param tag Barotrauma.Identifier
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['TextManager'].GetAll = function(tag) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2System*String)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1System*String))
+_G['TextManager'].GetAllTagTextPairs = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['TextManager'].GetTextFiles = function() end
+
+---`Method Private Static`
+---@param directory System.String
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['TextManager'].GetTextFilesRecursive = function(directory) end
+
+---`Method Public Static`
+---@param languageIdentifier Barotrauma.LanguageIdentifier
+---@return System.String
+_G['TextManager'].GetTranslatedLanguageName = function(languageIdentifier) end
+
+---`Method Public Static`
+_G['TextManager'].ClearCache = function() end
+
+---`Method Public Static`
+---@overload fun(...:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@overload fun(tag:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String):(Barotrauma.LocalizedString)
+---@param ... System.String
+---@return Barotrauma.LocalizedString
+_G['TextManager'].Get = function(...) end
+
+---`Method Public Static`
+---@param punctuationSymbol System.Char
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['TextManager'].AddPunctuation = function(punctuationSymbol, ...) end
+
+---`Method Public Static`
+---@overload fun(tag:Barotrauma.Identifier, ...:System.Object):(Barotrauma.LocalizedString)
+---@param str Barotrauma.LocalizedString
+---@param ... System.Object
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetFormatted = function(str, ...) end
+
+---`Method Public Static`
+---@overload fun(str:System.String):(System.String)
+---@param message System.String
+---@param ... System.ValueTuple*1System*String*1System*String
+---@return System.String
+_G['TextManager'].FormatServerMessage = function(message, ...) end
+
+---`Method NonPublic Static`
+---@param charInfo Barotrauma.CharacterInfo
+---@param message System.String
+---@param ... System.ValueTuple*1System*String*1System*String
+---@return System.String
+_G['TextManager'].FormatServerMessageWithPronouns = function(charInfo, message, ...) end
+
+---`Method Public Static`
+---@param separator System.String
+---@param parts (System.String-arr)|(System.String[])
+---@param namePrefix? System.String
+---@return System.String
+_G['TextManager'].JoinServerMessages = function(separator, parts, namePrefix) end
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@param useColorHighlight? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['TextManager'].ParseInputTypes = function(str, useColorHighlight) end
+
+---`Method Public Static`
+---@overload fun(tag:System.String, varName:System.String, value:Barotrauma.LocalizedString, formatCapitals?:Barotrauma.FormatCapitals):(Barotrauma.LocalizedString)
+---@param tag Barotrauma.Identifier
+---@param varName Barotrauma.Identifier
+---@param value Barotrauma.LocalizedString
+---@param formatCapitals? Barotrauma.FormatCapitals
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetWithVariable = function(tag, varName, value, formatCapitals) end
+
+---`Method Public Static`
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1System*String):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1Barotrauma*LocalizedString):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1System*String*1Barotrauma*FormatCapitals):(Barotrauma.LocalizedString)
+---@overload fun(tag:Barotrauma.Identifier, ...:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString):(Barotrauma.LocalizedString)
+---@param tag Barotrauma.Identifier
+---@param replacements (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetWithVariables = function(tag, replacements) end
+
+---`Method Public Static`
+---@param description Barotrauma.LocalizedString-ref
+---@param descriptionElement System.Xml.Linq.XElement
+---@param customTagReplacer? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+_G['TextManager'].ConstructDescription = function(description, descriptionElement, customTagReplacer) end
+
+---`Method Public Static`
+---@param amount System.Int32
+---@param includeCurrencySymbol? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['TextManager'].FormatCurrency = function(amount, includeCurrencySymbol) end
+
+---`Method Public Static`
+---@param serverMessage System.String
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetServerMessage = function(serverMessage) end
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['TextManager'].Capitalize = function(str) end
+
+---`Method Public Static`
+_G['TextManager'].IncrementLanguageVersion = function() end
+
+---`Method Public Static`
+---@param lang Barotrauma.LanguageIdentifier
+_G['TextManager'].CheckForDuplicates = function(lang) end
+
+---`Method Public Static`
+_G['TextManager'].WriteToCSV = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.TextManager
+_G['TextManager'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.TextManager
+_G['TextManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD29B8.lua b/Meta/Types/client/_00007FFD97CD29B8.lua
new file mode 100644
index 0000000..02bacfa
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD29B8.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.TextPack : System.Object
+---`Field Public Instance`
+---@field ContentFile Barotrauma.TextFile
+---`Field Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Field Public Instance`
+---@field Texts (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*TextPack*Text)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text)|(Barotrauma.TextPack.Text[]))})
+---`Field Public Instance`
+---@field TranslatedName System.String
+---`Field Public Instance`
+---@field NoWhitespace System.Boolean
+_G['TextPack'] = {}
+
+---`Method Public Instance`
+---@param index System.Int32
+_G['TextPack'].CheckForDuplicates = function(index) end
+
+---`Method Public Instance`
+---@param index System.Int32
+_G['TextPack'].WriteToCSV = function(index) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.TextFile
+---@param mainElement Barotrauma.ContentXElement
+---@param language Barotrauma.LanguageIdentifier
+---@return Barotrauma.TextPack
+_G['TextPack'] = function(file, mainElement, language) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.TextFile
+---@param mainElement Barotrauma.ContentXElement
+---@param language Barotrauma.LanguageIdentifier
+---@return Barotrauma.TextPack
+_G['TextPack'].__new = function(file, mainElement, language) end
+
diff --git a/Meta/Types/client/_00007FFD97CD2C60.lua b/Meta/Types/client/_00007FFD97CD2C60.lua
new file mode 100644
index 0000000..b4d0955
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD2C60.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.INetSerializableStruct
+_G['INetSerializableStruct'] = {}
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@return Barotrauma.INetSerializableStruct.T
+_G['INetSerializableStruct'].Read = function(inc) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param bitField Barotrauma.ReadOnlyBitField
+---@return Barotrauma.INetSerializableStruct.T
+_G['INetSerializableStruct'].ReadInternal = function(inc, bitField) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['INetSerializableStruct'].Write = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param bitField Barotrauma.WriteOnlyBitField
+_G['INetSerializableStruct'].WriteInternal = function(msg, bitField) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.AccountInfo
+---@param data Barotrauma.T-ref
+---@return System.Boolean
+_G['INetSerializableStruct'].TryRead = function(inc, sender, data) end
+
diff --git a/Meta/Types/client/_00007FFD97CD2E58.lua b/Meta/Types/client/_00007FFD97CD2E58.lua
new file mode 100644
index 0000000..2e1cec5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD2E58.lua
@@ -0,0 +1,50 @@
+---@meta
+---@class Barotrauma.Networking.AccountInfo : System.ValueType
+---`Field Public Instance`
+---@field AccountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---`Field Public Instance`
+---@field OtherMatchingIds (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*AccountId)|(Barotrauma.Networking.AccountId[])
+---`Field Public Static`
+---@field None Barotrauma.Networking.AccountInfo
+---`Getter Public Instance`
+---@field IsNone System.Boolean
+_G['AccountInfo'] = {}
+
+---`Method Public Instance`
+---@param accountId Barotrauma.Networking.AccountId
+---@return System.Boolean
+_G['AccountInfo'].Matches = function(accountId) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['AccountInfo'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['AccountInfo'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD4960.lua b/Meta/Types/client/_00007FFD97CD4960.lua
new file mode 100644
index 0000000..470eb9a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD4960.lua
@@ -0,0 +1,232 @@
+---@meta
+---@class System.Net.IPAddress : System.Object
+---`Field Private Instance`
+---@field _addressOrScopeId System.UInt32
+---`Field Private Instance`
+---@field _numbers (System.UInt16-arr)|(System.UInt16[])
+---`Field Private Instance`
+---@field _toString System.String
+---`Field Private Instance`
+---@field _hashCode System.Int32
+---`Field Public Static`
+---@field Any System.Net.IPAddress
+---`Field Public Static`
+---@field Loopback System.Net.IPAddress
+---`Field Public Static`
+---@field Broadcast System.Net.IPAddress
+---`Field Public Static`
+---@field None System.Net.IPAddress
+---`Field Public Static`
+---@field IPv6Any System.Net.IPAddress
+---`Field Public Static`
+---@field IPv6Loopback System.Net.IPAddress
+---`Field Public Static`
+---@field IPv6None System.Net.IPAddress
+---`Field Private Static`
+---@field s_loopbackMappedToIPv6 System.Net.IPAddress
+---`Getter Private Instance`
+---@field IsIPv4 System.Boolean
+---`Getter Private Instance`
+---@field IsIPv6 System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field PrivateAddress System.UInt32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field PrivateScopeId System.UInt32
+---`Getter Public Instance`
+---@field AddressFamily System.Net.Sockets.AddressFamily
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScopeId System.Int64
+---`Getter Public Instance`
+---@field IsIPv6Multicast System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6LinkLocal System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6SiteLocal System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6Teredo System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6UniqueLocal System.Boolean
+---`Getter Public Instance`
+---@field IsIPv4MappedToIPv6 System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Address System.Int64
+_G['IPAddress'] = {}
+
+---`Method Public Static`
+---@overload fun(ipString:System.String, address:System.Net.IPAddress-ref):(System.Boolean)
+---@param ipSpan System.ReadOnlySpan*1System*Char
+---@param address System.Net.IPAddress-ref
+---@return System.Boolean
+_G['IPAddress'].TryParse = function(ipSpan, address) end
+
+---`Method Public Static`
+---@overload fun(ipString:System.String):(System.Net.IPAddress)
+---@param ipSpan System.ReadOnlySpan*1System*Char
+---@return System.Net.IPAddress
+_G['IPAddress'].Parse = function(ipSpan) end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Byte
+---@param bytesWritten System.Int32-ref
+---@return System.Boolean
+_G['IPAddress'].TryWriteBytes = function(destination, bytesWritten) end
+
+---`Method Private Instance`
+---@param destination System.Span*1System*Byte
+_G['IPAddress'].WriteIPv6Bytes = function(destination) end
+
+---`Method Private Instance`
+---@param destination System.Span*1System*Byte
+_G['IPAddress'].WriteIPv4Bytes = function(destination) end
+
+---`Method Public Instance`
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IPAddress'].GetAddressBytes = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['IPAddress'].ToString = function() end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@return System.Boolean
+_G['IPAddress'].TryFormat = function(destination, charsWritten) end
+
+---`Method Public Static`
+---@overload fun(host:System.Int64):(System.Int64)
+---@overload fun(host:System.Int32):(System.Int32)
+---@param host System.Int16
+---@return System.Int16
+_G['IPAddress'].HostToNetworkOrder = function(host) end
+
+---`Method Public Static`
+---@overload fun(network:System.Int64):(System.Int64)
+---@overload fun(network:System.Int32):(System.Int32)
+---@param network System.Int16
+---@return System.Int16
+_G['IPAddress'].NetworkToHostOrder = function(network) end
+
+---`Method Public Static`
+---@param address System.Net.IPAddress
+---@return System.Boolean
+_G['IPAddress'].IsLoopback = function(address) end
+
+---`Method Public Instance Virtual`
+---@param comparand System.Object
+---@return System.Boolean
+_G['IPAddress'].Equals = function(comparand) end
+
+---`Method NonPublic Instance`
+---@param comparand System.Net.IPAddress
+---@return System.Boolean
+_G['IPAddress'].Equals = function(comparand) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['IPAddress'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@return System.Net.IPAddress
+_G['IPAddress'].MapToIPv6 = function() end
+
+---`Method Public Instance`
+---@return System.Net.IPAddress
+_G['IPAddress'].MapToIPv4 = function() end
+
+---`Method Private Static`
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IPAddress'].ThrowAddressNullException = function() end
+
+---`Constructor Public Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
+---`Constructor Private Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD4B18.lua b/Meta/Types/client/_00007FFD97CD4B18.lua
new file mode 100644
index 0000000..d7cf385
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD4B18.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.Address : System.Object
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Abstract Virtual`
+---@field IsLocalHost System.Boolean
+_G['Address'] = {}
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*Address
+_G['Address'].Parse = function(str) end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Address'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['Address'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Address'].ToString = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.Address
+_G['Address'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.Address
+_G['Address'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD4D18.lua b/Meta/Types/client/_00007FFD97CD4D18.lua
new file mode 100644
index 0000000..310924c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD4D18.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenAddress : Barotrauma.Networking.Address
+---`Field Public Instance`
+---@field NetAddress System.Net.IPAddress
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['LidgrenAddress'] = {}
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenAddress
+_G['LidgrenAddress'].Parse = function(endpointStr) end
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenAddress
+_G['LidgrenAddress'].ParseHostName = function(endpointStr) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LidgrenAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LidgrenAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param netAddress System.Net.IPAddress
+---@return Barotrauma.Networking.LidgrenAddress
+_G['LidgrenAddress'] = function(netAddress) end
+
+---`Constructor Public Instance`
+---@param netAddress System.Net.IPAddress
+---@return Barotrauma.Networking.LidgrenAddress
+_G['LidgrenAddress'].__new = function(netAddress) end
+
diff --git a/Meta/Types/client/_00007FFD97CD4E60.lua b/Meta/Types/client/_00007FFD97CD4E60.lua
new file mode 100644
index 0000000..f03a60f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD4E60.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.Networking.P2PAddress : Barotrauma.Networking.Address
+_G['P2PAddress'] = {}
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*P2PAddress
+_G['P2PAddress'].Parse = function(str) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.P2PAddress
+_G['P2PAddress'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.P2PAddress
+_G['P2PAddress'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD4FA0.lua b/Meta/Types/client/_00007FFD97CD4FA0.lua
new file mode 100644
index 0000000..5f357cd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD4FA0.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.SteamP2PAddress : Barotrauma.Networking.P2PAddress
+---`Field Public Instance`
+---@field SteamId Barotrauma.Networking.SteamId
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['SteamP2PAddress'] = {}
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamP2PAddress
+_G['SteamP2PAddress'].Parse = function(endpointStr) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamP2PAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamP2PAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PAddress
+_G['SteamP2PAddress'] = function(steamId) end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PAddress
+_G['SteamP2PAddress'].__new = function(steamId) end
+
diff --git a/Meta/Types/client/_00007FFD97CD5140.lua b/Meta/Types/client/_00007FFD97CD5140.lua
new file mode 100644
index 0000000..9481142
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD5140.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Networking.PipeAddress : Barotrauma.Networking.Address
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['PipeAddress'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['PipeAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['PipeAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeAddress
+_G['PipeAddress'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeAddress
+_G['PipeAddress'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD52B0.lua b/Meta/Types/client/_00007FFD97CD52B0.lua
new file mode 100644
index 0000000..e5b786e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD52B0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Networking.UnknownAddress : Barotrauma.Networking.Address
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['UnknownAddress'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['UnknownAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['UnknownAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.UnknownAddress
+_G['UnknownAddress'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.UnknownAddress
+_G['UnknownAddress'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD54E0.lua b/Meta/Types/client/_00007FFD97CD54E0.lua
new file mode 100644
index 0000000..feedf1c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD54E0.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Networking.EosP2PAddress : Barotrauma.Networking.P2PAddress
+---`Field Public Instance`
+---@field EosStringRepresentation System.String
+---`Field Private Static`
+---@field prefix System.String
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['EosP2PAddress'] = {}
+
+---`Method Public Static`
+---@param addressStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*EosP2PAddress
+_G['EosP2PAddress'].Parse = function(addressStr) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['EosP2PAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['EosP2PAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EosP2PAddress
+_G['EosP2PAddress'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EosP2PAddress
+_G['EosP2PAddress'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97CD57A8.lua b/Meta/Types/client/_00007FFD97CD57A8.lua
new file mode 100644
index 0000000..910edbc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD57A8.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenEndpoint : Barotrauma.Networking.Endpoint
+---`Field Public Instance`
+---@field NetEndpoint System.Net.IPEndPoint
+---`Getter Public Instance`
+---@field Port System.Int32
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['LidgrenEndpoint'] = {}
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenEndpoint
+_G['LidgrenEndpoint'].Parse = function(endpointStr) end
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@param tryParseHostName System.Boolean
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenEndpoint
+_G['LidgrenEndpoint'].ParseFromWithHostNameCheck = function(endpointStr, tryParseHostName) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LidgrenEndpoint'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LidgrenEndpoint'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@overload fun(address:System.Net.IPAddress, port:System.Int32):Barotrauma.Networking.LidgrenEndpoint
+---@param netEndpoint System.Net.IPEndPoint
+---@return Barotrauma.Networking.LidgrenEndpoint
+_G['LidgrenEndpoint'] = function(netEndpoint) end
+
+---`Constructor Public Instance`
+---@overload fun(address:System.Net.IPAddress, port:System.Int32):Barotrauma.Networking.LidgrenEndpoint
+---@param netEndpoint System.Net.IPEndPoint
+---@return Barotrauma.Networking.LidgrenEndpoint
+_G['LidgrenEndpoint'].__new = function(netEndpoint) end
+
diff --git a/Meta/Types/client/_00007FFD97CD5998.lua b/Meta/Types/client/_00007FFD97CD5998.lua
new file mode 100644
index 0000000..57fab4e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD5998.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Networking.SteamP2PEndpoint : Barotrauma.Networking.P2PEndpoint
+---`Getter Public Instance`
+---@field SteamId Barotrauma.Networking.SteamId
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['SteamP2PEndpoint'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamP2PEndpoint'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamP2PEndpoint'].Equals = function(obj) end
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamP2PEndpoint
+_G['SteamP2PEndpoint'].Parse = function(endpointStr) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Networking.P2PConnection
+_G['SteamP2PEndpoint'].MakeConnectionFromEndpoint = function() end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PEndpoint
+_G['SteamP2PEndpoint'] = function(steamId) end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PEndpoint
+_G['SteamP2PEndpoint'].__new = function(steamId) end
+
diff --git a/Meta/Types/client/_00007FFD97CD5B58.lua b/Meta/Types/client/_00007FFD97CD5B58.lua
new file mode 100644
index 0000000..9d466b2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD5B58.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Networking.PipeEndpoint : Barotrauma.Networking.Endpoint
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['PipeEndpoint'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['PipeEndpoint'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['PipeEndpoint'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeEndpoint
+_G['PipeEndpoint'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeEndpoint
+_G['PipeEndpoint'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD5E88.lua b/Meta/Types/client/_00007FFD97CD5E88.lua
new file mode 100644
index 0000000..295baac
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD5E88.lua
@@ -0,0 +1,109 @@
+---@meta
+---@class Barotrauma.Md5Hash : System.Object
+---`Field Public Instance`
+---@field ByteRepresentation (System.Byte-arr)|(System.Byte[])
+---`Field Public Instance`
+---@field StringRepresentation System.String
+---`Field Public Instance`
+---@field ShortRepresentation System.String
+---`Field Public Static`
+---@field Blank Barotrauma.Md5Hash
+---`Field Private Static`
+---@field stringHashRegex System.Text.RegularExpressions.Regex
+_G['Md5Hash'] = {}
+
+---`Method Private Static`
+---@param s System.String
+---@return System.String
+_G['Md5Hash'].RemoveWhitespace = function(s) end
+
+---`Method Private Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@param stringRepresentation System.String-ref
+---@param byteRepresentation System.Byte-arr-ref
+_G['Md5Hash'].CalculateHash = function(bytes, stringRepresentation, byteRepresentation) end
+
+---`Method Private Static`
+---@param byteHash (System.Byte-arr)|(System.Byte[])
+---@return System.String
+_G['Md5Hash'].ByteRepresentationToStringRepresentation = function(byteHash) end
+
+---`Method Private Static`
+---@param strHash System.String
+---@return (System.Byte-arr)|(System.Byte[])
+_G['Md5Hash'].StringRepresentationToByteRepresentation = function(strHash) end
+
+---`Method Public Static`
+---@param fullHash System.String
+---@return System.String
+_G['Md5Hash'].GetShortHash = function(fullHash) end
+
+---`Method Public Static`
+---@param hash System.String
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].StringAsHash = function(hash) end
+
+---`Method Public Static`
+---@param hashes (System.Collections.Generic.IEnumerable*1Barotrauma*Md5Hash)|(fun():(Barotrauma.Md5Hash))
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].MergeHashes = function(hashes) end
+
+---`Method Public Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].CalculateForBytes = function(bytes) end
+
+---`Method Public Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].BytesAsHash = function(bytes) end
+
+---`Method Public Static`
+---@param path System.String
+---@param options Barotrauma.Md5Hash.StringHashOptions
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].CalculateForFile = function(path, options) end
+
+---`Method Public Static`
+---@param str System.String
+---@param options Barotrauma.Md5Hash.StringHashOptions
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].CalculateForString = function(str, options) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Md5Hash'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Md5Hash'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Md5Hash'].GetHashCode = function() end
+
+---`Constructor Private Instance`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD60E0.lua b/Meta/Types/client/_00007FFD97CD60E0.lua
new file mode 100644
index 0000000..cb16e92
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD60E0.lua
@@ -0,0 +1,72 @@
+---@meta
+---@class Barotrauma.ContentFile : System.Object
+---`Field Public Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Field Public Instance`
+---@field Path Barotrauma.ContentPath
+---`Field Public Instance`
+---@field Hash Barotrauma.Md5Hash
+---`Field Public Static`
+---@field Types (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*ContentFile*TypeInfo)|(Barotrauma.ContentFile.TypeInfo[])
+---`Getter Public Instance`
+---@field NotSyncedInMultiplayer System.Boolean
+_G['ContentFile'] = {}
+
+---`Method Public Static`
+---@param contentFileElement System.Xml.Linq.XElement
+---@param package Barotrauma.ContentPackage
+---@param logWarning System.Boolean
+---@return System.Boolean
+_G['ContentFile'].IsLegacyContentType = function(contentFileElement, package, logWarning) end
+
+---`Method Public Static`
+---@param contentPackage Barotrauma.ContentPackage
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Result*1Barotrauma*ContentFile*1Barotrauma*ContentPackage*LoadError
+_G['ContentFile'].CreateFromXElement = function(contentPackage, element) end
+
+---`Method Public Instance Abstract Virtual`
+_G['ContentFile'].LoadFile = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['ContentFile'].UnloadFile = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['ContentFile'].Sort = function() end
+
+---`Method Public Instance Virtual`
+---@param addPreloadedSprite (System.Action*1Barotrauma*Sprite)|(fun(obj:Barotrauma.Sprite))
+_G['ContentFile'].Preload = function(addPreloadedSprite) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Md5Hash
+_G['ContentFile'].CalculateHash = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'] = function(contentPackage, path) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'].__new = function(contentPackage, path) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'] = function(contentPackage, path) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CD8650.lua b/Meta/Types/client/_00007FFD97CD8650.lua
new file mode 100644
index 0000000..ec5d75d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD8650.lua
@@ -0,0 +1,149 @@
+---@meta
+---@class Barotrauma.ContentPackage : System.Object
+---`Field Public Instance`
+---@field AltNames (System.Collections.Immutable.ImmutableArray*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field UgcId Barotrauma.Option*1Barotrauma*ContentPackageId
+---`Field Public Instance`
+---@field GameVersion System.Version
+---`Field Public Instance`
+---@field ModVersion System.String
+---`Field Public Instance`
+---@field InstallTime Barotrauma.Option*1Barotrauma*SerializableDateTime
+---`Field Public Static`
+---@field MinimumHashCompatibleVersion System.Version
+---`Field Public Static`
+---@field WorkshopModsDir System.String
+---`Field Public Static`
+---@field LocalModsDir System.String
+---`Field Public Static`
+---@field FileListFileName System.String
+---`Field Public Static`
+---@field DefaultModVersion System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Path System.String
+---`Getter Public Instance`
+---@field Dir System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Hash Barotrauma.Md5Hash
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Files (System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FatalLoadErrors (System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentPackage*LoadError)|(Barotrauma.ContentPackage.LoadError[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EnableError Barotrauma.Option*1Barotrauma*ContentPackageManager*LoadProgress*Error
+---`Getter Public Instance`
+---@field HasAnyErrors System.Boolean
+---`Getter Public Instance`
+---@field Index System.Int32
+---`Getter Public Instance`
+---@field HasMultiplayerSyncedContent System.Boolean
+_G['ContentPackage'] = {}
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['ContentPackage'].IsUpToDate = function() end
+
+---`Method Public Instance`
+---@param expectedHash System.String
+---@return System.Boolean
+_G['ContentPackage'].HashMismatches = function(expectedHash) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage*T)|(fun():(Barotrauma.ContentPackage.T)))
+---@param type System.Type
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['ContentPackage'].GetFiles = function(type) end
+
+---`Method Public Instance`
+---@overload fun(name:Barotrauma.Identifier):(System.Boolean)
+---@param name System.String
+---@return System.Boolean
+_G['ContentPackage'].NameMatches = function(name) end
+
+---`Method Public Static`
+---@param path System.String
+---@return Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception
+_G['ContentPackage'].TryLoad = function(path) end
+
+---`Method Public Instance`
+---@param logging? System.Boolean
+---@param name? System.String
+---@param modVersion? System.String
+---@return Barotrauma.Md5Hash
+_G['ContentPackage'].CalculateHash = function(logging, name, modVersion) end
+
+---`Method NonPublic Instance`
+---@param condition System.Boolean
+---@param errorMsg System.String
+_G['ContentPackage'].AssertCondition = function(condition, errorMsg) end
+
+---`Method Public Instance`
+_G['ContentPackage'].LoadFilesOfType = function() end
+
+---`Method Public Instance`
+_G['ContentPackage'].UnloadFilesOfType = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.ContentPackage.LoadResult
+_G['ContentPackage'].LoadContent = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackage'].LoadContentEnumerable = function() end
+
+---`Method Public Instance`
+_G['ContentPackage'].UnloadContent = function() end
+
+---`Method Public Instance`
+_G['ContentPackage'].ReloadSubsAndItemAssemblies = function() end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['ContentPackage'].PathAllowedAsLocalModFile = function(path) end
+
+---`Method Public Instance`
+_G['ContentPackage'].LogErrors = function() end
+
+---`Method Public Instance`
+---@param newName System.String
+---@return System.Boolean
+_G['ContentPackage'].TryRenameLocal = function(newName) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPackage'].TryDeleteLocal = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPackage'].TryCreateLocalFromWorkshop = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD99D8.lua b/Meta/Types/client/_00007FFD97CD99D8.lua
new file mode 100644
index 0000000..01b8eb0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD99D8.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.ContentPackageManager : System.Object
+---`Field Public Static`
+---@field LocalPackages Barotrauma.ContentPackageManager.PackageSource
+---`Field Public Static`
+---@field WorkshopPackages Barotrauma.ContentPackageManager.PackageSource
+---`Field Public Static`
+---@field CopyIndicatorFileName System.String
+---`Field Public Static`
+---@field VanillaFileList System.String
+---`Field Public Static`
+---@field CorePackageElementName System.String
+---`Field Public Static`
+---@field RegularPackagesElementName System.String
+---`Field Public Static`
+---@field RegularPackagesSubElementName System.String
+---`Getter Public Static`
+---@field ModsEnabled System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field VanillaCorePackage Barotrauma.CorePackage
+---`Getter Public Static`
+---@field CorePackages (System.Collections.Generic.IEnumerable*1Barotrauma*CorePackage)|(fun():(Barotrauma.CorePackage))
+---`Getter Public Static`
+---@field RegularPackages (System.Collections.Generic.IEnumerable*1Barotrauma*RegularPackage)|(fun():(Barotrauma.RegularPackage))
+---`Getter Public Static`
+---@field AllPackages (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager'] = {}
+
+---`Method Private Static`
+---@return System.Threading.Tasks.Task*1System*Collections*Generic*IEnumerable*2Steamworks*Ugc*Item
+_G['ContentPackageManager'].EnqueueWorkshopUpdates = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager'].UpdateContentPackageList = function() end
+
+---`Method Public Static`
+---@param p Barotrauma.ContentPackage
+---@return Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception
+_G['ContentPackageManager'].ReloadContentPackage = function(p) end
+
+---`Method Public Static`
+_G['ContentPackageManager'].LoadVanillaFileList = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackageManager'].Init = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager'].LogEnabledRegularPackageErrors = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager
+_G['ContentPackageManager'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager
+_G['ContentPackageManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CD9D78.lua b/Meta/Types/client/_00007FFD97CD9D78.lua
new file mode 100644
index 0000000..cf3694b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CD9D78.lua
@@ -0,0 +1,68 @@
+---@meta
+---@class Barotrauma.ContentPackageManager.PackageSource : System.Object
+---`Field Private Instance`
+---@field skipPredicate (System.Predicate*1System*String)|(fun(obj:System.String):(System.Boolean))
+---`Field Private Instance`
+---@field onLoadFail (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---`Field Private Instance`
+---@field directory System.String
+---`Field Private Instance`
+---@field regularPackages (System.Collections.Generic.HashSet*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---`Field Private Instance`
+---@field corePackages (System.Collections.Generic.HashSet*1Barotrauma*CorePackage)|(Barotrauma.CorePackage[])
+---`Getter Public Instance`
+---@field Regular (System.Collections.Generic.IEnumerable*1Barotrauma*RegularPackage)|(fun():(Barotrauma.RegularPackage))
+---`Getter Public Instance`
+---@field Core (System.Collections.Generic.IEnumerable*1Barotrauma*CorePackage)|(fun():(Barotrauma.CorePackage))
+---`Getter Public Instance Virtual`
+---@field Count System.Int32
+---`Getter Public Instance Virtual`
+---@field IsReadOnly System.Boolean
+_G['ContentPackageManager']['PackageSource'] = {}
+
+---`Method Public Instance`
+---@param modProject Barotrauma.ModProject
+---@return System.String
+_G['ContentPackageManager']['PackageSource'].SaveRegularMod = function(modProject) end
+
+---`Method Public Instance`
+---@param fileListPath System.String
+---@return Barotrauma.RegularPackage
+_G['ContentPackageManager']['PackageSource'].GetRegularModByPath = function(fileListPath) end
+
+---`Method Public Instance`
+---@param modProject Barotrauma.ModProject
+---@return Barotrauma.RegularPackage
+_G['ContentPackageManager']['PackageSource'].SaveAndEnableRegularMod = function(modProject) end
+
+---`Method Public Instance`
+---@param oldPackage Barotrauma.ContentPackage
+---@param newPackage Barotrauma.ContentPackage
+_G['ContentPackageManager']['PackageSource'].SwapPackage = function(oldPackage, newPackage) end
+
+---`Method Public Instance`
+_G['ContentPackageManager']['PackageSource'].Refresh = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*ContentPackage
+_G['ContentPackageManager']['PackageSource'].GetEnumerator = function() end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.ContentPackage
+---@return System.Boolean
+_G['ContentPackageManager']['PackageSource'].Contains = function(item) end
+
+---`Constructor Public Instance`
+---@param dir System.String
+---@param skipPredicate (System.Predicate*1System*String)|(fun(obj:System.String):(System.Boolean))
+---@param onLoadFail (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---@return Barotrauma.ContentPackageManager.PackageSource
+_G['ContentPackageManager']['PackageSource'] = function(dir, skipPredicate, onLoadFail) end
+
+---`Constructor Public Instance`
+---@param dir System.String
+---@param skipPredicate (System.Predicate*1System*String)|(fun(obj:System.String):(System.Boolean))
+---@param onLoadFail (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---@return Barotrauma.ContentPackageManager.PackageSource
+_G['ContentPackageManager']['PackageSource'].__new = function(dir, skipPredicate, onLoadFail) end
+
diff --git a/Meta/Types/client/_00007FFD97CDA238.lua b/Meta/Types/client/_00007FFD97CDA238.lua
new file mode 100644
index 0000000..fe3d4b5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDA238.lua
@@ -0,0 +1,81 @@
+---@meta
+---@class Barotrauma.ContentPackageManager.EnabledPackages : System.Object
+---`Field Private Static`
+---@field regular (System.Collections.Generic.List*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Core Barotrauma.CorePackage
+---`Getter Public Static`
+---@field Regular (System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MergedHash Barotrauma.Md5Hash
+---`Getter Public Static`
+---@field All (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager']['EnabledPackages'] = {}
+
+---`Method Public Static`
+---@param newCore Barotrauma.CorePackage
+_G['ContentPackageManager']['EnabledPackages'].SetCore = function(newCore) end
+
+---`Method Public Static`
+---@param newCore Barotrauma.CorePackage
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackageManager']['EnabledPackages'].SetCoreEnumerable = function(newCore) end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].ReloadCore = function() end
+
+---`Method Public Static`
+---@param p Barotrauma.ContentPackage
+_G['ContentPackageManager']['EnabledPackages'].ReloadPackage = function(p) end
+
+---`Method Public Static`
+---@param p Barotrauma.RegularPackage
+_G['ContentPackageManager']['EnabledPackages'].EnableRegular = function(p) end
+
+---`Method Public Static`
+---@param newRegular (System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+_G['ContentPackageManager']['EnabledPackages'].SetRegular = function(newRegular) end
+
+---`Method Public Static`
+---@param inNewRegular (System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackageManager']['EnabledPackages'].SetRegularEnumerable = function(inNewRegular) end
+
+---`Method Public Static`
+---@param pkgs (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager']['EnabledPackages'].ThrowIfDuplicates = function(pkgs) end
+
+---`Method Private Static`
+_G['ContentPackageManager']['EnabledPackages'].SortContent = function() end
+
+---`Method Public Static`
+---@param contentPackage Barotrauma.ContentPackage
+---@return System.Int32
+_G['ContentPackageManager']['EnabledPackages'].IndexOf = function(contentPackage) end
+
+---`Method Public Static`
+---@param mods (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager']['EnabledPackages'].DisableMods = function(mods) end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].DisableRemovedMods = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].RefreshUpdatedMods = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].BackUp = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].Restore = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager.EnabledPackages
+_G['ContentPackageManager']['EnabledPackages'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager.EnabledPackages
+_G['ContentPackageManager']['EnabledPackages'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CDA350.lua b/Meta/Types/client/_00007FFD97CDA350.lua
new file mode 100644
index 0000000..85ad1a1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDA350.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.RegularPackage : Barotrauma.ContentPackage
+_G['RegularPackage'] = {}
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.RegularPackage
+_G['RegularPackage'] = function(doc, path) end
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.RegularPackage
+_G['RegularPackage'].__new = function(doc, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDA4D8.lua b/Meta/Types/client/_00007FFD97CDA4D8.lua
new file mode 100644
index 0000000..0f9769a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDA4D8.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.CorePackage : Barotrauma.ContentPackage
+_G['CorePackage'] = {}
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.CorePackage
+_G['CorePackage'] = function(doc, path) end
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.CorePackage
+_G['CorePackage'].__new = function(doc, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDAC78.lua b/Meta/Types/client/_00007FFD97CDAC78.lua
new file mode 100644
index 0000000..007bc8b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDAC78.lua
@@ -0,0 +1,288 @@
+---@meta
+---@class Barotrauma.ContentXElement : System.Object
+---`Field Public Instance`
+---@field Element System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Getter Public Instance`
+---@field Name System.Xml.Linq.XName
+---`Getter Public Instance`
+---@field BaseUri System.String
+---`Getter Public Instance`
+---@field Document System.Xml.Linq.XDocument
+---`Getter Public Instance`
+---@field Parent Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field HasElements System.Boolean
+_G['ContentXElement'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.Identifier
+_G['ContentXElement'].NameAsIdentifier = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'].FirstElement = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentXElement'].IsOverride = function() end
+
+---`Method Public Instance`
+---@param other Barotrauma.ContentXElement
+---@return System.Boolean
+_G['ContentXElement'].ComesAfter = function(other) end
+
+---`Method Public Instance`
+---@param name System.String
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'].GetChildElement = function(name) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].Elements = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].ElementsBeforeSelf = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].Descendants = function() end
+
+---`Method Public Instance`
+---@param name System.String
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].GetChildElements = function(name) end
+
+---`Method Public Instance`
+---@param name System.String
+---@return System.Xml.Linq.XAttribute
+_G['ContentXElement'].GetAttribute = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute)))
+---@param name System.String
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+_G['ContentXElement'].Attributes = function(name) end
+
+---`Method Public Instance`
+---@return System.String
+_G['ContentXElement'].ElementInnerText = function() end
+
+---`Method Public Instance`
+---@overload fun(key:System.String, def:System.String):(Barotrauma.Identifier)
+---@param key System.String
+---@param def Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['ContentXElement'].GetAttributeIdentifier = function(key, def) end
+
+---`Method Public Instance`
+---@overload fun(def:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), ...:System.String):((Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]))
+---@param key System.String
+---@param def (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+_G['ContentXElement'].GetAttributeIdentifierArray = function(key, def, trim) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['ContentXElement'].GetAttributeIdentifierImmutableHashSet = function(key, def, trim) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.String
+---@return System.String
+_G['ContentXElement'].GetAttributeString = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.String
+---@return System.String
+_G['ContentXElement'].GetAttributeStringUnrestricted = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.String-arr)|(System.String[])
+---@param convertToLowerInvariant? System.Boolean
+---@return (System.String-arr)|(System.String[])
+_G['ContentXElement'].GetAttributeStringArray = function(key, def, convertToLowerInvariant) end
+
+---`Method Public Instance`
+---@param key System.String
+---@return Barotrauma.ContentPath
+_G['ContentXElement'].GetAttributeContentPath = function(key) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.Int32
+---@return System.Int32
+_G['ContentXElement'].GetAttributeInt = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.UInt16
+---@return System.UInt16
+_G['ContentXElement'].GetAttributeUInt16 = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.Int32-arr)|(System.Int32[])
+---@return (System.Int32-arr)|(System.Int32[])
+_G['ContentXElement'].GetAttributeIntArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.UInt16-arr)|(System.UInt16[])
+---@return (System.UInt16-arr)|(System.UInt16[])
+_G['ContentXElement'].GetAttributeUshortArray = function(key, def) end
+
+---`Method Public Instance`
+---@overload fun(key:System.String, def:System.Single):(System.Single)
+---@param def System.Single
+---@param ... System.String
+---@return System.Single
+_G['ContentXElement'].GetAttributeFloat = function(def, ...) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.Single-arr)|(System.Single[])
+---@return (System.Single-arr)|(System.Single[])
+_G['ContentXElement'].GetAttributeFloatArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.Boolean
+---@return System.Boolean
+_G['ContentXElement'].GetAttributeBool = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Point-ref
+---@return Microsoft.Xna.Framework.Point
+_G['ContentXElement'].GetAttributePoint = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Vector2-ref
+---@return Microsoft.Xna.Framework.Vector2
+_G['ContentXElement'].GetAttributeVector2 = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Vector4-ref
+---@return Microsoft.Xna.Framework.Vector4
+_G['ContentXElement'].GetAttributeVector4 = function(key, def) end
+
+---`Method Public Instance`
+---@overload fun(key:System.String, def:Microsoft.Xna.Framework.Color-ref):(Microsoft.Xna.Framework.Color)
+---@param key System.String
+---@return System.Nullable*1Microsoft*Xna*Framework*Color
+_G['ContentXElement'].GetAttributeColor = function(key) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---@return (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+_G['ContentXElement'].GetAttributeColorArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Rectangle-ref
+---@return Microsoft.Xna.Framework.Rectangle
+_G['ContentXElement'].GetAttributeRect = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.Version
+---@return System.Version
+_G['ContentXElement'].GetAttributeVersion = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Barotrauma.T-ref
+---@return Barotrauma.ContentXElement.T
+_G['ContentXElement'].GetAttributeEnum = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (Barotrauma.T-arr)|(Barotrauma.ContentXElement.T[])
+---@return (Barotrauma.T-arr)|(Barotrauma.ContentXElement.T[])
+_G['ContentXElement'].GetAttributeEnumArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.ValueTuple
+---@return System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2
+_G['ContentXElement'].GetAttributeTuple = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.ValueTuple
+---@return (System.ValueTuple)|(System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2[])
+_G['ContentXElement'].GetAttributeTupleArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Barotrauma.Range
+---@return Barotrauma.Range*1System*Int32
+_G['ContentXElement'].GetAttributeRange = function(key, def) end
+
+---`Method Public Instance`
+---@return Barotrauma.Identifier
+_G['ContentXElement'].VariantOf = function() end
+
+---`Method Public Instance`
+---@param key System.String
+---@return System.Boolean
+_G['ContentXElement'].DoesAttributeReferenceFileNameAlone = function(key) end
+
+---`Method Public Instance`
+---@return System.String
+_G['ContentXElement'].ParseContentPathFromUri = function() end
+
+---`Method Public Instance`
+---@param key System.String
+---@param val System.String
+_G['ContentXElement'].SetAttributeValue = function(key, val) end
+
+---`Method Public Instance`
+---@param elem Barotrauma.ContentXElement
+_G['ContentXElement'].Add = function(elem) end
+
+---`Method Public Instance`
+---@param elem Barotrauma.ContentXElement
+_G['ContentXElement'].AddFirst = function(elem) end
+
+---`Method Public Instance`
+---@param elem Barotrauma.ContentXElement
+_G['ContentXElement'].AddAfterSelf = function(elem) end
+
+---`Method Public Instance`
+_G['ContentXElement'].Remove = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['ContentXElement'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ContentXElement'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'] = function(contentPackage, element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'].__new = function(contentPackage, element) end
+
diff --git a/Meta/Types/client/_00007FFD97CDAFF0.lua b/Meta/Types/client/_00007FFD97CDAFF0.lua
new file mode 100644
index 0000000..7d69acc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDAFF0.lua
@@ -0,0 +1,90 @@
+---@meta
+---@class Barotrauma.ContentPath : System.Object
+---`Field Public Instance`
+---@field RawValue System.String
+---`Field Public Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Field Private Instance`
+---@field cachedValue System.String
+---`Field Private Instance`
+---@field cachedFullPath System.String
+---`Field Public Static`
+---@field Empty Barotrauma.ContentPath
+---`Field Private Static`
+---@field OtherModDirRegex System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field prevCreatedRaw Barotrauma.ContentPath
+---`Field Public Static`
+---@field ModDirStr System.String
+---`Field Public Static`
+---@field OtherModDirFmt System.String
+---`Getter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---@field FullPath System.String
+_G['ContentPath'] = {}
+
+---`Method Public Static`
+---@overload fun(rawValue:System.String):(Barotrauma.ContentPath)
+---@param contentPackage Barotrauma.ContentPackage
+---@param rawValue System.String
+---@return Barotrauma.ContentPath
+_G['ContentPath'].FromRaw = function(contentPackage, rawValue) end
+
+---`Method Private Static`
+---@param a System.String
+---@param b System.String
+---@return System.Boolean
+_G['ContentPath'].StringEquality = function(a, b) end
+
+---`Method NonPublic Instance`
+---@param other Barotrauma.ContentPath
+---@return System.Boolean
+_G['ContentPath'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['ContentPath'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ContentPath'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPath'].IsPathNullOrEmpty = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPath'].IsPathNullOrWhiteSpace = function() end
+
+---`Method Public Instance`
+---@param suffix System.String
+---@return System.Boolean
+_G['ContentPath'].EndsWith = function(suffix) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ContentPath'].ToString = function() end
+
+---`Constructor Private Instance`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CDB980.lua b/Meta/Types/client/_00007FFD97CDB980.lua
new file mode 100644
index 0000000..8043c6a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDB980.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.Success*1Barotrauma*ContentPackage*1System*Exception : Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception
+---`Field Public Instance`
+---@field Value Barotrauma.ContentPackage
+---`Getter Public Instance Virtual`
+---@field IsSuccess System.Boolean
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'] = {}
+
+---`Method Public Instance Virtual`
+---@param value Barotrauma.ContentPackage-ref
+---@return System.Boolean
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].TryUnwrapSuccess = function(value) end
+
+---`Method Public Instance Virtual`
+---@param value System.Exception-ref
+---@return System.Boolean
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].TryUnwrapFailure = function(value) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param value Barotrauma.ContentPackage
+---@return Barotrauma.Success*1Barotrauma*ContentPackage*1System*Exception
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value Barotrauma.ContentPackage
+---@return Barotrauma.Success*1Barotrauma*ContentPackage*1System*Exception
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].__new = function(value) end
+
diff --git a/Meta/Types/client/_00007FFD97CDBC38.lua b/Meta/Types/client/_00007FFD97CDBC38.lua
new file mode 100644
index 0000000..3db15b4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDBC38.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.AfflictionsFile : Barotrauma.ContentFile
+---`Field Private Static`
+---@field afflictionTypes (System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[])
+_G['AfflictionsFile'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param overriding System.Boolean
+_G['AfflictionsFile'].ParseElement = function(element, overriding) end
+
+---`Method Public Instance Virtual`
+_G['AfflictionsFile'].LoadFile = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param type System.Type
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionsFile'].CreatePrefab = function(element, type) end
+
+---`Method Public Instance Virtual`
+_G['AfflictionsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['AfflictionsFile'].Sort = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'] = function(contentPackage, path) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'].__new = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDBE98.lua b/Meta/Types/client/_00007FFD97CDBE98.lua
new file mode 100644
index 0000000..3f61bc2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDBE98.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.OtherFile : Barotrauma.HashlessFile
+_G['OtherFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['OtherFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OtherFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OtherFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OtherFile
+_G['OtherFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OtherFile
+_G['OtherFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDBF88.lua b/Meta/Types/client/_00007FFD97CDBF88.lua
new file mode 100644
index 0000000..8d1d283
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDBF88.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.BackgroundCreaturePrefabsFile : Barotrauma.OtherFile
+_G['BackgroundCreaturePrefabsFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BackgroundCreaturePrefabsFile
+_G['BackgroundCreaturePrefabsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BackgroundCreaturePrefabsFile
+_G['BackgroundCreaturePrefabsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDC488.lua b/Meta/Types/client/_00007FFD97CDC488.lua
new file mode 100644
index 0000000..f6c2de3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDC488.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.BallastFloraFile : Barotrauma.GenericPrefabFile*1Barotrauma*BallastFloraPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*BallastFloraPrefab)|(fun():(Barotrauma.BallastFloraPrefab))
+_G['BallastFloraFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['BallastFloraFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['BallastFloraFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.BallastFloraPrefab
+_G['BallastFloraFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BallastFloraFile
+_G['BallastFloraFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BallastFloraFile
+_G['BallastFloraFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDC9F0.lua b/Meta/Types/client/_00007FFD97CDC9F0.lua
new file mode 100644
index 0000000..b1b4958
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDC9F0.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.BeaconStationFile : Barotrauma.BaseSubFile
+_G['BeaconStationFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BeaconStationFile
+_G['BeaconStationFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BeaconStationFile
+_G['BeaconStationFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDCB58.lua b/Meta/Types/client/_00007FFD97CDCB58.lua
new file mode 100644
index 0000000..9a0f75d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDCB58.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.CaveGenerationParametersFile : Barotrauma.GenericPrefabFile*1Barotrauma*CaveGenerationParams
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CaveGenerationParams)|(fun():(Barotrauma.CaveGenerationParams))
+_G['CaveGenerationParametersFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CaveGenerationParametersFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CaveGenerationParametersFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.CaveGenerationParams
+_G['CaveGenerationParametersFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CaveGenerationParametersFile
+_G['CaveGenerationParametersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CaveGenerationParametersFile
+_G['CaveGenerationParametersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDD2A0.lua b/Meta/Types/client/_00007FFD97CDD2A0.lua
new file mode 100644
index 0000000..52f2fbf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDD2A0.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.CharacterFile : Barotrauma.ContentFile
+_G['CharacterFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['CharacterFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['CharacterFile'].UnloadFile = function() end
+
+---`Method Private Static`
+_G['CharacterFile'].ClearCaches = function() end
+
+---`Method Public Instance Virtual`
+_G['CharacterFile'].Sort = function() end
+
+---`Method Public Instance Virtual`
+---@param addPreloadedSprite (System.Action*1Barotrauma*Sprite)|(fun(obj:Barotrauma.Sprite))
+_G['CharacterFile'].Preload = function(addPreloadedSprite) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CharacterFile
+_G['CharacterFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CharacterFile
+_G['CharacterFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDD448.lua b/Meta/Types/client/_00007FFD97CDD448.lua
new file mode 100644
index 0000000..64456c8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDD448.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.CorpsesFile : Barotrauma.GenericPrefabFile*1Barotrauma*CorpsePrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CorpsePrefab)|(fun():(Barotrauma.CorpsePrefab))
+_G['CorpsesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CorpsesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CorpsesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.CorpsePrefab
+_G['CorpsesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CorpsesFile
+_G['CorpsesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CorpsesFile
+_G['CorpsesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDDFC0.lua b/Meta/Types/client/_00007FFD97CDDFC0.lua
new file mode 100644
index 0000000..087a5a0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDDFC0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Level.PositionType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field MainPath Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field SidePath Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Cave Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Ruin Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Wreck Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field BeaconStation Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Abyss Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field AbyssCave Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Outpost Barotrauma.Level.PositionType
+_G['Level']['PositionType'] = {}
+_G['PositionType'] = _G['Level']['PositionType']
+
diff --git a/Meta/Types/client/_00007FFD97CDE3B0.lua b/Meta/Types/client/_00007FFD97CDE3B0.lua
new file mode 100644
index 0000000..86db98b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDE3B0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.DecalsFile : Barotrauma.ContentFile
+_G['DecalsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['DecalsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['DecalsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['DecalsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.DecalsFile
+_G['DecalsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.DecalsFile
+_G['DecalsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDE518.lua b/Meta/Types/client/_00007FFD97CDE518.lua
new file mode 100644
index 0000000..96d5d96
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDE518.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.EnemySubmarineFile : Barotrauma.BaseSubFile
+_G['EnemySubmarineFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EnemySubmarineFile
+_G['EnemySubmarineFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EnemySubmarineFile
+_G['EnemySubmarineFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDE680.lua b/Meta/Types/client/_00007FFD97CDE680.lua
new file mode 100644
index 0000000..934162d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDE680.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.EventManagerSettingsFile : Barotrauma.GenericPrefabFile*1Barotrauma*EventManagerSettings
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))
+_G['EventManagerSettingsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['EventManagerSettingsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['EventManagerSettingsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettingsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EventManagerSettingsFile
+_G['EventManagerSettingsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EventManagerSettingsFile
+_G['EventManagerSettingsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDE898.lua b/Meta/Types/client/_00007FFD97CDE898.lua
new file mode 100644
index 0000000..44c35c2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDE898.lua
@@ -0,0 +1,50 @@
+---@meta
+---@class Barotrauma.EventManagerSettings : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field EventThresholdIncrease System.Single
+---`Field Public Instance`
+---@field DefaultEventThreshold System.Single
+---`Field Public Instance`
+---@field EventCooldown System.Single
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Single
+---`Field Public Instance`
+---@field FreezeDurationWhenCrewAway System.Single
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))
+---`Getter Public Static`
+---@field OrderedByDifficulty (System.Linq.IOrderedEnumerable*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))
+_G['EventManagerSettings'] = {}
+
+---`Method Public Static`
+---@param p System.Single
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'].GetByDifficultyPercentile = function(p) end
+
+---`Method Public Instance Virtual`
+_G['EventManagerSettings'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CDEAE0.lua b/Meta/Types/client/_00007FFD97CDEAE0.lua
new file mode 100644
index 0000000..183adbb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDEAE0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.FactionsFile : Barotrauma.GenericPrefabFile*1Barotrauma*FactionPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*FactionPrefab)|(fun():(Barotrauma.FactionPrefab))
+_G['FactionsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['FactionsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['FactionsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.FactionPrefab
+_G['FactionsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.FactionsFile
+_G['FactionsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.FactionsFile
+_G['FactionsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CDEF58.lua b/Meta/Types/client/_00007FFD97CDEF58.lua
new file mode 100644
index 0000000..5a69876
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CDEF58.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.FactionPrefab : Barotrauma.Prefab
+---`Field Public Instance`
+---@field HireableCharacters (System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*HireableCharacter)|(Barotrauma.FactionPrefab.HireableCharacter[])
+---`Field Public Instance`
+---@field AutomaticMissions (System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*AutomaticMission)|(Barotrauma.FactionPrefab.AutomaticMission[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*FactionPrefab)|(fun():(Barotrauma.FactionPrefab))
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field ShortDescription Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field OpposingFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---@field StartOutpost System.Boolean
+---`Getter Public Instance`
+---@field MenuOrder System.Int32
+---`Getter Public Instance`
+---@field MinReputation System.Int32
+---`Getter Public Instance`
+---@field MaxReputation System.Int32
+---`Getter Public Instance`
+---@field InitialReputation System.Int32
+---`Getter Public Instance`
+---@field ControlledOutpostPercentage System.Single
+---`Getter Public Instance`
+---@field SecondaryControlledOutpostPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Icon Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IconSmall Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundPortrait Barotrauma.Sprite
+---`Getter Public Instance`
+---@field IconColor Microsoft.Xna.Framework.Color
+_G['FactionPrefab'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['FactionPrefab'].ToString = function() end
+
+---`Method Public Instance Virtual`
+_G['FactionPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CE03C0.lua b/Meta/Types/client/_00007FFD97CE03C0.lua
new file mode 100644
index 0000000..c53e4ae
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE03C0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.ItemAssemblyFile : Barotrauma.GenericPrefabFile*1Barotrauma*ItemAssemblyPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemAssemblyPrefab)|(fun():(Barotrauma.ItemAssemblyPrefab))
+_G['ItemAssemblyFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemAssemblyFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemAssemblyFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemAssemblyFile
+_G['ItemAssemblyFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemAssemblyFile
+_G['ItemAssemblyFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CE0AF8.lua b/Meta/Types/client/_00007FFD97CE0AF8.lua
new file mode 100644
index 0000000..18166d3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE0AF8.lua
@@ -0,0 +1,188 @@
+---@meta
+---@class Barotrauma.MapEntityPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field cachedAllowedUpgrades System.String
+---`Field Private Instance`
+---@field allowedUpgradeSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field NonPublic Static`
+---@field placePosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field IsModded System.Boolean
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntityPrefab)|(fun():(Barotrauma.MapEntityPrefab))
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Selected Barotrauma.MapEntityPrefab
+---`Getter Public Instance Abstract Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipX System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipY System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Abstract Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Abstract Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Abstract Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Abstract Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Abstract Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ResizeHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ResizeVertical System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field AllowedUpgrades System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field HideInMenus System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field HideInEditors System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Subcategory System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Scale System.Single
+_G['MapEntityPrefab'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.RichString
+_G['MapEntityPrefab'].CreateTooltipText = function() end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+_G['MapEntityPrefab'].UpdatePlacing = function(cam) end
+
+---`Method Public Instance Virtual`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, cam:Barotrauma.Camera)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawRect Microsoft.Xna.Framework.Rectangle
+---@param scale? System.Single
+---@param rotation? System.Single
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['MapEntityPrefab'].DrawPlacing = function(spriteBatch, drawRect, scale, rotation, spriteEffects) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+_G['MapEntityPrefab'].DrawListLine = function(spriteBatch, pos, color) end
+
+---`Method Public Static`
+---@param selection System.Object
+---@return System.Boolean
+_G['MapEntityPrefab'].SelectPrefab = function(selection) end
+
+---`Method Public Static`
+---@return System.Object
+_G['MapEntityPrefab'].GetSelected = function() end
+
+---`Method Public Static`
+---@overload fun(name:System.String, identifier?:System.String, showErrorMessages?:System.Boolean):(Barotrauma.MapEntityPrefab)
+---@overload fun(name:System.String, identifier:Barotrauma.Identifier, showErrorMessages?:System.Boolean):(Barotrauma.MapEntityPrefab)
+---@param predicate (System.Predicate*1Barotrauma*MapEntityPrefab)|(fun(obj:Barotrauma.MapEntityPrefab):(System.Boolean))
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].Find = function(predicate) end
+
+---`Method Public Static`
+---@param predicate (System.Predicate*1Barotrauma*MapEntityPrefab)|(fun(obj:Barotrauma.MapEntityPrefab):(System.Boolean))
+---@param sync Barotrauma.Rand.RandSync
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].GetRandom = function(predicate, sync) end
+
+---`Method Public Static`
+---@param name System.String
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].FindByName = function(name) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].FindByIdentifier = function(identifier) end
+
+---`Method Public Instance`
+---@return System.String
+_G['MapEntityPrefab'].GetItemNameTextId = function() end
+
+---`Method Public Instance`
+---@return System.String
+_G['MapEntityPrefab'].GetHullNameTextId = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['MapEntityPrefab'].GetAllowedUpgrades = function() end
+
+---`Method Public Instance`
+---@param subcategory System.String
+---@return System.Boolean
+_G['MapEntityPrefab'].HasSubCategory = function(subcategory) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['MapEntityPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance`
+_G['MapEntityPrefab'].DebugCreateInstance = function() end
+
+---`Method Public Instance`
+---@overload fun(name:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@param allowedNames (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['MapEntityPrefab'].NameMatches = function(allowedNames, comparisonType) end
+
+---`Method Public Instance`
+---@param target Barotrauma.MapEntityPrefab
+---@return System.Boolean
+_G['MapEntityPrefab'].IsLinkAllowed = function(target) end
+
+---`Method NonPublic Instance`
+---@param element Barotrauma.ContentXElement
+_G['MapEntityPrefab'].LoadDescription = function(element) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'] = function(element, file) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].__new = function(element, file) end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97CE2858.lua b/Meta/Types/client/_00007FFD97CE2858.lua
new file mode 100644
index 0000000..fd187ce
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE2858.lua
@@ -0,0 +1,100 @@
+---@meta
+---@class Barotrauma.ItemAssemblyPrefab : Barotrauma.MapEntityPrefab
+---`Field Private Instance`
+---@field configElement System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field DisplayEntities (System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemAssemblyPrefab*DisplayEntity)|(Barotrauma.ItemAssemblyPrefab.DisplayEntity[])
+---`Field Public Instance`
+---@field Bounds Microsoft.Xna.Framework.Rectangle
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemAssemblyPrefab)|(fun():(Barotrauma.ItemAssemblyPrefab))
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+_G['ItemAssemblyPrefab'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param guiComponent Barotrauma.GUICustomComponent
+_G['ItemAssemblyPrefab'].DrawIcon = function(spriteBatch, guiComponent) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['ItemAssemblyPrefab'].DrawPlacing = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+_G['ItemAssemblyPrefab'].Draw = function(spriteBatch, pos) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param name System.String
+---@param description System.String
+---@param hideInMenus? System.Boolean
+---@return System.Xml.Linq.XElement
+_G['ItemAssemblyPrefab'].Save = function(entities, name, description, hideInMenus) end
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['ItemAssemblyPrefab'].DetermineIdentifier = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['ItemAssemblyPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param sub Barotrauma.Submarine
+---@param selectInstance? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['ItemAssemblyPrefab'].CreateInstance = function(position, sub, selectInstance) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param sub Barotrauma.Submarine
+---@param configElement System.Xml.Linq.XElement
+---@param filePath? System.String
+---@param selectInstance? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['ItemAssemblyPrefab'].PasteEntities = function(position, sub, configElement, filePath, selectInstance) end
+
+---`Method Public Instance`
+_G['ItemAssemblyPrefab'].Delete = function() end
+
+---`Method Public Instance Virtual`
+_G['ItemAssemblyPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CE32A0.lua b/Meta/Types/client/_00007FFD97CE32A0.lua
new file mode 100644
index 0000000..00ec2d1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE32A0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.ItemFile : Barotrauma.GenericPrefabFile*1Barotrauma*ItemPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+_G['ItemFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.ItemPrefab
+_G['ItemFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemFile
+_G['ItemFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemFile
+_G['ItemFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CE6838.lua b/Meta/Types/client/_00007FFD97CE6838.lua
new file mode 100644
index 0000000..4fdc54a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE6838.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.DeconstructItem : System.ValueType
+---`Field Public Instance`
+---@field ItemIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field MinCondition System.Single
+---`Field Public Instance`
+---@field MaxCondition System.Single
+---`Field Public Instance`
+---@field OutConditionMin System.Single
+---`Field Public Instance`
+---@field OutConditionMax System.Single
+---`Field Public Instance`
+---@field CopyCondition System.Boolean
+---`Field Public Instance`
+---@field RequiredDeconstructor (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredOtherItem (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field ActivateButtonText System.String
+---`Field Public Instance`
+---@field InfoText System.String
+---`Field Public Instance`
+---@field InfoTextOnOtherItemMissing System.String
+---`Field Public Instance`
+---@field Commonness System.Single
+_G['DeconstructItem'] = {}
+
+---`Method Public Instance`
+---@param deconstructor Barotrauma.Item
+---@return System.Boolean
+_G['DeconstructItem'].IsValidDeconstructor = function(deconstructor) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param parentDebugName Barotrauma.Identifier
+---@return Barotrauma.DeconstructItem
+_G['DeconstructItem'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param parentDebugName Barotrauma.Identifier
+---@return Barotrauma.DeconstructItem
+_G['DeconstructItem'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/client/_00007FFD97CE96E0.lua b/Meta/Types/client/_00007FFD97CE96E0.lua
new file mode 100644
index 0000000..9c959ee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE96E0.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.MapEntityCategory : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Structure Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Decorative Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Machine Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Medical Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Weapon Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Diving Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Equipment Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Fuel Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Electrical Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Material Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Alien Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Wrecked Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field ItemAssembly Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Legacy Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Misc Barotrauma.MapEntityCategory
+_G['MapEntityCategory'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97CE98E8.lua b/Meta/Types/client/_00007FFD97CE98E8.lua
new file mode 100644
index 0000000..a5c1028
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE98E8.lua
@@ -0,0 +1,513 @@
+---@meta
+---@class Barotrauma.ItemPrefab : Barotrauma.MapEntityPrefab
+---`Field Public Instance`
+---@field UpgradePreviewScale System.Single
+---`Field Private Instance`
+---@field wearableDamageModifiers (System.Collections.Generic.IReadOnlyList*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Field Private Instance`
+---@field wearableSkillModifiers (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Instance`
+---@field defaultPrice Barotrauma.PriceInfo
+---`Field Private Instance`
+---@field treatmentSuitability (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Instance`
+---@field originalElement Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field canSpriteFlipX System.Boolean
+---`Field Private Instance`
+---@field canSpriteFlipY System.Boolean
+---`Field Private Instance`
+---@field sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field name Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field allowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field category Barotrauma.MapEntityCategory
+---`Field Private Instance`
+---@field aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field health System.Single
+---`Field Private Instance`
+---@field impactTolerance System.Single
+---`Field Private Instance`
+---@field maxStackSize System.Int32
+---`Field Private Instance`
+---@field maxStackSizeCharacterInventory System.Int32
+---`Field Private Instance`
+---@field maxStackSizeHoldableOrWearableInventory System.Int32
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Field Public Static`
+---@field DefaultInteractDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UpgradeOverrideSprites (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*DecorativeSprite)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[]))})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BrokenSprites (System.Collections.Immutable.ImmutableArray*1Barotrauma*BrokenItemSprite)|(Barotrauma.BrokenItemSprite[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DecorativeSprites (System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContainedSprites (System.Collections.Immutable.ImmutableArray*1Barotrauma*ContainedItemSprite)|(Barotrauma.ContainedItemSprite[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DecorativeSpriteGroups (System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*DecorativeSprite)|({[System.Int32]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[]))})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InventoryIcon Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinimapIcon Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UpgradePreviewSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InfectedSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedInfectedSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field InventoryIconColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ImpactSoundTag System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowInStatusMonitor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DefaultPrice Barotrauma.PriceInfo
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field StorePrices (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo)|({[Barotrauma.Identifier]:(Barotrauma.PriceInfo)})
+---`Getter Public Instance`
+---@field CanBeBought System.Boolean
+---`Getter Public Instance`
+---@field CanBeSold System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Triggers (System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---`Getter Public Instance`
+---@field IsOverride System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeconstructItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*DeconstructItem)|(Barotrauma.DeconstructItem[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FabricationRecipes (System.Collections.Immutable.ImmutableDictionary*1System*UInt32*1Barotrauma*FabricationRecipe)|({[System.UInt32]:(Barotrauma.FabricationRecipe)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeconstructTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDeconstruct System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PreferredContainers (System.Collections.Immutable.ImmutableArray*1Barotrauma*PreferredContainer)|(Barotrauma.PreferredContainer[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SkillRequirementHints (System.Collections.Immutable.ImmutableArray*1Barotrauma*SkillRequirementHint)|(Barotrauma.SkillRequirementHint[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwappableItem Barotrauma.SwappableItem
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field LevelCommonness (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*CommonnessInfo)|({[Barotrauma.Identifier]:(Barotrauma.ItemPrefab.CommonnessInfo)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LevelQuantity (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*FixedQuantityResourceInfo)|({[Barotrauma.Identifier]:(Barotrauma.ItemPrefab.FixedQuantityResourceInfo)})
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipX System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipY System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAsExtraCargo System.Nullable*1System*Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomDeconstructionOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomDeconstructionOutputAmount System.Int32
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InteractDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InteractPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InteractThroughWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideConditionBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideConditionInTooltip System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequireBodyInsideTrigger System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequireCursorInsideTrigger System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequireCampaignInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FocusOnSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OffsetOnSelected System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrabWhenSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDeselectWhenIdling System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowSellingWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowStealingAlways System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Indestructible System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByExplosions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByContainedItemExplosions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExplosionDamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ItemDamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByProjectiles System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByMeleeWeapons System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByRepairTools System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByMonsters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnDamagedThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SonarSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseInHealthInterface System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisableItemUsageWhenSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CargoContainerIdentifier System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseContainedSpriteColor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseContainedInventoryIconColor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AddedRepairSpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AddedPickingSpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CannotRepairFail System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EquipConfirmationText System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowRotatingInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowContentsInTooltip System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanFlipX System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanFlipY System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsDangerous System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxStackSize System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxStackSizeCharacterInventory System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxStackSizeHoldableOrWearableInventory System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDroppingOnSwap System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDroppingOnSwapWith (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DontTransferBetweenSubs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BotPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowNameInHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsAITurretTarget System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AITurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AISlowTurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AITurretTargetingMaxDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowStealingContainedItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SignalComponentColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableCommandMenuWhenSelected System.Boolean
+---`Getter Public Instance Virtual`
+---@field VariantOf Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ParentPrefab Barotrauma.ItemPrefab
+_G['ItemPrefab'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['ItemPrefab'].DetermineIdentifier = function(element) end
+
+---`Method Public Static`
+---@param name System.String
+---@return Barotrauma.Identifier
+_G['ItemPrefab'].GenerateLegacyIdentifier = function(name) end
+
+---`Method Private Instance`
+---@param subElement Barotrauma.ContentXElement
+---@param variantOf Barotrauma.ItemPrefab
+---@return System.String
+_G['ItemPrefab'].GetTexturePath = function(subElement, variantOf) end
+
+---`Method Private Instance`
+---@param variantOf Barotrauma.ItemPrefab
+_G['ItemPrefab'].ParseConfigElement = function(variantOf) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Nullable*1Barotrauma*ItemPrefab*CommonnessInfo
+_G['ItemPrefab'].GetCommonnessInfo = function(level) end
+
+---`Method Public Instance`
+---@param treatmentIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['ItemPrefab'].GetTreatmentSuitability = function(treatmentIdentifier) end
+
+---`Method Public Instance`
+---@param store Barotrauma.Location.StoreInfo
+---@return Barotrauma.PriceInfo
+_G['ItemPrefab'].GetPriceInfo = function(store) end
+
+---`Method Public Instance`
+---@overload fun(store:Barotrauma.Location.StoreInfo, priceInfo:Barotrauma.PriceInfo-ref):(System.Boolean)
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['ItemPrefab'].CanBeBoughtFrom = function(location) end
+
+---`Method Public Instance`
+---@return System.Nullable*1System*Int32
+_G['ItemPrefab'].GetMinPrice = function() end
+
+---`Method Public Instance`
+---@param maxCost? System.Int32
+---@return (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo)|({[Barotrauma.Identifier]:(Barotrauma.PriceInfo)})
+_G['ItemPrefab'].GetBuyPricesUnder = function(maxCost) end
+
+---`Method Public Instance`
+---@param minCost? System.Int32
+---@param sellingImportant? System.Boolean
+---@return (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo)|({[Barotrauma.Identifier]:(Barotrauma.PriceInfo)})
+_G['ItemPrefab'].GetSellPricesOver = function(minCost, sellingImportant) end
+
+---`Method Public Static`
+---@param name System.String
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].Find = function(name, identifier) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item, targetContainer:Barotrauma.Items.Components.ItemContainer, isPreferencesDefined:System.Boolean-ref, isSecondary:System.Boolean-ref, requireConditionRequirement?:System.Boolean, checkTransferConditions?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param identifiersOrTags (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param isPreferencesDefined System.Boolean-ref
+---@param isSecondary System.Boolean-ref
+---@return System.Boolean
+_G['ItemPrefab'].IsContainerPreferred = function(item, identifiersOrTags, isPreferencesDefined, isSecondary) end
+
+---`Method Public Static`
+---@overload fun(preferences:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), c:Barotrauma.Items.Components.ItemContainer):(System.Boolean)
+---@param preferences (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param ids (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['ItemPrefab'].IsContainerPreferred = function(preferences, ids) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@param pc Barotrauma.PreferredContainer
+---@return System.Boolean
+_G['ItemPrefab'].IsItemConditionAcceptable = function(item, pc) end
+
+---`Method Private Static`
+---@param item Barotrauma.Identifier
+---@param pc Barotrauma.PreferredContainer
+---@param targetContainer Barotrauma.Items.Components.ItemContainer
+---@return System.Boolean
+_G['ItemPrefab'].CanBeTransferred = function(item, pc, targetContainer) end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['ItemPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance Virtual`
+_G['ItemPrefab'].Dispose = function() end
+
+---`Method Public Instance Virtual`
+---@param parent Barotrauma.ItemPrefab
+_G['ItemPrefab'].InheritFrom = function(parent) end
+
+---`Method Public Instance`
+---@return Barotrauma.ContentPackage
+_G['ItemPrefab'].GetParentModPackageOrThisPackage = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ItemPrefab'].ToString = function() end
+
+---`Method Public Static`
+---@param itemNameOrId System.String
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].GetItemPrefab = function(itemNameOrId) end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.Inventory
+---@return System.Int32
+_G['ItemPrefab'].GetMaxStackSize = function(inventory) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param variantOf Barotrauma.ItemPrefab
+_G['ItemPrefab'].ParseSubElementsClient = function(element, variantOf) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ItemPrefab'].CanCharacterBuy = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.LocalizedString
+_G['ItemPrefab'].GetTooltip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+_G['ItemPrefab'].UpdatePlacing = function(cam) end
+
+---`Method Public Instance Virtual`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, cam:Barotrauma.Camera)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param placeRect Microsoft.Xna.Framework.Rectangle
+---@param scale? System.Single
+---@param rotation? System.Single
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['ItemPrefab'].DrawPlacing = function(spriteBatch, placeRect, scale, rotation, spriteEffects) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.LocalizedString
+_G['ItemPrefab'].GetSkillRequirementHints = function(character) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemFile):Barotrauma.ItemPrefab
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemFile):Barotrauma.ItemPrefab
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemFile):Barotrauma.ItemPrefab
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemFile):Barotrauma.ItemPrefab
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CE9CC8.lua b/Meta/Types/client/_00007FFD97CE9CC8.lua
new file mode 100644
index 0000000..5290d56
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CE9CC8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.BrokenItemSprite : System.Object
+---`Field Public Instance`
+---@field MaxConditionPercentage System.Single
+---`Field Public Instance`
+---@field Sprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field FadeIn System.Boolean
+---`Field Public Instance`
+---@field Offset Microsoft.Xna.Framework.Point
+_G['BrokenItemSprite'] = {}
+
+---`Constructor Public Instance`
+---@param sprite Barotrauma.Sprite
+---@param maxCondition System.Single
+---@param fadeIn System.Boolean
+---@param offset Microsoft.Xna.Framework.Point
+---@return Barotrauma.BrokenItemSprite
+_G['BrokenItemSprite'] = function(sprite, maxCondition, fadeIn, offset) end
+
+---`Constructor Public Instance`
+---@param sprite Barotrauma.Sprite
+---@param maxCondition System.Single
+---@param fadeIn System.Boolean
+---@param offset Microsoft.Xna.Framework.Point
+---@return Barotrauma.BrokenItemSprite
+_G['BrokenItemSprite'].__new = function(sprite, maxCondition, fadeIn, offset) end
+
diff --git a/Meta/Types/client/_00007FFD97CEABD8.lua b/Meta/Types/client/_00007FFD97CEABD8.lua
new file mode 100644
index 0000000..b3e2324
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CEABD8.lua
@@ -0,0 +1,130 @@
+---@meta
+---@class Barotrauma.DecorativeSprite : System.Object
+---`Field Private Instance`
+---@field blinkTimer System.Single
+---`Field Private Instance`
+---@field rotationSpeedRadians System.Single
+---`Field Private Instance`
+---@field absRotationSpeedRadians System.Single
+---`Field Private Instance`
+---@field rotationRadians System.Single
+---`Field Private Instance`
+---@field randomRotationRadians Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field scale System.Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BlinkFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OffsetAnim Barotrauma.DecorativeSprite.AnimationType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OffsetAnimSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleAnim Barotrauma.DecorativeSprite.AnimationType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleAnimAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleAnimSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomRotation Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationAnim Barotrauma.DecorativeSprite.AnimationType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomGroupID System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter NonPublic Instance`
+---
`Setter Private Instance`
+---@field IsActiveConditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Getter NonPublic Instance`
+---
`Setter Private Instance`
+---@field AnimationConditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+_G['DecorativeSprite'] = {}
+
+---`Method Public Instance`
+---@param offsetState System.Single-ref
+---@param randomOffsetMultiplier Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['DecorativeSprite'].GetOffset = function(offsetState, randomOffsetMultiplier, rotation) end
+
+---`Method Public Instance`
+---@param rotationState System.Single-ref
+---@param randomRotationFactor System.Single
+---@return System.Single
+_G['DecorativeSprite'].GetRotation = function(rotationState, randomRotationFactor) end
+
+---`Method Public Instance`
+---@param scaleState System.Single-ref
+---@param randomScaleModifier System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['DecorativeSprite'].GetScale = function(scaleState, randomScaleModifier) end
+
+---`Method Private Static`
+---@param state System.Single-ref
+---@param speed System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['DecorativeSprite'].GetNoiseVector = function(state, speed) end
+
+---`Method Public Static`
+---@param spriteGroups (System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*DecorativeSprite)|({[System.Int32]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[]))})
+---@param animStates (System.Collections.Generic.Dictionary*1Barotrauma*DecorativeSprite*1Barotrauma*DecorativeSprite*State)|({[Barotrauma.DecorativeSprite]:(Barotrauma.DecorativeSprite.State)})
+---@param entityID System.Int32
+---@param deltaTime System.Single
+---@param checkConditional (System.Func*1Barotrauma*PropertyConditional*1System*Boolean)|(fun(arg:Barotrauma.PropertyConditional):(System.Boolean))
+_G['DecorativeSprite'].UpdateSpriteStates = function(spriteGroups, animStates, entityID, deltaTime, checkConditional) end
+
+---`Method Public Instance`
+_G['DecorativeSprite'].Remove = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param path? System.String
+---@param file? System.String
+---@param lazyLoad? System.Boolean
+---@return Barotrauma.DecorativeSprite
+_G['DecorativeSprite'] = function(element, path, file, lazyLoad) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param path? System.String
+---@param file? System.String
+---@param lazyLoad? System.Boolean
+---@return Barotrauma.DecorativeSprite
+_G['DecorativeSprite'].__new = function(element, path, file, lazyLoad) end
+
diff --git a/Meta/Types/client/_00007FFD97CEB5B8.lua b/Meta/Types/client/_00007FFD97CEB5B8.lua
new file mode 100644
index 0000000..493a83d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CEB5B8.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.ContainedItemSprite : System.Object
+---`Field Public Instance`
+---@field Sprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field UseWhenAttached System.Boolean
+---`Field Public Instance`
+---@field DecorativeSpriteBehavior Barotrauma.ContainedItemSprite.DecorativeSpriteBehaviorType
+---`Field Public Instance`
+---@field AllowedContainerIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field AllowedContainerTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['ContainedItemSprite'] = {}
+
+---`Method Public Instance`
+---@param container Barotrauma.Item
+---@return System.Boolean
+_G['ContainedItemSprite'].MatchesContainer = function(container) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param path? System.String
+---@param lazyLoad? System.Boolean
+---@return Barotrauma.ContainedItemSprite
+_G['ContainedItemSprite'] = function(element, path, lazyLoad) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param path? System.String
+---@param lazyLoad? System.Boolean
+---@return Barotrauma.ContainedItemSprite
+_G['ContainedItemSprite'].__new = function(element, path, lazyLoad) end
+
diff --git a/Meta/Types/client/_00007FFD97CECDC0.lua b/Meta/Types/client/_00007FFD97CECDC0.lua
new file mode 100644
index 0000000..17e7e35
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CECDC0.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.PreferredContainer : System.Object
+---`Field Public Instance`
+---@field Primary (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Secondary (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field SpawnProbability System.Single
+---`Field Public Instance`
+---@field MaxCondition System.Single
+---`Field Public Instance`
+---@field MinCondition System.Single
+---`Field Public Instance`
+---@field MinAmount System.Int32
+---`Field Public Instance`
+---@field MaxAmount System.Int32
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field CampaignOnly System.Boolean
+---`Field Public Instance`
+---@field NotCampaign System.Boolean
+---`Field Public Instance`
+---@field NotPvP System.Boolean
+---`Field Public Instance`
+---@field TransferOnlyOnePerContainer System.Boolean
+---`Field Public Instance`
+---@field AllowTransfersHere System.Boolean
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Single
+_G['PreferredContainer'] = {}
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.PreferredContainer
+_G['PreferredContainer'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.PreferredContainer
+_G['PreferredContainer'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97CEDE10.lua b/Meta/Types/client/_00007FFD97CEDE10.lua
new file mode 100644
index 0000000..6077f09
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CEDE10.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.JobsFile : Barotrauma.ContentFile
+_G['JobsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['JobsFile'].LoadFile = function() end
+
+---`Method Private Instance`
+---@param mainElement Barotrauma.ContentXElement
+---@param isOverride System.Boolean
+_G['JobsFile'].LoadElements = function(mainElement, isOverride) end
+
+---`Method Public Instance Virtual`
+_G['JobsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['JobsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.JobsFile
+_G['JobsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.JobsFile
+_G['JobsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CEDFF0.lua b/Meta/Types/client/_00007FFD97CEDFF0.lua
new file mode 100644
index 0000000..5877ad6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CEDFF0.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.LevelGenerationParametersFile : Barotrauma.ContentFile
+_G['LevelGenerationParametersFile'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param isOverride System.Boolean
+_G['LevelGenerationParametersFile'].LoadBiomes = function(element, isOverride) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param isOverride System.Boolean
+_G['LevelGenerationParametersFile'].LoadLevelGenerationParams = function(element, isOverride) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param overridePropagation System.Boolean
+_G['LevelGenerationParametersFile'].LoadSubElements = function(element, overridePropagation) end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParametersFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParametersFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParametersFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelGenerationParametersFile
+_G['LevelGenerationParametersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelGenerationParametersFile
+_G['LevelGenerationParametersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CEE198.lua b/Meta/Types/client/_00007FFD97CEE198.lua
new file mode 100644
index 0000000..8c0d2da
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CEE198.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LevelObjectPrefabsFile : Barotrauma.GenericPrefabFile*1Barotrauma*LevelObjectPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LevelObjectPrefab)|(fun():(Barotrauma.LevelObjectPrefab))
+_G['LevelObjectPrefabsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LevelObjectPrefabsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LevelObjectPrefabsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefabsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelObjectPrefabsFile
+_G['LevelObjectPrefabsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelObjectPrefabsFile
+_G['LevelObjectPrefabsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CEEF90.lua b/Meta/Types/client/_00007FFD97CEEF90.lua
new file mode 100644
index 0000000..c06d1dc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CEEF90.lua
@@ -0,0 +1,198 @@
+---@meta
+---@class Barotrauma.LevelObjectPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field LevelTriggerElements (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Public Instance`
+---@field OverrideCommonness (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Instance`
+---@field randomRotation Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field swingAmount System.Single
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LevelObjectPrefab)|(fun():(Barotrauma.LevelObjectPrefab))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticleEmitterTriggerIndex (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticleEmitterPrefabs (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitterPrefab)|(Barotrauma.Particles.ParticleEmitterPrefab[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EmitterPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sounds (System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab*SoundConfig)|(Barotrauma.LevelObjectPrefab.SoundConfig[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LightSourceTriggerIndex (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LightSourceParams (System.Collections.Generic.List*1Barotrauma*Lights*LightSourceParams)|(Barotrauma.Lights.LightSourceParams[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteDeformations (System.Collections.Generic.List*1Barotrauma*SpriteDeformations*SpriteDeformation)|(Barotrauma.SpriteDeformations.SpriteDeformation[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeformableSprite Barotrauma.DeformableSprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Alignment Barotrauma.Alignment
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpawnPos Barotrauma.LevelObjectPrefab.SpawnPosType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Config System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBodyElement System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBodyTriggerIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteSpecificPhysicsBodyElements (System.Collections.Generic.Dictionary*1Barotrauma*Sprite*1System*Xml*Linq*XElement)|({[Barotrauma.Sprite]:(System.Xml.Linq.XElement)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DepthRange Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClusteringAmount System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClusteringGroup System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AlignWithSurface System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAtStart System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAtEnd System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinSurfaceWidth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomRotation Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field RandomRotationRad Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwingAmount System.Single
+---`Getter Public Instance`
+---@field SwingAmountRad System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwingFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleOscillation Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleOscillationFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Commonness System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SonarDisruption System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TakeLevelWallDamage System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HideWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ChildObjects (System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab*ChildObject)|(Barotrauma.LevelObjectPrefab.ChildObject[])
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OverrideProperties (System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab)|(Barotrauma.LevelObjectPrefab[])
+_G['LevelObjectPrefab'] = {}
+
+---`Method Public Static`
+---@param identifierOverride Barotrauma.Identifier
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['LevelObjectPrefab'].ParseIdentifier = function(identifierOverride, element) end
+
+---`Method Private Instance`
+---@param file Barotrauma.LevelObjectPrefabsFile
+---@param element Barotrauma.ContentXElement
+---@param parentTriggerIndex System.Int32
+_G['LevelObjectPrefab'].LoadElements = function(file, element, parentTriggerIndex) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['LevelObjectPrefab'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@overload fun(generationParams:Barotrauma.CaveGenerationParams, requireCaveSpecificOverride?:System.Boolean):(System.Single)
+---@param levelData Barotrauma.LevelData
+---@return System.Single
+_G['LevelObjectPrefab'].GetCommonness = function(levelData) end
+
+---`Method Public Instance Virtual`
+_G['LevelObjectPrefab'].Dispose = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentTriggerIndex System.Int32
+_G['LevelObjectPrefab'].LoadElementsProjSpecific = function(element, parentTriggerIndex) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['LevelObjectPrefab'].Save = function(element) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LevelObjectPrefab'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CEF200.lua b/Meta/Types/client/_00007FFD97CEF200.lua
new file mode 100644
index 0000000..b8ecb48
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CEF200.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LocationTypesFile : Barotrauma.GenericPrefabFile*1Barotrauma*LocationType
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LocationType)|(fun():(Barotrauma.LocationType))
+_G['LocationTypesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LocationTypesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LocationTypesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.LocationType
+_G['LocationTypesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LocationTypesFile
+_G['LocationTypesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LocationTypesFile
+_G['LocationTypesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF1970.lua b/Meta/Types/client/_00007FFD97CF1970.lua
new file mode 100644
index 0000000..d1a2bcb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF1970.lua
@@ -0,0 +1,163 @@
+---@meta
+---@class Barotrauma.LocationType : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field rawNames (System.Collections.Immutable.ImmutableArray*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field portraits (System.Collections.Immutable.ImmutableArray*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field hireableJobs (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Single*2System*Boolean)|(System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean[])
+---`Field Private Instance`
+---@field totalHireableWeight System.Single
+---`Field Public Instance`
+---@field CommonnessPerZone (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---`Field Public Instance`
+---@field MinCountPerZone (System.Collections.Generic.Dictionary*1System*Int32*1System*Int32)|({[System.Int32]:(System.Int32)})
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field ForceLocationName Barotrauma.Identifier
+---`Field Public Instance`
+---@field BeaconStationChance System.Single
+---`Field Public Instance`
+---@field OutpostTeam Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field IsAnyOutpost System.Boolean
+---`Field Public Instance`
+---@field CanChangeTo (System.Collections.Generic.List*1Barotrauma*LocationTypeChange)|(Barotrauma.LocationTypeChange[])
+---`Field Public Instance`
+---@field MissionIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field MissionTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field HideEntitySubcategories (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field nameIdentifiers System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier
+---`Field Private Instance`
+---@field nameFormatLanguage Barotrauma.LanguageIdentifier
+---`Field Private Instance`
+---@field nameFormats System.Nullable*1System*Collections*Immutable*ImmutableArray*2System*String
+---`Field Private Instance`
+---@field forceOutpostGenerationParamsIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field ShowSonarMarker System.Boolean
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LocationType)|(fun():(Barotrauma.LocationType))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsEnterable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAsBiomeGate System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowInRandomLevels System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UsePortraitInRandomLoadingScreens System.Boolean
+---`Getter Public Instance`
+---@field NameFormats (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+---`Getter Public Instance`
+---@field HasHireableCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasOutpost System.Boolean
+---`Getter Public Instance`
+---@field ReplaceInRadiation Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Getter Public Instance`
+---@field SecondaryFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field RadiationSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field IgnoreGenericEvents System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field StoreMaxReputationModifier System.Single
+---`Getter Public Instance`
+---@field StoreSellPriceModifier System.Single
+---`Getter Public Instance`
+---@field DailySpecialPriceModifier System.Single
+---`Getter Public Instance`
+---@field RequestGoodPriceModifier System.Single
+---`Getter Public Instance`
+---@field StoreInitialBalance System.Int32
+---`Getter Public Instance`
+---@field StorePriceModifierRange System.Int32
+---`Getter Public Instance`
+---@field DailySpecialsCount System.Int32
+---`Getter Public Instance`
+---@field RequestedGoodsCount System.Int32
+_G['LocationType'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LocationType'].ToString = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab)|(fun():(Barotrauma.JobPrefab))
+_G['LocationType'].GetHireablesMissingFromCrew = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.JobPrefab
+_G['LocationType'].GetRandomHireable = function() end
+
+---`Method Public Instance`
+---@param randomSeed System.Int32
+---@return Barotrauma.Sprite
+_G['LocationType'].GetPortrait = function(randomSeed) end
+
+---`Method Public Instance`
+---@param rand System.Random
+---@param existingLocations (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+---@return Barotrauma.Identifier
+_G['LocationType'].GetRandomNameId = function(rand, existingLocations) end
+
+---`Method Public Instance`
+---@param rand System.Random
+---@param existingLocations (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+---@return System.String
+_G['LocationType'].GetRandomRawName = function(rand, existingLocations) end
+
+---`Method Public Static`
+---@param rand System.Random
+---@param zone? System.Nullable*1System*Int32
+---@param requireOutpost? System.Boolean
+---@param predicate? (System.Func*1Barotrauma*LocationType*1System*Boolean)|(fun(arg:Barotrauma.LocationType):(System.Boolean))
+---@return Barotrauma.LocationType
+_G['LocationType'].Random = function(rand, zone, requireOutpost, predicate) end
+
+---`Method Public Instance`
+---@return Barotrauma.OutpostGenerationParams
+_G['LocationType'].GetForcedOutpostGenerationParams = function() end
+
+---`Method Public Instance Virtual`
+_G['LocationType'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CF2270.lua b/Meta/Types/client/_00007FFD97CF2270.lua
new file mode 100644
index 0000000..4f85535
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF2270.lua
@@ -0,0 +1,239 @@
+---@meta
+---@class Barotrauma.Sprite : System.Object
+---`Field Private Instance`
+---@field identifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field cannotBeLoaded System.Boolean
+---`Field NonPublic Instance`
+---@field loadingAsync System.Boolean
+---`Field Private Instance`
+---@field sourceRect Microsoft.Xna.Framework.Rectangle
+---`Field NonPublic Instance`
+---@field offset Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field origin Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field size Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field rotation System.Single
+---`Field Public Instance`
+---@field effects Microsoft.Xna.Framework.Graphics.SpriteEffects
+---`Field NonPublic Instance`
+---@field depth System.Single
+---`Field Private Instance`
+---@field _relativeOrigin Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1System*WeakReference*2Barotrauma*Sprite)|(System.WeakReference*1Barotrauma*Sprite[])
+---`Field Private Static`
+---@field textureRefCounts (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Sprite*TextureRefCounter)|({[Barotrauma.Identifier]:(Barotrauma.Sprite.TextureRefCounter)})
+---`Field Public Static`
+---@field LastBrokenTiledSpriteGameVersion System.Version
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Static`
+---@field LoadedSprites (System.Collections.Generic.IEnumerable*1Barotrauma*Sprite)|(fun():(Barotrauma.Sprite))
+---`Getter NonPublic Instance`
+---
`Setter Private Instance`
+---@field texture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Getter Public Instance`
+---@field Texture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Getter Public Instance`
+---@field Loaded System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SourceElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LazyLoad System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourceRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Depth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RelativeOrigin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RelativeSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FilePath Barotrauma.ContentPath
+---`Getter Public Instance`
+---@field FullPath System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Compress System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EntityIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Name System.String
+_G['Sprite'] = {}
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task
+_G['Sprite'].LazyLoadAsync = function() end
+
+---`Method Public Instance`
+---@param isAsync? System.Boolean
+_G['Sprite'].EnsureLazyLoaded = function(isAsync) end
+
+---`Method Public Instance`
+_G['Sprite'].ReloadTexture = function() end
+
+---`Method Public Static`
+---@param file System.String
+---@param compress? System.Boolean
+---@param contentPackage? Barotrauma.ContentPackage
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['Sprite'].LoadTexture = function(file, compress, contentPackage) end
+
+---`Method Private Instance`
+---@param sourceVector Microsoft.Xna.Framework.Vector4-ref
+---@param shouldReturn System.Boolean-ref
+_G['Sprite'].LoadTexture = function(sourceVector, shouldReturn) end
+
+---`Method Public Instance`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.ISpriteBatch, pos:Microsoft.Xna.Framework.Vector2, rotate?:System.Single, scale?:System.Single, spriteEffect?:Microsoft.Xna.Framework.Graphics.SpriteEffects)
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.ISpriteBatch, pos:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotate?:System.Single, scale?:System.Single, spriteEffect?:Microsoft.Xna.Framework.Graphics.SpriteEffects, depth?:System.Nullable*1System*Single)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate? System.Single
+---@param scale? System.Single
+---@param spriteEffect? Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param depth? System.Nullable*1System*Single
+_G['Sprite'].Draw = function(spriteBatch, pos, color, origin, rotate, scale, spriteEffect, depth) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate System.Single
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param spriteEffect? Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param depth? System.Nullable*1System*Single
+_G['Sprite'].Draw = function(spriteBatch, pos, color, origin, rotate, scale, spriteEffect, depth) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate System.Single
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param spriteEffect? Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param depth? System.Nullable*1System*Single
+_G['Sprite'].DrawSilhouette = function(spriteBatch, pos, origin, rotate, scale, spriteEffect, depth) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param position Microsoft.Xna.Framework.Vector2
+---@param targetSize Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param origin? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param startOffset? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param textureScale? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param depth? System.Nullable*1System*Single
+---@param spriteEffects? System.Nullable*1Microsoft*Xna*Framework*Graphics*SpriteEffects
+_G['Sprite'].DrawTiled = function(spriteBatch, position, targetSize, rotation, origin, color, startOffset, textureScale, depth, spriteEffects) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Sprite'].ToString = function() end
+
+---`Method Private Instance`
+_G['Sprite'].CalculateSourceRect = function() end
+
+---`Method Private Static`
+---@param sprite Barotrauma.Sprite
+_G['Sprite'].AddToList = function(sprite) end
+
+---`Method NonPublic Instance`
+---@param spriteParams Barotrauma.RagdollParams.SpriteParams
+---@param isFlipped System.Boolean
+_G['Sprite'].LoadParams = function(spriteParams, isFlipped) end
+
+---`Method Private Instance`
+---@param newFile System.String
+---@param sourceRectangle? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param newOrigin? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param newOffset? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param newRotation? System.Single
+_G['Sprite'].Init = function(newFile, sourceRectangle, newOrigin, newOffset, newRotation) end
+
+---`Method Public Static`
+---@param sourceElement System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['Sprite'].GetIdentifier = function(sourceElement) end
+
+---`Method Private Static`
+---@param sprite Barotrauma.Sprite
+_G['Sprite'].RemoveFromList = function(sprite) end
+
+---`Method Public Instance`
+_G['Sprite'].Remove = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Sprite'].Finalize = function() end
+
+---`Method Private Instance`
+_G['Sprite'].DisposeTexture = function() end
+
+---`Method Public Instance`
+_G['Sprite'].ReloadXML = function() end
+
+---`Method Public Instance`
+---@param path? System.String
+---@param file? System.String
+---@return System.Boolean
+_G['Sprite'].ParseTexturePath = function(path, file) end
+
+---`Method Private Instance`
+---@return System.Xml.Linq.XElement
+_G['Sprite'].GetLocalizationOverrideElement = function() end
+
+---`Constructor Public Instance`
+---@overload fun(other:Barotrauma.Sprite):Barotrauma.Sprite
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, newOffset:System.Nullable*1Microsoft*Xna*Framework*Vector2, newRotation?:System.Single, path?:System.String):Barotrauma.Sprite
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String, lazyLoad?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.Sprite
+---@overload fun(newFile:System.String, newOrigin:Microsoft.Xna.Framework.Vector2):Barotrauma.Sprite
+---@overload fun(newFile:System.String, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, origin?:System.Nullable*1Microsoft*Xna*Framework*Vector2, rotation?:System.Single):Barotrauma.Sprite
+---@return Barotrauma.Sprite
+_G['Sprite'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(other:Barotrauma.Sprite):Barotrauma.Sprite
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, newOffset:System.Nullable*1Microsoft*Xna*Framework*Vector2, newRotation?:System.Single, path?:System.String):Barotrauma.Sprite
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String, lazyLoad?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.Sprite
+---@overload fun(newFile:System.String, newOrigin:Microsoft.Xna.Framework.Vector2):Barotrauma.Sprite
+---@overload fun(newFile:System.String, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, origin?:System.Nullable*1Microsoft*Xna*Framework*Vector2, rotation?:System.Single):Barotrauma.Sprite
+---@return Barotrauma.Sprite
+_G['Sprite'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(other:Barotrauma.Sprite):Barotrauma.Sprite
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, newOffset:System.Nullable*1Microsoft*Xna*Framework*Vector2, newRotation?:System.Single, path?:System.String):Barotrauma.Sprite
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String, lazyLoad?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.Sprite
+---@overload fun(newFile:System.String, newOrigin:Microsoft.Xna.Framework.Vector2):Barotrauma.Sprite
+---@overload fun(newFile:System.String, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, origin?:System.Nullable*1Microsoft*Xna*Framework*Vector2, rotation?:System.Single):Barotrauma.Sprite
+---@return Barotrauma.Sprite
+_G['Sprite'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(other:Barotrauma.Sprite):Barotrauma.Sprite
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, newOffset:System.Nullable*1Microsoft*Xna*Framework*Vector2, newRotation?:System.Single, path?:System.String):Barotrauma.Sprite
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String, lazyLoad?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.Sprite
+---@overload fun(newFile:System.String, newOrigin:Microsoft.Xna.Framework.Vector2):Barotrauma.Sprite
+---@overload fun(newFile:System.String, sourceRectangle:System.Nullable*1Microsoft*Xna*Framework*Rectangle, origin?:System.Nullable*1Microsoft*Xna*Framework*Vector2, rotation?:System.Single):Barotrauma.Sprite
+---@return Barotrauma.Sprite
+_G['Sprite'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CF3378.lua b/Meta/Types/client/_00007FFD97CF3378.lua
new file mode 100644
index 0000000..933d99d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF3378.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.MapGenerationParametersFile : Barotrauma.ContentFile
+_G['MapGenerationParametersFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['MapGenerationParametersFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['MapGenerationParametersFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['MapGenerationParametersFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MapGenerationParametersFile
+_G['MapGenerationParametersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MapGenerationParametersFile
+_G['MapGenerationParametersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF3520.lua b/Meta/Types/client/_00007FFD97CF3520.lua
new file mode 100644
index 0000000..f2684d7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF3520.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.MissionsFile : Barotrauma.GenericPrefabFile*1Barotrauma*MissionPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+_G['MissionsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['MissionsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['MissionsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.MissionPrefab
+_G['MissionsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MissionsFile
+_G['MissionsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MissionsFile
+_G['MissionsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF4260.lua b/Meta/Types/client/_00007FFD97CF4260.lua
new file mode 100644
index 0000000..1ae68dd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF4260.lua
@@ -0,0 +1,214 @@
+---@meta
+---@class Barotrauma.MissionPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field portraits (System.Collections.Immutable.ImmutableArray*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field hudIcon Barotrauma.Sprite
+---`Field Private Instance`
+---@field hudIconColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Instance`
+---@field overrideMusicOnState (System.Collections.Immutable.ImmutableDictionary*1System*Int32*1Barotrauma*Identifier)|({[System.Int32]:(Barotrauma.Identifier)})
+---`Field Private Instance`
+---@field constructor System.Reflection.ConstructorInfo
+---`Field Public Instance`
+---@field Type Barotrauma.Identifier
+---`Field Public Instance`
+---@field MissionClass System.Type
+---`Field Public Instance`
+---@field MultiplayerOnly System.Boolean
+---`Field Public Instance`
+---@field SingleplayerOnly System.Boolean
+---`Field Public Instance`
+---@field TextIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SuccessMessage Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field FailureMessage Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SonarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SonarIconIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field AchievementIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field ReputationRewards (System.Collections.Immutable.ImmutableList*1Barotrauma*MissionPrefab*ReputationReward)|(Barotrauma.MissionPrefab.ReputationReward[])
+---`Field Public Instance`
+---@field DataRewards (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Object*2Barotrauma*SetDataAction*OperationType)|(System.ValueTuple*1Barotrauma*Identifier*1System*Object*1Barotrauma*SetDataAction*OperationType[])
+---`Field Public Instance`
+---@field Commonness System.Int32
+---`Field Public Instance`
+---@field Difficulty System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Int32
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Int32
+---`Field Public Instance`
+---@field Reward System.Int32
+---`Field Public Instance`
+---@field Headers (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Public Instance`
+---@field Messages (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Public Instance`
+---@field AllowRetry System.Boolean
+---`Field Public Instance`
+---@field ShowInMenus System.Boolean
+---`Field Public Instance`
+---@field ShowStartMessage System.Boolean
+---`Field Public Instance`
+---@field IsSideObjective System.Boolean
+---`Field Public Instance`
+---@field AllowOtherMissionsInLevel System.Boolean
+---`Field Public Instance`
+---@field RequireWreck System.Boolean
+---`Field Public Instance`
+---@field RequireRuin System.Boolean
+---`Field Public Instance`
+---@field RequireBeaconStation System.Boolean
+---`Field Public Instance`
+---@field RequireThalamusWreck System.Boolean
+---`Field Public Instance`
+---@field SpawnBeaconStationInMiddle System.Boolean
+---`Field Public Instance`
+---@field AllowOutpostNPCs System.Boolean
+---`Field Public Instance`
+---@field ForceOutpostGenerationParameters Barotrauma.Identifier
+---`Field Public Instance`
+---@field ForceRespawnMode System.Nullable*1Barotrauma*Networking*RespawnMode
+---`Field Public Instance`
+---@field AllowOutpostSelectionFromTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field LoadSubmarines System.Boolean
+---`Field Public Instance`
+---@field BlockLocationTypeChanges System.Boolean
+---`Field Public Instance`
+---@field ShowProgressBar System.Boolean
+---`Field Public Instance`
+---@field ShowProgressInNumbers System.Boolean
+---`Field Public Instance`
+---@field MaxProgressState System.Int32
+---`Field Public Instance`
+---@field ProgressBarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field AllowedConnectionTypes (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Field Public Instance`
+---@field AllowedLocationTypes (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredLocationFaction Barotrauma.Identifier
+---`Field Public Instance`
+---@field UnhideEntitySubCategories (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field TriggerEvents (System.Collections.Generic.List*1Barotrauma*MissionPrefab*TriggerEvent)|(Barotrauma.MissionPrefab.TriggerEvent[])
+---`Field Public Instance`
+---@field LocationTypeChangeOnCompleted Barotrauma.LocationTypeChange
+---`Field Public Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+---`Field Public Static`
+---@field CoOpMissionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---`Field Public Static`
+---@field PvPMissionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---`Field Public Static`
+---@field HiddenMissionTypes (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field MinDifficulty System.Int32
+---`Field Public Static`
+---@field MaxDifficulty System.Int32
+---`Getter Public Instance`
+---@field HasPortraits System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Icon Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IconColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayTargetHudIcons System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HudIconMaxDistance System.Single
+---`Getter Public Instance`
+---@field HudIcon Barotrauma.Sprite
+---`Getter Public Instance`
+---@field HudIconColor Microsoft.Xna.Framework.Color
+_G['MissionPrefab'] = {}
+
+---`Method Public Instance`
+---@param state System.Int32
+---@return Barotrauma.Identifier
+_G['MissionPrefab'].GetOverrideMusicType = function(state) end
+
+---`Method Public Instance`
+---@param randomSeed System.Int32
+---@return Barotrauma.Sprite
+_G['MissionPrefab'].GetPortrait = function(randomSeed) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@return System.Type
+_G['MissionPrefab'].FindMissionClass = function(element) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param missionClass System.Type
+---@return System.Reflection.ConstructorInfo
+_G['MissionPrefab'].FindMissionConstructor = function(element, missionClass) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['MissionPrefab'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@param from Barotrauma.Location
+---@param to Barotrauma.Location
+---@return System.Boolean
+_G['MissionPrefab'].IsAllowed = function(from, to) end
+
+---`Method Public Instance`
+---@param difficulty System.Single
+---@return System.Boolean
+_G['MissionPrefab'].IsAllowedDifficulty = function(difficulty) end
+
+---`Method Public Instance`
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Mission
+_G['MissionPrefab'].Instantiate = function(locations, sub) end
+
+---`Method Private Instance`
+_G['MissionPrefab'].DisposeProjectSpecific = function() end
+
+---`Method Public Instance Virtual`
+_G['MissionPrefab'].Dispose = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['MissionPrefab'].GetAllMultiplayerSelectableMissionTypes = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CF4498.lua b/Meta/Types/client/_00007FFD97CF4498.lua
new file mode 100644
index 0000000..77bb37c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF4498.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.NPCConversationsFile : Barotrauma.ContentFile
+_G['NPCConversationsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['NPCConversationsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['NPCConversationsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['NPCConversationsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCConversationsFile
+_G['NPCConversationsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCConversationsFile
+_G['NPCConversationsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF4640.lua b/Meta/Types/client/_00007FFD97CF4640.lua
new file mode 100644
index 0000000..4448c53
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF4640.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.NPCPersonalityTraitsFile : Barotrauma.GenericPrefabFile*1Barotrauma*NPCPersonalityTrait
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*NPCPersonalityTrait)|(fun():(Barotrauma.NPCPersonalityTrait))
+_G['NPCPersonalityTraitsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCPersonalityTraitsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCPersonalityTraitsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.NPCPersonalityTrait
+_G['NPCPersonalityTraitsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCPersonalityTraitsFile
+_G['NPCPersonalityTraitsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCPersonalityTraitsFile
+_G['NPCPersonalityTraitsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF4A60.lua b/Meta/Types/client/_00007FFD97CF4A60.lua
new file mode 100644
index 0000000..a78644f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF4A60.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.NPCSetsFile : Barotrauma.GenericPrefabFile*1Barotrauma*NPCSet
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*NPCSet)|(fun():(Barotrauma.NPCSet))
+_G['NPCSetsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCSetsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCSetsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.NPCSet
+_G['NPCSetsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCSetsFile
+_G['NPCSetsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCSetsFile
+_G['NPCSetsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF5590.lua b/Meta/Types/client/_00007FFD97CF5590.lua
new file mode 100644
index 0000000..350fc88
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF5590.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.OrdersFile : Barotrauma.ContentFile
+_G['OrdersFile'] = {}
+
+---`Method Public Instance`
+---@param parentElement Barotrauma.ContentXElement
+---@param overriding System.Boolean
+_G['OrdersFile'].LoadFromXElement = function(parentElement, overriding) end
+
+---`Method Public Instance Virtual`
+_G['OrdersFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OrdersFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OrdersFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OrdersFile
+_G['OrdersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OrdersFile
+_G['OrdersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF57B0.lua b/Meta/Types/client/_00007FFD97CF57B0.lua
new file mode 100644
index 0000000..039271a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF57B0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.OutpostConfigFile : Barotrauma.GenericPrefabFile*1Barotrauma*OutpostGenerationParams
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*OutpostGenerationParams)|(fun():(Barotrauma.OutpostGenerationParams))
+_G['OutpostConfigFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['OutpostConfigFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['OutpostConfigFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.OutpostGenerationParams
+_G['OutpostConfigFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostConfigFile
+_G['OutpostConfigFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostConfigFile
+_G['OutpostConfigFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF70B0.lua b/Meta/Types/client/_00007FFD97CF70B0.lua
new file mode 100644
index 0000000..a7d2b67
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF70B0.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Barotrauma.LevelData : System.Object
+---`Field Public Instance`
+---@field Type Barotrauma.LevelData.LevelType
+---`Field Public Instance`
+---@field Seed System.String
+---`Field Public Instance`
+---@field Difficulty System.Single
+---`Field Public Instance`
+---@field Biome Barotrauma.Biome
+---`Field Public Instance`
+---@field HasBeaconStation System.Boolean
+---`Field Public Instance`
+---@field IsBeaconActive System.Boolean
+---`Field Public Instance`
+---@field HasHuntingGrounds System.Boolean
+---`Field Public Instance`
+---@field OriginallyHadHuntingGrounds System.Boolean
+---`Field Public Instance`
+---@field ForceOutpostGenerationParams Barotrauma.OutpostGenerationParams
+---`Field Public Instance`
+---@field ForceBeaconStation Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field ForceWreck Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field ForceRuinGenerationParams Barotrauma.RuinGeneration.RuinGenerationParams
+---`Field Public Instance`
+---@field AllowInvalidOutpost System.Boolean
+---`Field Public Instance`
+---@field Size Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field InitialDepth System.Int32
+---`Field Public Instance`
+---@field MinMainPathWidth System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field EventHistory (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field NonRepeatableEvents (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field FinishedEvents (System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Int32)|({[Barotrauma.EventSet]:(System.Int32)})
+---`Field Public Static`
+---@field ConsoleForceWreck Barotrauma.SubmarineInfo
+---`Field Public Static`
+---@field ConsoleForceBeaconStation Barotrauma.SubmarineInfo
+---`Field Public Static`
+---@field ForceThalamus Barotrauma.LevelData.ThalamusSpawn
+---`Field Public Static`
+---@field HuntingGroundsDifficultyThreshold System.Single
+---`Field Public Static`
+---@field MaxHuntingGroundsProbability System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GenerationParams Barotrauma.LevelGenerationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EventsExhausted System.Boolean
+---`Getter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---@field RealWorldCrushDepth System.Single
+---`Getter Public Instance`
+---@field OutpostGenerationParamsExist System.Boolean
+_G['LevelData'] = {}
+
+---`Method Public Instance`
+---@param minDifficulty System.Single
+---@param maxDifficulty System.Single
+---@return System.Boolean
+_G['LevelData'].IsAllowedDifficulty = function(minDifficulty, maxDifficulty) end
+
+---`Method Public Static`
+---@param seed? System.String
+---@param difficulty? System.Nullable*1System*Single
+---@param generationParams? Barotrauma.LevelGenerationParams
+---@param biomeId? Barotrauma.Identifier
+---@param requireOutpost? System.Boolean
+---@param pvpOnly? System.Boolean
+---@return Barotrauma.LevelData
+_G['LevelData'].CreateRandom = function(seed, difficulty, generationParams, biomeId, requireOutpost, pvpOnly) end
+
+---`Method Public Instance`
+---@param seed System.String
+_G['LevelData'].ReassignGenerationParams = function(seed) end
+
+---`Method Public Static`
+---@param location Barotrauma.Location
+---@param levelData Barotrauma.LevelData
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerationParams)|(fun():(Barotrauma.OutpostGenerationParams))
+_G['LevelData'].GetSuitableOutpostGenerationParams = function(location, levelData) end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+_G['LevelData'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(seed:System.String, difficulty:System.Single, sizeFactor:System.Single, generationParams:Barotrauma.LevelGenerationParams, biome:Barotrauma.Biome):Barotrauma.LevelData
+---@overload fun(element:System.Xml.Linq.XElement, forceDifficulty?:System.Nullable*1System*Single, clampDifficultyToBiome?:System.Boolean):Barotrauma.LevelData
+---@overload fun(locationConnection:Barotrauma.LocationConnection):Barotrauma.LevelData
+---@param location Barotrauma.Location
+---@param map Barotrauma.Map
+---@param difficulty System.Single
+---@return Barotrauma.LevelData
+_G['LevelData'] = function(location, map, difficulty) end
+
+---`Constructor Public Instance`
+---@overload fun(seed:System.String, difficulty:System.Single, sizeFactor:System.Single, generationParams:Barotrauma.LevelGenerationParams, biome:Barotrauma.Biome):Barotrauma.LevelData
+---@overload fun(element:System.Xml.Linq.XElement, forceDifficulty?:System.Nullable*1System*Single, clampDifficultyToBiome?:System.Boolean):Barotrauma.LevelData
+---@overload fun(locationConnection:Barotrauma.LocationConnection):Barotrauma.LevelData
+---@param location Barotrauma.Location
+---@param map Barotrauma.Map
+---@param difficulty System.Single
+---@return Barotrauma.LevelData
+_G['LevelData'].__new = function(location, map, difficulty) end
+
diff --git a/Meta/Types/client/_00007FFD97CF71F0.lua b/Meta/Types/client/_00007FFD97CF71F0.lua
new file mode 100644
index 0000000..e07e797
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF71F0.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.OutpostFile : Barotrauma.BaseSubFile
+_G['OutpostFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostFile
+_G['OutpostFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostFile
+_G['OutpostFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF7318.lua b/Meta/Types/client/_00007FFD97CF7318.lua
new file mode 100644
index 0000000..76e6ec1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF7318.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.OutpostModuleFile : Barotrauma.BaseSubFile
+_G['OutpostModuleFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostModuleFile
+_G['OutpostModuleFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostModuleFile
+_G['OutpostModuleFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF7490.lua b/Meta/Types/client/_00007FFD97CF7490.lua
new file mode 100644
index 0000000..c32df26
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF7490.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.ParticlesFile : Barotrauma.GenericPrefabFile*1Barotrauma*Particles*ParticlePrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab)|(fun():(Barotrauma.Particles.ParticlePrefab))
+_G['ParticlesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ParticlesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ParticlesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Particles.ParticlePrefab
+_G['ParticlesFile'].CreatePrefab = function(element) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Md5Hash
+_G['ParticlesFile'].CalculateHash = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ParticlesFile
+_G['ParticlesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ParticlesFile
+_G['ParticlesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF8530.lua b/Meta/Types/client/_00007FFD97CF8530.lua
new file mode 100644
index 0000000..04b3c00
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF8530.lua
@@ -0,0 +1,186 @@
+---@meta
+---@class Barotrauma.Particles.ParticlePrefab : Barotrauma.Prefab
+---`Field Public Instance`
+---@field Sprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field angularVelocityMin System.Single
+---`Field Private Instance`
+---@field angularVelocityMax System.Single
+---`Field Private Instance`
+---@field startRotationMin System.Single
+---`Field Private Instance`
+---@field startRotationMax System.Single
+---`Field Private Instance`
+---@field velocityChange Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field velocityChangeWater Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field SubEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitterPrefab)|(Barotrauma.Particles.ParticleEmitterPrefab[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab)|(fun():(Barotrauma.Particles.ParticlePrefab))
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LifeTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LifeTimeMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartDelayMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartDelayMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngularVelocityMinRad System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngularVelocityMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngularVelocityMaxRad System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngularVelocityMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartRotationMinRad System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartRotationMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartRotationMaxRad System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartRotationMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotateToDirection System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Drag System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterDrag System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityChangeDisplay Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityChange Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityChangeWaterDisplay Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityChangeWater Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanEnterSubs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CollisionRadius System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InvariantCollisionSize System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseCollision System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeleteOnCollision System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Friction System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Restitution System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartSizeMin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartSizeMax Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SizeChangeMin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SizeChangeMax Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GrowTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MiddleColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseMiddleColor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DrawTarget Barotrauma.Particles.ParticlePrefab.DrawTargetType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DrawOrder Barotrauma.Particles.ParticleDrawOrder
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DrawAlways System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BlendState Barotrauma.Particles.ParticleBlendState
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Priority System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AnimDuration System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LoopAnim System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['ParticlePrefab'] = {}
+
+---`Method Public Instance`
+---@param startPosition Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['ParticlePrefab'].CalculateEndPosition = function(startPosition, velocity) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['ParticlePrefab'].CalculateEndSize = function() end
+
+---`Method Public Instance Virtual`
+_G['ParticlePrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ContentFile):Barotrauma.Particles.ParticlePrefab
+---@return Barotrauma.Particles.ParticlePrefab
+_G['ParticlePrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ContentFile):Barotrauma.Particles.ParticlePrefab
+---@return Barotrauma.Particles.ParticlePrefab
+_G['ParticlePrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ContentFile):Barotrauma.Particles.ParticlePrefab
+---@return Barotrauma.Particles.ParticlePrefab
+_G['ParticlePrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ContentFile):Barotrauma.Particles.ParticlePrefab
+---@return Barotrauma.Particles.ParticlePrefab
+_G['ParticlePrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CF87A8.lua b/Meta/Types/client/_00007FFD97CF87A8.lua
new file mode 100644
index 0000000..ed0916a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF87A8.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.RandomEventsFile : Barotrauma.ContentFile
+_G['RandomEventsFile'] = {}
+
+---`Method Public Instance`
+---@param parentElement Barotrauma.ContentXElement
+---@param overriding System.Boolean
+_G['RandomEventsFile'].LoadFromXElement = function(parentElement, overriding) end
+
+---`Method Public Instance Virtual`
+_G['RandomEventsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['RandomEventsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['RandomEventsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RandomEventsFile
+_G['RandomEventsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RandomEventsFile
+_G['RandomEventsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF8950.lua b/Meta/Types/client/_00007FFD97CF8950.lua
new file mode 100644
index 0000000..221e842
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF8950.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.RuinConfigFile : Barotrauma.GenericPrefabFile*1Barotrauma*RuinGeneration*RuinGenerationParams
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*RuinGeneration*RuinGenerationParams)|(fun():(Barotrauma.RuinGeneration.RuinGenerationParams))
+_G['RuinConfigFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['RuinConfigFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['RuinConfigFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.RuinGeneration.RuinGenerationParams
+_G['RuinConfigFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RuinConfigFile
+_G['RuinConfigFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RuinConfigFile
+_G['RuinConfigFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF8DA8.lua b/Meta/Types/client/_00007FFD97CF8DA8.lua
new file mode 100644
index 0000000..827c7e1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF8DA8.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.ServerExecutableFile : Barotrauma.OtherFile
+_G['ServerExecutableFile'] = {}
+
+---`Method Public Static`
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ServerExecutableFile'].MutateContentPath = function(path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ServerExecutableFile
+_G['ServerExecutableFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ServerExecutableFile
+_G['ServerExecutableFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF8F00.lua b/Meta/Types/client/_00007FFD97CF8F00.lua
new file mode 100644
index 0000000..e377b9a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF8F00.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.SkillSettingsFile : Barotrauma.ContentFile
+_G['SkillSettingsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['SkillSettingsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['SkillSettingsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['SkillSettingsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SkillSettingsFile
+_G['SkillSettingsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SkillSettingsFile
+_G['SkillSettingsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF90B8.lua b/Meta/Types/client/_00007FFD97CF90B8.lua
new file mode 100644
index 0000000..57b16a2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF90B8.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.SoundsFile : Barotrauma.GenericPrefabFile*1Barotrauma*SoundPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))
+_G['SoundsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SoundPrefab
+_G['SoundsFile'].CreatePrefab = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['SoundsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['SoundsFile'].MatchesSingular = function(identifier) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Md5Hash
+_G['SoundsFile'].CalculateHash = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SoundsFile
+_G['SoundsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SoundsFile
+_G['SoundsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF93D0.lua b/Meta/Types/client/_00007FFD97CF93D0.lua
new file mode 100644
index 0000000..fe5ef3a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF93D0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class Barotrauma.SoundPrefab : Barotrauma.Prefab
+---`Field Public Instance`
+---@field SoundPath Barotrauma.ContentPath
+---`Field Public Instance`
+---@field Element Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field ElementName Barotrauma.Identifier
+---`Field Public Instance`
+---@field Volume System.Single
+---`Field Public Static`
+---@field WaterAmbienceIn (Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))
+---`Field Public Static`
+---@field WaterAmbienceOut (Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))
+---`Field Public Static`
+---@field WaterAmbienceMoving (Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))
+---`Field Public Static`
+---@field StartupSound (Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))
+---`Field Private Static`
+---@field flowSounds (System.Collections.Generic.List*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])
+---`Field Private Static`
+---@field splashSounds (System.Collections.Generic.List*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])
+---`Field Public Static`
+---@field TagToDerivedPrefab (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---`Field Private Static`
+---@field derivedPrefabCollections (System.Collections.Immutable.ImmutableDictionary*1System*Type*1Barotrauma*SoundPrefab*PrefabCollectionHandler)|({[System.Type]:(Barotrauma.SoundPrefab.PrefabCollectionHandler)})
+---`Field Private Static`
+---@field prefabSelectors (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*SoundPrefab)|({[Barotrauma.Identifier]:((Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab)))})
+---`Field Private Static`
+---@field prefabsWithTag (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoundPrefab)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[]))})
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))
+---`Getter Public Static`
+---@field FlowSounds (System.Collections.Generic.IReadOnlyList*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])
+---`Getter Public Static`
+---@field SplashSounds (System.Collections.Generic.IReadOnlyList*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sound Barotrauma.Sounds.Sound
+_G['SoundPrefab'] = {}
+
+---`Method Private Static`
+_G['SoundPrefab'].UpdateSoundsWithTag = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['SoundPrefab'].DetermineIdentifier = function(element) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['SoundPrefab'].IsPlaying = function() end
+
+---`Method Public Instance Virtual`
+_G['SoundPrefab'].Dispose = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SoundPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.SoundsFile
+---@param stream? System.Boolean
+---@return Barotrauma.SoundPrefab
+_G['SoundPrefab'] = function(element, file, stream) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SoundPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.SoundsFile
+---@param stream? System.Boolean
+---@return Barotrauma.SoundPrefab
+_G['SoundPrefab'].__new = function(element, file, stream) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SoundPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.SoundsFile
+---@param stream? System.Boolean
+---@return Barotrauma.SoundPrefab
+_G['SoundPrefab'] = function(element, file, stream) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SoundPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.SoundsFile
+---@param stream? System.Boolean
+---@return Barotrauma.SoundPrefab
+_G['SoundPrefab'].__new = function(element, file, stream) end
+
diff --git a/Meta/Types/client/_00007FFD97CF9618.lua b/Meta/Types/client/_00007FFD97CF9618.lua
new file mode 100644
index 0000000..cc8e117
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF9618.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.StartItemsFile : Barotrauma.GenericPrefabFile*1Barotrauma*StartItemSet
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*StartItemSet)|(fun():(Barotrauma.StartItemSet))
+_G['StartItemsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StartItemsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StartItemsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.StartItemSet
+_G['StartItemsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StartItemsFile
+_G['StartItemsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StartItemsFile
+_G['StartItemsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CF97B0.lua b/Meta/Types/client/_00007FFD97CF97B0.lua
new file mode 100644
index 0000000..a753d86
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF97B0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.StartItemSet : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Items (System.Collections.Immutable.ImmutableArray*1Barotrauma*StartItem)|(Barotrauma.StartItem[])
+---`Field Public Instance`
+---@field Order System.Int32
+---`Field Public Static`
+---@field Sets (Barotrauma.PrefabCollection*1Barotrauma*StartItemSet)|(fun():(Barotrauma.StartItemSet))
+_G['StartItemSet'] = {}
+
+---`Method Public Instance Virtual`
+_G['StartItemSet'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CF9970.lua b/Meta/Types/client/_00007FFD97CF9970.lua
new file mode 100644
index 0000000..0024aa9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CF9970.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.StartItem : System.Object
+---`Field Public Instance`
+---@field Item Barotrauma.Identifier
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field MultiPlayerOnly System.Boolean
+_G['StartItem'] = {}
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.StartItem
+_G['StartItem'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.StartItem
+_G['StartItem'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97CFA230.lua b/Meta/Types/client/_00007FFD97CFA230.lua
new file mode 100644
index 0000000..5cfc49a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFA230.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.StructureFile : Barotrauma.GenericPrefabFile*1Barotrauma*StructurePrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*StructurePrefab)|(fun():(Barotrauma.StructurePrefab))
+_G['StructureFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StructureFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StructureFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.StructurePrefab
+_G['StructureFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StructureFile
+_G['StructureFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StructureFile
+_G['StructureFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFABC0.lua b/Meta/Types/client/_00007FFD97CFABC0.lua
new file mode 100644
index 0000000..37cb6dd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFABC0.lua
@@ -0,0 +1,144 @@
+---@meta
+---@class Barotrauma.StructurePrefab : Barotrauma.MapEntityPrefab
+---`Field Public Instance`
+---@field BackgroundSpriteColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field DecorativeSprites (System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])
+---`Field Public Instance`
+---@field DecorativeSpriteGroups (System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*DecorativeSprite)|({[System.Int32]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[]))})
+---`Field Public Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field IsHorizontal System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field BackgroundSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field health System.Single
+---`Field NonPublic Instance`
+---@field textureScale Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*StructurePrefab)|(fun():(Barotrauma.StructurePrefab))
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipX System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipY System.Boolean
+---`Getter Public Instance`
+---@field ScaledSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Body System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyRotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyWidth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyHeight System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Platform System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAttachItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowRotatingInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinHealth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IndestructibleInOutposts System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CastShadow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StairDirection Barotrauma.Direction
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StairAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NoAITarget System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageSound System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageParticle System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TextureScale Microsoft.Xna.Framework.Vector2
+_G['StructurePrefab'] = {}
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+_G['StructurePrefab'].UpdatePlacing = function(cam) end
+
+---`Method Public Instance Virtual`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, cam:Barotrauma.Camera)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param placeRect Microsoft.Xna.Framework.Rectangle
+---@param scale? System.Single
+---@param rotation? System.Single
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['StructurePrefab'].DrawPlacing = function(spriteBatch, placeRect, scale, rotation, spriteEffects) end
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['StructurePrefab'].DetermineIdentifier = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['StructurePrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance Virtual`
+_G['StructurePrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CFAE40.lua b/Meta/Types/client/_00007FFD97CFAE40.lua
new file mode 100644
index 0000000..338dfb4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFAE40.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.SubmarineFile : Barotrauma.BaseSubFile
+_G['SubmarineFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SubmarineFile
+_G['SubmarineFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SubmarineFile
+_G['SubmarineFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFAFA8.lua b/Meta/Types/client/_00007FFD97CFAFA8.lua
new file mode 100644
index 0000000..eeb7fb1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFAFA8.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.TalentsFile : Barotrauma.GenericPrefabFile*1Barotrauma*TalentPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab)|(fun():(Barotrauma.TalentPrefab))
+_G['TalentsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.TalentPrefab
+_G['TalentsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentsFile
+_G['TalentsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentsFile
+_G['TalentsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFBDF0.lua b/Meta/Types/client/_00007FFD97CFBDF0.lua
new file mode 100644
index 0000000..ab0aa7a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFBDF0.lua
@@ -0,0 +1,50 @@
+---@meta
+---@class Barotrauma.TalentPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field AbilityEffectsStackWithSameTalent System.Boolean
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field TrackedStat Barotrauma.Option*1System*ValueTuple*2Barotrauma*Identifier*2System*Int32
+---`Field Public Instance`
+---@field ColorOverride Barotrauma.Option*1Microsoft*Xna*Framework*Color
+---`Field Public Instance`
+---@field Migrations (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*TalentMigration)|(Barotrauma.TalentMigration[])
+---`Field Public Static`
+---@field TalentPrefabs (Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab)|(fun():(Barotrauma.TalentPrefab))
+---`Getter Public Instance`
+---@field OriginalName System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+_G['TalentPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['TalentPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CFC038.lua b/Meta/Types/client/_00007FFD97CFC038.lua
new file mode 100644
index 0000000..8bbf836
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFC038.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.TalentTreesFile : Barotrauma.GenericPrefabFile*1Barotrauma*TalentTree
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*TalentTree)|(fun():(Barotrauma.TalentTree))
+_G['TalentTreesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentTreesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentTreesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.TalentTree
+_G['TalentTreesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentTreesFile
+_G['TalentTreesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentTreesFile
+_G['TalentTreesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFC2C8.lua b/Meta/Types/client/_00007FFD97CFC2C8.lua
new file mode 100644
index 0000000..33d9c5e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFC2C8.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.TalentTree : Barotrauma.Prefab
+---`Field Public Instance`
+---@field TalentSubTrees (System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentSubTree)|(Barotrauma.TalentSubTree[])
+---`Field Public Instance`
+---@field AllTalentIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field JobTalentTrees (Barotrauma.PrefabCollection*1Barotrauma*TalentTree)|(fun():(Barotrauma.TalentTree))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+_G['TalentTree'] = {}
+
+---`Method Public Instance`
+---@param talentIdentifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentTree'].TalentIsInTree = function(talentIdentifier) end
+
+---`Method Public Static`
+---@overload fun(character:Barotrauma.Character, talentIdentifier:Barotrauma.Identifier):(System.Boolean)
+---@param character Barotrauma.Character
+---@param talentIdentifier Barotrauma.Identifier
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentTree'].IsViableTalentForCharacter = function(character, talentIdentifier, selectedTalents) end
+
+---`Method Public Static`
+---@param tree Barotrauma.TalentTree
+---@param targetTree Barotrauma.TalentSubTree
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentTree'].TalentTreeMeetsRequirements = function(tree, targetTree, selectedTalents) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param subTreeIdentifier Barotrauma.Identifier
+---@param index System.Int32
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return Barotrauma.TalentTree.TalentStages
+_G['TalentTree'].GetTalentOptionStageState = function(character, subTreeIdentifier, index, selectedTalents) end
+
+---`Method Public Static`
+---@param talentIdentifier Barotrauma.Identifier
+---@param characterList (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return System.Boolean
+_G['TalentTree'].IsTalentLocked = function(talentIdentifier, characterList) end
+
+---`Method Public Static`
+---@param controlledCharacter Barotrauma.Character
+---@param selectedTalents (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['TalentTree'].CheckTalentSelection = function(controlledCharacter, selectedTalents) end
+
+---`Method Public Instance Virtual`
+_G['TalentTree'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97CFC648.lua b/Meta/Types/client/_00007FFD97CFC648.lua
new file mode 100644
index 0000000..3168dab
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFC648.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.TalentOption : System.ValueType
+---`Field Private Instance`
+---@field talentIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredTalents System.Int32
+---`Field Public Instance`
+---@field MaxChosenTalents System.Int32
+---`Field Public Instance`
+---@field ShowCaseTalents (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[]))})
+---`Getter Public Instance`
+---@field TalentIdentifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['TalentOption'] = {}
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.CharacterInfo):(System.Boolean)
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentOption'].HasEnoughTalents = function(selectedTalents) end
+
+---`Method Public Instance`
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentOption'].HasMaxTalents = function(selectedTalents) end
+
+---`Method Public Instance`
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentOption'].HasSelectedTalent = function(selectedTalents) end
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Int32
+_G['TalentOption'].CountMatchingTalents = function(talents) end
+
+---`Constructor Public Instance`
+---@param talentOptionsElement Barotrauma.ContentXElement
+---@param debugIdentifier Barotrauma.Identifier
+---@return Barotrauma.TalentOption
+_G['TalentOption'] = function(talentOptionsElement, debugIdentifier) end
+
+---`Constructor Public Instance`
+---@param talentOptionsElement Barotrauma.ContentXElement
+---@param debugIdentifier Barotrauma.Identifier
+---@return Barotrauma.TalentOption
+_G['TalentOption'].__new = function(talentOptionsElement, debugIdentifier) end
+
diff --git a/Meta/Types/client/_00007FFD97CFDEC8.lua b/Meta/Types/client/_00007FFD97CFDEC8.lua
new file mode 100644
index 0000000..89b82e8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFDEC8.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.TalentSubTree : System.Object
+---`Field Public Instance`
+---@field TalentOptionStages (System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentOption)|(Barotrauma.TalentOption[])
+---`Field Public Instance`
+---@field AllTalentIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Type Barotrauma.TalentTreeType
+---`Field Public Instance`
+---@field RequiredTrees (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field BlockedTrees (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+_G['TalentSubTree'] = {}
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentSubTree'].HasEnoughTalents = function(talents) end
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentSubTree'].HasMaxTalents = function(talents) end
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentSubTree'].HasAnyTalent = function(talents) end
+
+---`Constructor Public Instance`
+---@param subTreeElement Barotrauma.ContentXElement
+---@return Barotrauma.TalentSubTree
+_G['TalentSubTree'] = function(subTreeElement) end
+
+---`Constructor Public Instance`
+---@param subTreeElement Barotrauma.ContentXElement
+---@return Barotrauma.TalentSubTree
+_G['TalentSubTree'].__new = function(subTreeElement) end
+
diff --git a/Meta/Types/client/_00007FFD97CFEF18.lua b/Meta/Types/client/_00007FFD97CFEF18.lua
new file mode 100644
index 0000000..bda7ced
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFEF18.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.TextFile : Barotrauma.ContentFile
+_G['TextFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['TextFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['TextFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['TextFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TextFile
+_G['TextFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TextFile
+_G['TextFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFF0C0.lua b/Meta/Types/client/_00007FFD97CFF0C0.lua
new file mode 100644
index 0000000..3bff36d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFF0C0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.TutorialsFile : Barotrauma.GenericPrefabFile*1Barotrauma*TutorialPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*TutorialPrefab)|(fun():(Barotrauma.TutorialPrefab))
+_G['TutorialsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TutorialsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TutorialsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.TutorialPrefab
+_G['TutorialsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TutorialsFile
+_G['TutorialsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TutorialsFile
+_G['TutorialsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFF9A0.lua b/Meta/Types/client/_00007FFD97CFF9A0.lua
new file mode 100644
index 0000000..ad6ecc6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFF9A0.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.UIStyleFile : Barotrauma.HashlessFile
+_G['UIStyleFile'] = {}
+
+---`Method Public Instance`
+---@param parentElement Barotrauma.ContentXElement
+---@param overriding System.Boolean
+_G['UIStyleFile'].LoadFromXElement = function(parentElement, overriding) end
+
+---`Method Public Instance Virtual`
+_G['UIStyleFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['UIStyleFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['UIStyleFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UIStyleFile
+_G['UIStyleFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UIStyleFile
+_G['UIStyleFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFFB48.lua b/Meta/Types/client/_00007FFD97CFFB48.lua
new file mode 100644
index 0000000..1c9ff7b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFFB48.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.UpgradeModulesFile : Barotrauma.GenericPrefabFile*1Barotrauma*UpgradeContentPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*UpgradeContentPrefab)|(fun():(Barotrauma.UpgradeContentPrefab))
+_G['UpgradeModulesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['UpgradeModulesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['UpgradeModulesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UpgradeContentPrefab
+_G['UpgradeModulesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UpgradeModulesFile
+_G['UpgradeModulesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UpgradeModulesFile
+_G['UpgradeModulesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97CFFEB8.lua b/Meta/Types/client/_00007FFD97CFFEB8.lua
new file mode 100644
index 0000000..bd9c04f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97CFFEB8.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.WreckAIConfigFile : Barotrauma.GenericPrefabFile*1Barotrauma*WreckAIConfig
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*WreckAIConfig)|(fun():(Barotrauma.WreckAIConfig))
+_G['WreckAIConfigFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['WreckAIConfigFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['WreckAIConfigFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.WreckAIConfig
+_G['WreckAIConfigFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckAIConfigFile
+_G['WreckAIConfigFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckAIConfigFile
+_G['WreckAIConfigFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97D00908.lua b/Meta/Types/client/_00007FFD97D00908.lua
new file mode 100644
index 0000000..ce98664
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D00908.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.WreckFile : Barotrauma.BaseSubFile
+_G['WreckFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckFile
+_G['WreckFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckFile
+_G['WreckFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/client/_00007FFD97D012E8.lua b/Meta/Types/client/_00007FFD97D012E8.lua
new file mode 100644
index 0000000..e2becbe
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D012E8.lua
@@ -0,0 +1,474 @@
+---@meta
+---@class Barotrauma.XMLExtensions : System.Object
+---`Field Private Static`
+---@field Converters (System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*Func*2System*String*2System*Object*2System*Object)|({[System.Type]:((System.Func*1System*String*1System*Object*1System*Object)|(fun(arg1:System.String, arg2:System.Object):(System.Object)))})
+---`Field Public Static`
+---@field ReaderSettings System.Xml.XmlReaderSettings
+---`Field Private Static`
+---@field monoGameColors (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color)|({[Barotrauma.Identifier]:(Microsoft.Xna.Framework.Color)})
+_G['XMLExtensions'] = {}
+
+---`Method Public Static`
+---@overload fun(container:System.Xml.Linq.XContainer, ...:System.String):((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param container System.Xml.Linq.XContainer
+---@param name System.String
+---@param comparisonMethod? System.StringComparison
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XMLExtensions'].GetChildElements = function(container, name, comparisonMethod) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param other System.Xml.Linq.XElement
+---@return System.Boolean
+_G['XMLExtensions'].ComesAfter = function(element, other) end
+
+---`Method Public Static`
+---@overload fun(elem:System.Xml.Linq.XElement):(Barotrauma.Identifier)
+---@param attr System.Xml.Linq.XAttribute
+---@return Barotrauma.Identifier
+_G['XMLExtensions'].NameAsIdentifier = function(attr) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XObject
+---@return System.String
+_G['XMLExtensions'].ParseContentPathFromUri = function(element) end
+
+---`Method Public Static`
+---@param stream System.IO.Stream
+---@param baseUri? System.String
+---@return System.Xml.XmlReader
+_G['XMLExtensions'].CreateReader = function(stream, baseUri) end
+
+---`Method Public Static`
+---@overload fun(stream:System.IO.Stream):(System.Xml.Linq.XDocument)
+---@overload fun(path:Barotrauma.ContentPath):(System.Xml.Linq.XDocument)
+---@overload fun(filePath:System.String):(System.Xml.Linq.XDocument)
+---@param filePath System.String
+---@param exception System.Exception-ref
+---@return System.Xml.Linq.XDocument
+_G['XMLExtensions'].TryLoadXml = function(filePath, exception) end
+
+---`Method Public Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@return System.Object
+_G['XMLExtensions'].GetAttributeObject = function(attribute) end
+
+---`Method Public Static`
+---@param value System.String
+---@return System.Object
+_G['XMLExtensions'].ParseToObject = function(value) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.String
+---@return System.String
+_G['XMLExtensions'].GetAttributeString = function(element, name, defaultValue) end
+
+---`Method Private Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.String
+---@return System.String
+_G['XMLExtensions'].GetAttributeString = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.String
+---@return System.String
+_G['XMLExtensions'].GetAttributeStringUnrestricted = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@return System.Boolean
+_G['XMLExtensions'].DoesAttributeReferenceFileNameAlone = function(element, name) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param contentPackage Barotrauma.ContentPackage
+---@return Barotrauma.ContentPath
+_G['XMLExtensions'].GetAttributeContentPath = function(element, name, contentPackage) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.String):(Barotrauma.Identifier)
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['XMLExtensions'].GetAttributeIdentifier = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.String-arr)|(System.String[])
+---@param trim? System.Boolean
+---@param convertToLowerInvariant? System.Boolean
+---@return (System.String-arr)|(System.String[])
+_G['XMLExtensions'].GetAttributeStringArray = function(element, name, defaultValue, trim, convertToLowerInvariant) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, defaultValue:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), ...:System.String):((Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]))
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+_G['XMLExtensions'].GetAttributeIdentifierArray = function(element, name, defaultValue, trim) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param key System.String
+---@param defaultValue (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['XMLExtensions'].GetAttributeIdentifierImmutableHashSet = function(element, key, defaultValue, trim) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, defaultValue:System.Single, ...:System.String):(System.Single)
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Single):(System.Single)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Single
+---@return System.Single
+_G['XMLExtensions'].GetAttributeFloat = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Double):(System.Double)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Double
+---@return System.Double
+_G['XMLExtensions'].GetAttributeDouble = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.Single-arr)|(System.Single[])
+---@return (System.Single-arr)|(System.Single[])
+_G['XMLExtensions'].GetAttributeFloatArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param result System.Int32-ref
+---@return System.Boolean
+_G['XMLExtensions'].TryGetAttributeInt = function(element, name, result) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Int32):(System.Int32)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Int32
+---@return System.Int32
+_G['XMLExtensions'].GetAttributeInt = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.UInt32
+---@return System.UInt32
+_G['XMLExtensions'].GetAttributeUInt = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.UInt16
+---@return System.UInt16
+_G['XMLExtensions'].GetAttributeUInt16 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.UInt64
+---@return System.UInt64
+_G['XMLExtensions'].GetAttributeUInt64 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@return Barotrauma.Option*1Barotrauma*SerializableDateTime
+_G['XMLExtensions'].GetAttributeDateTime = function(element, name) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.Version
+---@return System.Version
+_G['XMLExtensions'].GetAttributeVersion = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.Int32-arr)|(System.Int32[])
+---@return (System.Int32-arr)|(System.Int32[])
+_G['XMLExtensions'].GetAttributeIntArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.UInt16-arr)|(System.UInt16[])
+---@return (System.UInt16-arr)|(System.UInt16[])
+_G['XMLExtensions'].GetAttributeUshortArray = function(element, name, defaultValue) end
+
+---`Method Private Static`
+---@param value System.String
+---@param defaultValue Barotrauma.XMLExtensions.T
+---@param attribute System.Xml.Linq.XAttribute
+---@return Barotrauma.XMLExtensions.T
+_G['XMLExtensions'].ParseEnumValue = function(value, defaultValue, attribute) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Barotrauma.XMLExtensions.T
+---@return Barotrauma.XMLExtensions.T
+_G['XMLExtensions'].GetAttributeEnum = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (Barotrauma.T-arr)|(Barotrauma.XMLExtensions.T[])
+---@return (Barotrauma.T-arr)|(Barotrauma.XMLExtensions.T[])
+_G['XMLExtensions'].GetAttributeEnumArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Boolean):(System.Boolean)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Boolean
+---@return System.Boolean
+_G['XMLExtensions'].GetAttributeBool = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['XMLExtensions'].GetAttributePoint = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['XMLExtensions'].GetAttributeVector2 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Vector3
+---@return Microsoft.Xna.Framework.Vector3
+_G['XMLExtensions'].GetAttributeVector3 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Vector4
+_G['XMLExtensions'].GetAttributeVector4 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:Microsoft.Xna.Framework.Color):(Microsoft.Xna.Framework.Color)
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@return System.Nullable*1Microsoft*Xna*Framework*Color
+_G['XMLExtensions'].GetAttributeColor = function(element, name) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---@return (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+_G['XMLExtensions'].GetAttributeColorArray = function(element, name, defaultValue) end
+
+---`Method Private Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@param element System.Xml.Linq.XElement
+---@param e System.Exception
+_G['XMLExtensions'].LogAttributeError = function(attribute, element, e) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Barotrauma.KeyOrMouse
+---@return Barotrauma.KeyOrMouse
+_G['XMLExtensions'].GetAttributeKeyOrMouse = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['XMLExtensions'].GetAttributeRect = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+---@return System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+_G['XMLExtensions'].GetAttributeTuple = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.ValueTuple)|(System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2[])
+---@return (System.ValueTuple)|(System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2[])
+_G['XMLExtensions'].GetAttributeTupleArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Barotrauma.Range*1System*Int32
+---@return Barotrauma.Range*1System*Int32
+_G['XMLExtensions'].GetAttributeRange = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param el System.Xml.Linq.XElement
+---@return System.String
+_G['XMLExtensions'].ElementInnerText = function(el) end
+
+---`Method Public Static`
+---@param point Microsoft.Xna.Framework.Point
+---@return System.String
+_G['XMLExtensions'].PointToString = function(point) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return System.String
+_G['XMLExtensions'].Vector2ToString = function(vector) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector3
+---@param format? System.String
+---@return System.String
+_G['XMLExtensions'].Vector3ToString = function(vector, format) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector4
+---@param format? System.String
+---@return System.String
+_G['XMLExtensions'].Vector4ToString = function(vector, format) end
+
+---`Method Public Static`
+---@param color Microsoft.Xna.Framework.Color
+---@return System.String
+_G['XMLExtensions'].ColorToString = function(color) end
+
+---`Method Public Static`
+---@param color Microsoft.Xna.Framework.Color
+---@return System.String
+_G['XMLExtensions'].ToStringHex = function(color) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@return System.String
+_G['XMLExtensions'].RectToString = function(rect) end
+
+---`Method Public Static`
+---@param strValue System.String
+---@param defaultValue System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+---@return System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+_G['XMLExtensions'].ParseTuple = function(strValue, defaultValue) end
+
+---`Method Public Static`
+---@param stringPoint System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Point
+_G['XMLExtensions'].ParsePoint = function(stringPoint, errorMessages) end
+
+---`Method Public Static`
+---@param stringVector2 System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['XMLExtensions'].ParseVector2 = function(stringVector2, errorMessages) end
+
+---`Method Public Static`
+---@param stringVector3 System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Vector3
+_G['XMLExtensions'].ParseVector3 = function(stringVector3, errorMessages) end
+
+---`Method Public Static`
+---@param stringVector4 System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Vector4
+_G['XMLExtensions'].ParseVector4 = function(stringVector4, errorMessages) end
+
+---`Method Public Static`
+---@param stringColor System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Color
+_G['XMLExtensions'].ParseColor = function(stringColor, errorMessages) end
+
+---`Method Public Static`
+---@param stringRect System.String
+---@param requireSize System.Boolean
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['XMLExtensions'].ParseRect = function(stringRect, requireSize, errorMessages) end
+
+---`Method Public Static`
+---@param stringArray (System.String-arr)|(System.String[])
+---@return (System.Single-arr)|(System.Single[])
+_G['XMLExtensions'].ParseFloatArray = function(stringArray) end
+
+---`Method Public Static`
+---@param rangeString System.String
+---@return Barotrauma.Range*1System*Int32
+_G['XMLExtensions'].ParseRange = function(rangeString) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['XMLExtensions'].VariantOf = function(element) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['XMLExtensions'].IsOverride = function(element) end
+
+---`Method Public Static`
+---@param doc System.Xml.Linq.XDocument
+---@return System.Xml.Linq.XElement
+_G['XMLExtensions'].GetRootExcludingOverride = function(doc) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['XMLExtensions'].FirstElement = function(element) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, comparisonMethod?:System.StringComparison):(System.Xml.Linq.XAttribute)
+---@overload fun(element:System.Xml.Linq.XElement, name:Barotrauma.Identifier):(System.Xml.Linq.XAttribute)
+---@param element System.Xml.Linq.XElement
+---@param predicate (System.Func*1System*Xml*Linq*XAttribute*1System*Boolean)|(fun(arg:System.Xml.Linq.XAttribute):(System.Boolean))
+---@return System.Xml.Linq.XAttribute
+_G['XMLExtensions'].GetAttribute = function(element, predicate) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param value System.Object
+---@param comparisonMethod? System.StringComparison
+---@return System.Boolean
+_G['XMLExtensions'].TrySetAttributeValue = function(element, name, value, comparisonMethod) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param value System.Object
+_G['XMLExtensions'].SetAttribute = function(element, name, value) end
+
+---`Method Public Static`
+---@param container System.Xml.Linq.XContainer
+---@param name System.String
+---@param comparisonMethod? System.StringComparison
+---@return System.Xml.Linq.XElement
+_G['XMLExtensions'].GetChildElement = function(container, name, comparisonMethod) end
+
+---`Constructor Private Static`
+---@return Barotrauma.XMLExtensions
+_G['XMLExtensions'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.XMLExtensions
+_G['XMLExtensions'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D0A4F8.lua b/Meta/Types/client/_00007FFD97D0A4F8.lua
new file mode 100644
index 0000000..e1c1b6f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0A4F8.lua
@@ -0,0 +1,182 @@
+---@meta
+---@class System.Xml.Linq.XNode : System.Xml.Linq.XObject
+---`Field NonPublic Instance`
+---@field next System.Xml.Linq.XNode
+---`Field Private Static`
+---@field s_documentOrderComparer System.Xml.Linq.XNodeDocumentOrderComparer
+---`Field Private Static`
+---@field s_equalityComparer System.Xml.Linq.XNodeEqualityComparer
+---`Getter Public Instance`
+---@field NextNode System.Xml.Linq.XNode
+---`Getter Public Instance`
+---@field PreviousNode System.Xml.Linq.XNode
+---`Getter Public Static`
+---@field DocumentOrderComparer System.Xml.Linq.XNodeDocumentOrderComparer
+---`Getter Public Static`
+---@field EqualityComparer System.Xml.Linq.XNodeEqualityComparer
+_G['XNode'] = {}
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XNode'].AddAfterSelf = function(...) end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XNode'].AddBeforeSelf = function(...) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].Ancestors = function(name) end
+
+---`Method Public Static`
+---@param n1 System.Xml.Linq.XNode
+---@param n2 System.Xml.Linq.XNode
+---@return System.Int32
+_G['XNode'].CompareDocumentOrder = function(n1, n2) end
+
+---`Method Public Instance`
+---@overload fun():(System.Xml.XmlReader)
+---@param readerOptions System.Xml.Linq.ReaderOptions
+---@return System.Xml.XmlReader
+_G['XNode'].CreateReader = function(readerOptions) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XNode'].NodesAfterSelf = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XNode'].NodesBeforeSelf = function() end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].ElementsAfterSelf = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].ElementsBeforeSelf = function(name) end
+
+---`Method Public Instance`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].IsAfter = function(node) end
+
+---`Method Public Instance`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].IsBefore = function(node) end
+
+---`Method Public Static`
+---@param reader System.Xml.XmlReader
+---@return System.Xml.Linq.XNode
+_G['XNode'].ReadFrom = function(reader) end
+
+---`Method Public Static`
+---@param reader System.Xml.XmlReader
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XNode
+_G['XNode'].ReadFromAsync = function(reader, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XNode
+_G['XNode'].ReadFromAsyncInternal = function(reader, cancellationToken) end
+
+---`Method Public Instance`
+_G['XNode'].Remove = function() end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XNode'].ReplaceWith = function(...) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['XNode'].ToString = function() end
+
+---`Method Public Instance`
+---@param options System.Xml.Linq.SaveOptions
+---@return System.String
+_G['XNode'].ToString = function(options) end
+
+---`Method Public Static`
+---@param n1 System.Xml.Linq.XNode
+---@param n2 System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].DeepEquals = function(n1, n2) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].DeepEquals = function(node) end
+
+---`Method Public Instance Abstract Virtual`
+---@param writer System.Xml.XmlWriter
+_G['XNode'].WriteTo = function(writer) end
+
+---`Method Public Instance Abstract Virtual`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XNode'].WriteToAsync = function(writer, cancellationToken) end
+
+---`Method NonPublic Instance Virtual`
+---@param sb System.Text.StringBuilder
+_G['XNode'].AppendText = function(sb) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Xml.Linq.XNode
+_G['XNode'].CloneNode = function() end
+
+---`Method NonPublic Instance`
+---@param name System.Xml.Linq.XName
+---@param self System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].GetAncestors = function(name, self) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].GetElementsAfterSelf = function(name) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].GetElementsBeforeSelf = function(name) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Int32
+_G['XNode'].GetDeepHashCode = function() end
+
+---`Method NonPublic Static`
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.XmlReaderSettings
+_G['XNode'].GetXmlReaderSettings = function(o) end
+
+---`Method NonPublic Static`
+---@param o System.Xml.Linq.SaveOptions
+---@return System.Xml.XmlWriterSettings
+_G['XNode'].GetXmlWriterSettings = function(o) end
+
+---`Method Private Instance`
+---@param o System.Xml.Linq.SaveOptions
+---@return System.String
+_G['XNode'].GetXmlString = function(o) end
+
+---`Constructor NonPublic Instance`
+---@return System.Xml.Linq.XNode
+_G['XNode'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return System.Xml.Linq.XNode
+_G['XNode'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D0AAC0.lua b/Meta/Types/client/_00007FFD97D0AAC0.lua
new file mode 100644
index 0000000..2e9fdb1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0AAC0.lua
@@ -0,0 +1,201 @@
+---@meta
+---@class System.Xml.Linq.XContainer : System.Xml.Linq.XNode
+---`Field NonPublic Instance`
+---@field content System.Object
+---`Getter Public Instance`
+---@field FirstNode System.Xml.Linq.XNode
+---`Getter Public Instance`
+---@field LastNode System.Xml.Linq.XNode
+_G['XContainer'] = {}
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XContainer'].Add = function(...) end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XContainer'].AddFirst = function(...) end
+
+---`Method Public Instance`
+---@return System.Xml.XmlWriter
+_G['XContainer'].CreateWriter = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XContainer'].DescendantNodes = function() end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].Descendants = function(name) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@return System.Xml.Linq.XElement
+_G['XContainer'].Element = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].Elements = function(name) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XContainer'].Nodes = function() end
+
+---`Method Public Instance`
+_G['XContainer'].RemoveNodes = function() end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XContainer'].ReplaceNodes = function(...) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XContainer'].AddAttribute = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XContainer'].AddAttributeSkipNotify = function(a) end
+
+---`Method NonPublic Instance`
+---@param content System.Object
+_G['XContainer'].AddContentSkipNotify = function(content) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AddNode = function(n) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AddNodeSkipNotify = function(n) end
+
+---`Method NonPublic Instance`
+---@param s System.String
+_G['XContainer'].AddString = function(s) end
+
+---`Method NonPublic Instance`
+---@param s System.String
+_G['XContainer'].AddStringSkipNotify = function(s) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AppendNode = function(n) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AppendNodeSkipNotify = function(n) end
+
+---`Method NonPublic Instance Virtual`
+---@param sb System.Text.StringBuilder
+_G['XContainer'].AppendText = function(sb) end
+
+---`Method Private Instance`
+---@return System.String
+_G['XContainer'].GetTextOnly = function() end
+
+---`Method Private Instance`
+---@param n System.Xml.Linq.XNode-ref
+---@return System.String
+_G['XContainer'].CollectText = function(n) end
+
+---`Method NonPublic Instance`
+---@param e System.Xml.Linq.XContainer
+---@return System.Boolean
+_G['XContainer'].ContentsEqual = function(e) end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['XContainer'].ContentsHashCode = function() end
+
+---`Method NonPublic Instance`
+_G['XContainer'].ConvertTextToNode = function() end
+
+---`Method NonPublic Instance`
+---@param self System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XContainer'].GetDescendantNodes = function(self) end
+
+---`Method NonPublic Instance`
+---@param name System.Xml.Linq.XName
+---@param self System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].GetDescendants = function(name, self) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].GetElements = function(name) end
+
+---`Method NonPublic Static`
+---@param value System.Object
+---@return System.String
+_G['XContainer'].GetStringValue = function(value) end
+
+---`Method NonPublic Instance`
+---@overload fun(r:System.Xml.XmlReader)
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+_G['XContainer'].ReadContentFrom = function(r, o) end
+
+---`Method NonPublic Instance`
+---@overload fun(r:System.Xml.XmlReader, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XContainer'].ReadContentFromAsync = function(r, o, cancellationToken) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].RemoveNode = function(n) end
+
+---`Method Private Instance`
+_G['XContainer'].RemoveNodesSkipNotify = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@param previous System.Xml.Linq.XNode
+_G['XContainer'].ValidateNode = function(node, previous) end
+
+---`Method NonPublic Instance Virtual`
+---@param s System.String
+_G['XContainer'].ValidateString = function(s) end
+
+---`Method NonPublic Instance`
+---@param writer System.Xml.XmlWriter
+_G['XContainer'].WriteContentTo = function(writer) end
+
+---`Method NonPublic Instance`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XContainer'].WriteContentToAsync = function(writer, cancellationToken) end
+
+---`Method Private Static`
+---@param list (System.Collections.Generic.List*1System*Object)|(System.Object[])
+---@param content System.Object
+_G['XContainer'].AddContentToList = function(list, content) end
+
+---`Method NonPublic Static`
+---@param content System.Object
+---@return System.Object
+_G['XContainer'].GetContentSnapshot = function(content) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Xml.Linq.XContainer
+---@param other System.Xml.Linq.XContainer
+---@return System.Xml.Linq.XContainer
+_G['XContainer'] = function(other) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Xml.Linq.XContainer
+---@param other System.Xml.Linq.XContainer
+---@return System.Xml.Linq.XContainer
+_G['XContainer'].__new = function(other) end
+
diff --git a/Meta/Types/client/_00007FFD97D0B750.lua b/Meta/Types/client/_00007FFD97D0B750.lua
new file mode 100644
index 0000000..6740604
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0B750.lua
@@ -0,0 +1,338 @@
+---@meta
+---@class System.Xml.Linq.XElement : System.Xml.Linq.XContainer
+---`Field NonPublic Instance`
+---@field name System.Xml.Linq.XName
+---`Field NonPublic Instance`
+---@field lastAttr System.Xml.Linq.XAttribute
+---`Getter Public Static`
+---@field EmptySequence (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+---`Getter Public Instance`
+---@field FirstAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance`
+---@field HasAttributes System.Boolean
+---`Getter Public Instance`
+---@field HasElements System.Boolean
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+---`Getter Public Instance`
+---@field LastAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Name System.Xml.Linq.XName
+---`Getter Public Instance Virtual`
+---@field NodeType System.Xml.XmlNodeType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Value System.String
+_G['XElement'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AddAttribute = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AddAttributeSkipNotify = function(a) end
+
+---`Method NonPublic Instance`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AppendAttribute = function(a) end
+
+---`Method NonPublic Instance`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AppendAttributeSkipNotify = function(a) end
+
+---`Method Private Instance`
+---@param e System.Xml.Linq.XElement
+---@return System.Boolean
+_G['XElement'].AttributesEqual = function(e) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Xml.Linq.XNode
+_G['XElement'].CloneNode = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XElement'].DeepEquals = function(node) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+_G['XElement'].GetAttributes = function(name) end
+
+---`Method Private Instance`
+---@param prefix System.String
+---@param outOfScope System.Xml.Linq.XElement
+---@return System.String
+_G['XElement'].GetNamespaceOfPrefixInScope = function(prefix, outOfScope) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Int32
+_G['XElement'].GetDeepHashCode = function() end
+
+---`Method Private Instance`
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+_G['XElement'].ReadElementFrom = function(r, o) end
+
+---`Method Private Instance`
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@param cancellationTokentoken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].ReadElementFromAsync = function(r, o, cancellationTokentoken) end
+
+---`Method Private Instance`
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+_G['XElement'].ReadElementFromImpl = function(r, o) end
+
+---`Method NonPublic Instance`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].RemoveAttribute = function(a) end
+
+---`Method Private Instance`
+_G['XElement'].RemoveAttributesSkipNotify = function() end
+
+---`Method NonPublic Instance`
+---@param lineNumber System.Int32
+---@param linePosition System.Int32
+_G['XElement'].SetEndElementLineInfo = function(lineNumber, linePosition) end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@param previous System.Xml.Linq.XNode
+_G['XElement'].ValidateNode = function(node, previous) end
+
+---`Method NonPublic Static`
+---@param r System.Xml.XmlReader
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XElement
+_G['XElement'].CreateAsync = function(r, cancellationToken) end
+
+---`Method Public Instance`
+---@overload fun(fileName:System.String)
+---@overload fun(fileName:System.String, options:System.Xml.Linq.SaveOptions)
+---@overload fun(stream:System.IO.Stream)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions)
+---@overload fun(textWriter:System.IO.TextWriter)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions)
+---@param writer System.Xml.XmlWriter
+_G['XElement'].Save = function(writer) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XElement'].AncestorsAndSelf = function(name) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@return System.Xml.Linq.XAttribute
+_G['XElement'].Attribute = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+_G['XElement'].Attributes = function(name) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XElement'].DescendantNodesAndSelf = function() end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XElement'].DescendantsAndSelf = function(name) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XNamespace
+_G['XElement'].GetDefaultNamespace = function() end
+
+---`Method Public Instance`
+---@param prefix System.String
+---@return System.Xml.Linq.XNamespace
+_G['XElement'].GetNamespaceOfPrefix = function(prefix) end
+
+---`Method Public Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@return System.String
+_G['XElement'].GetPrefixOfNamespace = function(ns) end
+
+---`Method Public Static`
+---@overload fun(uri:System.String):(System.Xml.Linq.XElement)
+---@overload fun(uri:System.String, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XElement)
+---@overload fun(stream:System.IO.Stream):(System.Xml.Linq.XElement)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XElement)
+---@overload fun(textReader:System.IO.TextReader):(System.Xml.Linq.XElement)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XElement)
+---@overload fun(reader:System.Xml.XmlReader):(System.Xml.Linq.XElement)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].Load = function(reader, options) end
+
+---`Method Public Static`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XElement)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XElement)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XElement
+_G['XElement'].LoadAsync = function(reader, options, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XElement
+_G['XElement'].LoadAsyncInternal = function(reader, options, cancellationToken) end
+
+---`Method Public Static`
+---@overload fun(text:System.String):(System.Xml.Linq.XElement)
+---@param text System.String
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].Parse = function(text, options) end
+
+---`Method Public Instance`
+_G['XElement'].RemoveAll = function() end
+
+---`Method Public Instance`
+_G['XElement'].RemoveAttributes = function() end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XElement'].ReplaceAll = function(...) end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XElement'].ReplaceAttributes = function(...) end
+
+---`Method Public Instance`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].SaveAsync = function(writer, cancellationToken) end
+
+---`Method Private Instance`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].SaveAsyncInternal = function(writer, cancellationToken) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@param value System.Object
+_G['XElement'].SetAttributeValue = function(name, value) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@param value System.Object
+_G['XElement'].SetElementValue = function(name, value) end
+
+---`Method Public Instance`
+---@param value System.Object
+_G['XElement'].SetValue = function(value) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+_G['XElement'].WriteTo = function(writer) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].WriteToAsync = function(writer, cancellationToken) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'] = function(r, o) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].__new = function(r, o) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'] = function(r, o) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].__new = function(r, o) end
+
+---`Constructor Private Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'] = function(r, o) end
+
+---`Constructor Private Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].__new = function(r, o) end
+
diff --git a/Meta/Types/client/_00007FFD97D0BAA8.lua b/Meta/Types/client/_00007FFD97D0BAA8.lua
new file mode 100644
index 0000000..a4bf068
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0BAA8.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class System.Xml.Linq.XName : System.Object
+---`Field Private Instance`
+---@field _ns System.Xml.Linq.XNamespace
+---`Field Private Instance`
+---@field _localName System.String
+---`Field Private Instance`
+---@field _hashCode System.Int32
+---`Getter Public Instance`
+---@field LocalName System.String
+---`Getter Public Instance`
+---@field Namespace System.Xml.Linq.XNamespace
+---`Getter Public Instance`
+---@field NamespaceName System.String
+_G['XName'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['XName'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(expandedName:System.String):(System.Xml.Linq.XName)
+---@param localName System.String
+---@param namespaceName System.String
+---@return System.Xml.Linq.XName
+_G['XName'].Get = function(localName, namespaceName) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['XName'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['XName'].GetHashCode = function() end
+
+---`Constructor NonPublic Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@param localName System.String
+---@return System.Xml.Linq.XName
+_G['XName'] = function(ns, localName) end
+
+---`Constructor NonPublic Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@param localName System.String
+---@return System.Xml.Linq.XName
+_G['XName'].__new = function(ns, localName) end
+
diff --git a/Meta/Types/client/_00007FFD97D0C070.lua b/Meta/Types/client/_00007FFD97D0C070.lua
new file mode 100644
index 0000000..770f589
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0C070.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class System.Xml.Linq.XAttribute : System.Xml.Linq.XObject
+---`Field NonPublic Instance`
+---@field next System.Xml.Linq.XAttribute
+---`Field NonPublic Instance`
+---@field name System.Xml.Linq.XName
+---`Field NonPublic Instance`
+---@field value System.String
+---`Getter Public Static`
+---@field EmptySequence (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+---`Getter Public Instance`
+---@field IsNamespaceDeclaration System.Boolean
+---`Getter Public Instance`
+---@field Name System.Xml.Linq.XName
+---`Getter Public Instance`
+---@field NextAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance Virtual`
+---@field NodeType System.Xml.XmlNodeType
+---`Getter Public Instance`
+---@field PreviousAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Value System.String
+_G['XAttribute'] = {}
+
+---`Method Public Instance`
+_G['XAttribute'].Remove = function() end
+
+---`Method Public Instance`
+---@param value System.Object
+_G['XAttribute'].SetValue = function(value) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['XAttribute'].ToString = function() end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['XAttribute'].GetDeepHashCode = function() end
+
+---`Method NonPublic Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@return System.String
+_G['XAttribute'].GetPrefixOfNamespace = function(ns) end
+
+---`Method Private Static`
+---@param name System.Xml.Linq.XName
+---@param value System.String
+_G['XAttribute'].ValidateAttribute = function(name, value) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName, value:System.Object):System.Xml.Linq.XAttribute
+---@param other System.Xml.Linq.XAttribute
+---@return System.Xml.Linq.XAttribute
+_G['XAttribute'] = function(other) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName, value:System.Object):System.Xml.Linq.XAttribute
+---@param other System.Xml.Linq.XAttribute
+---@return System.Xml.Linq.XAttribute
+_G['XAttribute'].__new = function(other) end
+
diff --git a/Meta/Types/client/_00007FFD97D0C6A0.lua b/Meta/Types/client/_00007FFD97D0C6A0.lua
new file mode 100644
index 0000000..936bf05
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0C6A0.lua
@@ -0,0 +1,153 @@
+---@meta
+---@class System.Xml.Linq.XDocument : System.Xml.Linq.XContainer
+---`Field Private Instance`
+---@field _declaration System.Xml.Linq.XDeclaration
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Declaration System.Xml.Linq.XDeclaration
+---`Getter Public Instance`
+---@field DocumentType System.Xml.Linq.XDocumentType
+---`Getter Public Instance Virtual`
+---@field NodeType System.Xml.XmlNodeType
+---`Getter Public Instance`
+---@field Root System.Xml.Linq.XElement
+_G['XDocument'] = {}
+
+---`Method Public Static`
+---@overload fun(uri:System.String):(System.Xml.Linq.XDocument)
+---@overload fun(uri:System.String, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XDocument)
+---@overload fun(stream:System.IO.Stream):(System.Xml.Linq.XDocument)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XDocument)
+---@overload fun(textReader:System.IO.TextReader):(System.Xml.Linq.XDocument)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XDocument)
+---@overload fun(reader:System.Xml.XmlReader):(System.Xml.Linq.XDocument)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].Load = function(reader, options) end
+
+---`Method Public Static`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XDocument)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XDocument)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XDocument
+_G['XDocument'].LoadAsync = function(reader, options, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XDocument
+_G['XDocument'].LoadAsyncInternal = function(reader, options, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].InitLoad = function(reader, options) end
+
+---`Method Public Static`
+---@overload fun(text:System.String):(System.Xml.Linq.XDocument)
+---@param text System.String
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].Parse = function(text, options) end
+
+---`Method Public Instance`
+---@overload fun(stream:System.IO.Stream)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions)
+---@overload fun(textWriter:System.IO.TextWriter)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions)
+---@overload fun(writer:System.Xml.XmlWriter)
+---@overload fun(fileName:System.String)
+---@param fileName System.String
+---@param options System.Xml.Linq.SaveOptions
+_G['XDocument'].Save = function(fileName, options) end
+
+---`Method Public Instance`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XDocument'].SaveAsync = function(writer, cancellationToken) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+_G['XDocument'].WriteTo = function(writer) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XDocument'].WriteToAsync = function(writer, cancellationToken) end
+
+---`Method Private Instance`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XDocument'].WriteToAsyncInternal = function(writer, cancellationToken) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XDocument'].AddAttribute = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XDocument'].AddAttributeSkipNotify = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Xml.Linq.XNode
+_G['XDocument'].CloneNode = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XDocument'].DeepEquals = function(node) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Int32
+_G['XDocument'].GetDeepHashCode = function() end
+
+---`Method Private Instance`
+---@return System.Xml.Linq.XDocument.T
+_G['XDocument'].GetFirstNode = function() end
+
+---`Method NonPublic Static`
+---@param s System.String
+---@return System.Boolean
+_G['XDocument'].IsWhitespace = function(s) end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@param previous System.Xml.Linq.XNode
+_G['XDocument'].ValidateNode = function(node, previous) end
+
+---`Method Private Instance`
+---@param previous System.Xml.Linq.XNode
+---@param allowBefore System.Xml.XmlNodeType
+---@param allowAfter System.Xml.XmlNodeType
+_G['XDocument'].ValidateDocument = function(previous, allowBefore, allowAfter) end
+
+---`Method NonPublic Instance Virtual`
+---@param s System.String
+_G['XDocument'].ValidateString = function(s) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Xml.Linq.XDocument
+---@overload fun(...:System.Object):System.Xml.Linq.XDocument
+---@overload fun(declaration:System.Xml.Linq.XDeclaration, ...:System.Object):System.Xml.Linq.XDocument
+---@param other System.Xml.Linq.XDocument
+---@return System.Xml.Linq.XDocument
+_G['XDocument'] = function(other) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Xml.Linq.XDocument
+---@overload fun(...:System.Object):System.Xml.Linq.XDocument
+---@overload fun(declaration:System.Xml.Linq.XDeclaration, ...:System.Object):System.Xml.Linq.XDocument
+---@param other System.Xml.Linq.XDocument
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].__new = function(other) end
+
diff --git a/Meta/Types/client/_00007FFD97D0D100.lua b/Meta/Types/client/_00007FFD97D0D100.lua
new file mode 100644
index 0000000..625dbc6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0D100.lua
@@ -0,0 +1,180 @@
+---@meta
+---@class Barotrauma.Camera : System.Object
+---`Field Private Instance`
+---@field defaultZoom System.Nullable*1System*Single
+---`Field Private Instance`
+---@field zoomSmoothness System.Single
+---`Field Private Instance`
+---@field moveSmoothness System.Single
+---`Field Private Instance`
+---@field minZoom System.Single
+---`Field Private Instance`
+---@field maxZoom System.Single
+---`Field Public Instance`
+---@field FreeCamMoveSpeed System.Single
+---`Field Private Instance`
+---@field zoom System.Single
+---`Field Private Instance`
+---@field transform Microsoft.Xna.Framework.Matrix
+---`Field Private Instance`
+---@field shaderTransform Microsoft.Xna.Framework.Matrix
+---`Field Private Instance`
+---@field viewMatrix Microsoft.Xna.Framework.Matrix
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field rotation System.Single
+---`Field Private Instance`
+---@field angularVelocity System.Single
+---`Field Private Instance`
+---@field angularDamping System.Single
+---`Field Private Instance`
+---@field angularSpring System.Single
+---`Field Private Instance`
+---@field prevPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field prevZoom System.Single
+---`Field Public Instance`
+---@field Shake System.Single
+---`Field Private Instance`
+---@field shakeTimer System.Single
+---`Field Public Instance`
+---@field MovementLockTimer System.Single
+---`Field Private Instance`
+---@field globalZoomScale System.Single
+---`Field Private Instance`
+---@field targetZoom System.Single
+---`Field Private Instance`
+---@field velocity Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field previousOffset Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field FollowSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DefaultZoom System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ZoomSmoothness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveSmoothness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinZoom System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxZoom System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShakePosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Zoom System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AngularVelocity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OffsetAmount System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Resolution Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WorldView Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field WorldViewCenter Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Transform Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---@field ShaderTransform Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Freeze System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+_G['Camera'] = {}
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Camera'].GetPosition = function() end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Camera'].Translate = function(amount) end
+
+---`Method Public Instance`
+---@param segmentTableWriter Barotrauma.Networking.SegmentTableWriter
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Camera'].ClientWrite = function(segmentTableWriter, msg) end
+
+---`Method Private Instance`
+_G['Camera'].CreateMatrices = function() end
+
+---`Method Public Instance`
+---@param res Microsoft.Xna.Framework.Point
+_G['Camera'].SetResolution = function(res) end
+
+---`Method Public Instance`
+---@param interpolate? System.Boolean
+---@param updateListener? System.Boolean
+_G['Camera'].UpdateTransform = function(interpolate, updateListener) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param allowMove? System.Boolean
+---@param allowZoom? System.Boolean
+---@param allowInput? System.Boolean
+---@param followSub? System.Nullable*1System*Boolean
+_G['Camera'].MoveCamera = function(deltaTime, allowMove, allowZoom, allowInput, followSub) end
+
+---`Method Public Instance`
+_G['Camera'].StopMovement = function() end
+
+---`Method Public Instance`
+---@param coords Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Camera'].ScreenToWorld = function(coords) end
+
+---`Method Public Instance`
+---@param coords Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Camera'].WorldToScreen = function(coords) end
+
+---`Method Private Instance`
+---@param offset Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['Camera'].GetZoomAmount = function(offset) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Camera'].GetZoomAmountFromPrevious = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D0D210.lua b/Meta/Types/client/_00007FFD97D0D210.lua
new file mode 100644
index 0000000..161ab81
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0D210.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.CauseOfDeathType : System.Enum
+---`Field Public Static`
+---@field Unknown Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Pressure Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Suffocation Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Drowning Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Affliction Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Disconnected Barotrauma.CauseOfDeathType
+_G['CauseOfDeathType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D0D438.lua b/Meta/Types/client/_00007FFD97D0D438.lua
new file mode 100644
index 0000000..31a904a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0D438.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.CauseOfDeath : System.Object
+---`Field Public Instance`
+---@field Type Barotrauma.CauseOfDeathType
+---`Field Public Instance`
+---@field Affliction Barotrauma.AfflictionPrefab
+---`Field Public Instance`
+---@field Killer Barotrauma.Character
+---`Field Public Instance`
+---@field DamageSource Barotrauma.Entity
+_G['CauseOfDeath'] = {}
+
+---`Constructor Public Instance`
+---@param type Barotrauma.CauseOfDeathType
+---@param affliction Barotrauma.AfflictionPrefab
+---@param killer Barotrauma.Character
+---@param damageSource Barotrauma.Entity
+---@return Barotrauma.CauseOfDeath
+_G['CauseOfDeath'] = function(type, affliction, killer, damageSource) end
+
+---`Constructor Public Instance`
+---@param type Barotrauma.CauseOfDeathType
+---@param affliction Barotrauma.AfflictionPrefab
+---@param killer Barotrauma.Character
+---@param damageSource Barotrauma.Entity
+---@return Barotrauma.CauseOfDeath
+_G['CauseOfDeath'].__new = function(type, affliction, killer, damageSource) end
+
diff --git a/Meta/Types/client/_00007FFD97D0D538.lua b/Meta/Types/client/_00007FFD97D0D538.lua
new file mode 100644
index 0000000..32af8f8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0D538.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.SpawnType : System.Enum
+---`Field Public Static`
+---@field Path Barotrauma.SpawnType
+---`Field Public Static`
+---@field Human Barotrauma.SpawnType
+---`Field Public Static`
+---@field Enemy Barotrauma.SpawnType
+---`Field Public Static`
+---@field Cargo Barotrauma.SpawnType
+---`Field Public Static`
+---@field Corpse Barotrauma.SpawnType
+---`Field Public Static`
+---@field Submarine Barotrauma.SpawnType
+---`Field Public Static`
+---@field ExitPoint Barotrauma.SpawnType
+---`Field Public Static`
+---@field Disabled Barotrauma.SpawnType
+_G['SpawnType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D0E850.lua b/Meta/Types/client/_00007FFD97D0E850.lua
new file mode 100644
index 0000000..87e886c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0E850.lua
@@ -0,0 +1,522 @@
+---@meta
+---@class Barotrauma.MapEntity : Barotrauma.Entity
+---`Field Private Instance`
+---@field Resized (System.Action*1Microsoft*Xna*Framework*Rectangle)|(fun(obj:Microsoft.Xna.Framework.Rectangle))
+---`Field Private Instance`
+---@field resizeDirX System.Int32
+---`Field Private Instance`
+---@field resizeDirY System.Int32
+---`Field Private Instance`
+---@field prevRect System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---`Field Public Instance`
+---@field ReplacedBy Barotrauma.MapEntity
+---`Field Public Instance`
+---@field Prefab Barotrauma.MapEntityPrefab
+---`Field NonPublic Instance`
+---@field linkedToID (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Public Instance`
+---@field unresolvedLinkedToID (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field NonPublic Instance`
+---@field Upgrades (System.Collections.Generic.List*1Barotrauma*Upgrade)|(Barotrauma.Upgrade[])
+---`Field Public Instance`
+---@field DisallowedUpgradeSet (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field linkedTo (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field NonPublic Instance`
+---@field flippedX System.Boolean
+---`Field NonPublic Instance`
+---@field flippedY System.Boolean
+---`Field Public Instance`
+---@field ShouldBeSaved System.Boolean
+---`Field NonPublic Instance`
+---@field rect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field externalHighlight System.Boolean
+---`Field Private Instance`
+---@field isHighlighted System.Boolean
+---`Field Private Instance`
+---@field _spriteOverrideDepth System.Single
+---`Field Public Instance`
+---@field OriginalModuleIndex System.Int32
+---`Field Public Instance`
+---@field OriginalContainerIndex System.Int32
+---`Field Private Instance`
+---@field mapLoadedCalled System.Boolean
+---`Field NonPublic Static`
+---@field selectionPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Static`
+---@field selectionSize Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field startMovingPos Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field keyDelay System.Single
+---`Field Public Static`
+---@field SelectionChanged System.Boolean
+---`Field Public Static`
+---@field CopiedList (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Static`
+---@field highlightedInEditorList (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Static`
+---@field highlightTimer System.Single
+---`Field Private Static`
+---@field highlightedListBox Barotrauma.GUIListBox
+---`Field NonPublic Static`
+---@field editingHUD Barotrauma.GUIComponent
+---`Field Private Static`
+---@field disableSelect System.Boolean
+---`Field Public Static`
+---@field MapEntityList (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Public Static`
+---@field MapEntityUpdateInterval System.Int32
+---`Field Public Static`
+---@field PoweredUpdateInterval System.Int32
+---`Field Private Static`
+---@field mapEntityUpdateTick System.Int32
+---`Field NonPublic Static`
+---@field highlightedEntities (System.Collections.Generic.HashSet*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Static`
+---@field tempHighlightedEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Getter Public Static`
+---@field StartMovingPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field SelectionPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Resizing System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SelectedList (System.Collections.Generic.HashSet*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Getter Public Static`
+---@field HighlightedListBox Barotrauma.GUIListBox
+---`Getter Public Static`
+---@field EditingHUD Barotrauma.GUIComponent
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field DisableSelect System.Boolean
+---`Getter Public Instance Virtual`
+---@field SelectableInEditor System.Boolean
+---`Getter Public Static`
+---@field SelectedAny System.Boolean
+---`Getter Public Instance`
+---@field IsSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsIncludedInSelection System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field FilteredSelectedList (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Getter Private Instance`
+---@field RotationRad System.Single
+---`Getter Private Instance`
+---@field ResizeHandleSize System.Single
+---`Getter Private Instance`
+---@field ResizeHandleHighlightDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisallowedUpgrades System.String
+---`Getter Public Instance`
+---@field FlippedX System.Boolean
+---`Getter Public Instance`
+---@field FlippedY System.Boolean
+---`Getter Public Static`
+---@field HighlightedEntities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExternalHighlight System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHighlighted System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field WorldRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field DrawBelowWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawOverWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---@field AllowedLinks (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---@field ResizeHorizontal System.Boolean
+---`Getter Public Instance`
+---@field ResizeVertical System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RectWidth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RectHeight System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteDepthOverrideIsSet System.Boolean
+---`Getter Public Instance`
+---@field SpriteOverrideDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteDepth System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HiddenInGame System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsLayerHidden System.Boolean
+---`Getter Public Instance`
+---@field IsHidden System.Boolean
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SightRange System.Single
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field RemoveIfLinkedOutpostDoorInUse System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Layer System.String
+---`Getter Public Instance Virtual`
+---@field Name System.String
+_G['MapEntity'] = {}
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+---@param idRemap Barotrauma.IdRemap
+_G['MapEntity'].ParseLinks = function(element, idRemap) end
+
+---`Method Public Instance`
+---@param childRemap Barotrauma.IdRemap
+_G['MapEntity'].ResolveLinks = function(childRemap) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['MapEntity'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MapEntity'].IsMouseOn = function(position) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['MapEntity'].HasUpgrade = function(identifier) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.Upgrade
+_G['MapEntity'].GetUpgrade = function(identifier) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Upgrade)|(Barotrauma.Upgrade[])
+_G['MapEntity'].GetUpgrades = function() end
+
+---`Method Public Instance`
+---@param upgrade Barotrauma.Upgrade
+---@param createNetworkEvent? System.Boolean
+_G['MapEntity'].SetUpgrade = function(upgrade, createNetworkEvent) end
+
+---`Method Public Instance Virtual`
+---@param upgrade Barotrauma.Upgrade
+---@param createNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['MapEntity'].AddUpgrade = function(upgrade, createNetworkEvent) end
+
+---`Method NonPublic Instance Virtual`
+_G['MapEntity'].CheckIsHighlighted = function() end
+
+---`Method Public Static`
+_G['MapEntity'].ClearHighlightedEntities = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Barotrauma.MapEntity
+_G['MapEntity'].Clone = function() end
+
+---`Method Public Static`
+---@param entitiesToClone (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].Clone = function(entitiesToClone) end
+
+---`Method NonPublic Instance`
+_G['MapEntity'].InsertToList = function() end
+
+---`Method Public Instance Virtual`
+_G['MapEntity'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['MapEntity'].Remove = function() end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['MapEntity'].UpdateAll = function(deltaTime, cam) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['MapEntity'].UpdateAllProjSpecific = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['MapEntity'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['MapEntity'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['MapEntity'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Quad2D
+_G['MapEntity'].GetTransformedQuad = function() end
+
+---`Method Public Static`
+---@param submarine Barotrauma.Submarine
+---@param parentElement System.Xml.Linq.XElement
+---@param filePath System.String
+---@param idOffset System.Int32
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].LoadAll = function(submarine, parentElement, filePath, idOffset) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param updateHulls System.Boolean
+_G['MapEntity'].MapLoaded = function(entities, updateHulls) end
+
+---`Method Private Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].CreateDroppedStacks = function(entities) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['MapEntity'].InitializeLoadedLinks = function(entities) end
+
+---`Method Public Instance Virtual`
+_G['MapEntity'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['MapEntity'].Save = function(parentElement) end
+
+---`Method Public Instance`
+---@param e Barotrauma.MapEntity
+_G['MapEntity'].RemoveLinked = function(e) end
+
+---`Method Public Instance`
+---@param list? (System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T)|(Barotrauma.MapEntity.T[])
+---@param maxDepth? System.Nullable*1System*Int32
+---@param filter? (System.Func*1Barotrauma*MapEntity*T*1System*Boolean)|(fun(arg:Barotrauma.MapEntity.T):(System.Boolean))
+---@return (System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T)|(Barotrauma.MapEntity.T[])
+_G['MapEntity'].GetLinkedEntities = function(list, maxDepth, filter) end
+
+---`Method Private Static`
+---@param mapEntity Barotrauma.MapEntity
+---@param linkedTargets (System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T)|(Barotrauma.MapEntity.T[])
+---@param depth System.Int32-ref
+---@param maxDepth? System.Nullable*1System*Int32
+---@param filter? (System.Func*1Barotrauma*MapEntity*T*1System*Boolean)|(fun(arg:Barotrauma.MapEntity.T):(System.Boolean))
+_G['MapEntity'].GetLinkedEntitiesRecursive = function(mapEntity, linkedTargets, depth, maxDepth, filter) end
+
+---`Method Public Instance Virtual`
+---@param worldView Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['MapEntity'].IsVisible = function(worldView) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+_G['MapEntity'].Draw = function(spriteBatch, editing, back) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['MapEntity'].GetDrawDepth = function() end
+
+---`Method Public Instance`
+---@param baseDepth System.Single
+---@param sprite Barotrauma.Sprite
+---@return System.Single
+_G['MapEntity'].GetDrawDepth = function(baseDepth, sprite) end
+
+---`Method NonPublic Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['MapEntity'].GetCollapseEffectOffset = function() end
+
+---`Method Public Static`
+---@param cam Barotrauma.Camera
+_G['MapEntity'].UpdateSelecting = function(cam) end
+
+---`Method Public Static`
+_G['MapEntity'].StopSelection = function() end
+
+---`Method Public Static`
+---@param doHold? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['MapEntity'].GetNudgeAmount = function(doHold) end
+
+---`Method Public Instance`
+---@return Barotrauma.MapEntity
+_G['MapEntity'].GetReplacementOrThis = function() end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param entities? (System.Collections.Generic.HashSet*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@return Barotrauma.Item
+_G['MapEntity'].GetPotentialContainer = function(position, entities) end
+
+---`Method Public Static`
+---@param highlightedEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param wiringMode? System.Boolean
+_G['MapEntity'].UpdateHighlighting = function(highlightedEntities, wiringMode) end
+
+---`Method Private Static`
+---@param highlightedEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param wiringMode System.Boolean
+_G['MapEntity'].UpdateHighlightedListBox = function(highlightedEntities, wiringMode) end
+
+---`Method Public Static`
+---@param entity Barotrauma.MapEntity
+_G['MapEntity'].AddSelection = function(entity) end
+
+---`Method Private Static`
+---@param entity Barotrauma.MapEntity
+---@param onGapFound (System.Action*1Barotrauma*Items*Components*Door*1Barotrauma*Gap)|(fun(arg1:Barotrauma.Items.Components.Door, arg2:Barotrauma.Gap))
+---@param onDoorFound (System.Action*1Barotrauma*Items*Components*Door*1Barotrauma*Gap)|(fun(arg1:Barotrauma.Items.Components.Door, arg2:Barotrauma.Gap))
+_G['MapEntity'].HandleDoorGapLinks = function(entity, onGapFound, onDoorFound) end
+
+---`Method Public Static`
+---@param entity Barotrauma.MapEntity
+_G['MapEntity'].RemoveSelection = function(entity) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['MapEntity'].DrawSelecting = function(spriteBatch, cam) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+_G['MapEntity'].DrawSelectionRect = function(spriteBatch, pos, size, color) end
+
+---`Method NonPublic Static`
+---@param btn Barotrauma.GUIButton
+---@param flip System.Boolean
+_G['MapEntity'].ColorFlipButton = function(btn, flip) end
+
+---`Method Public Static`
+---@param cam Barotrauma.Camera
+---@param deltaTime System.Single
+_G['MapEntity'].UpdateEditor = function(cam, deltaTime) end
+
+---`Method Public Static`
+_G['MapEntity'].ResetEditingHUD = function() end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['MapEntity'].DrawEditor = function(spriteBatch, cam) end
+
+---`Method Public Static`
+_G['MapEntity'].DeselectAll = function() end
+
+---`Method Public Static`
+---@param entity Barotrauma.MapEntity
+_G['MapEntity'].SelectEntity = function(entity) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].Copy = function(entities) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].Cut = function(entities) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+_G['MapEntity'].Paste = function(position) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].CopyEntities = function(entities) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['MapEntity'].AddToGUIUpdateList = function(order) end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+---@param deltaTime System.Single
+_G['MapEntity'].UpdateEditing = function(cam, deltaTime) end
+
+---`Method NonPublic Static`
+_G['MapEntity'].PositionEditingHUD = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['MapEntity'].DrawEditing = function(spriteBatch, cam) end
+
+---`Method Private Instance`
+---@param x System.Int32
+---@param y System.Int32
+---@param cam Barotrauma.Camera
+---@return Microsoft.Xna.Framework.Vector2
+_G['MapEntity'].GetEditingHandlePos = function(x, y, cam) end
+
+---`Method Private Instance`
+---@param cam Barotrauma.Camera
+_G['MapEntity'].UpdateResizing = function(cam) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['MapEntity'].DrawResizing = function(spriteBatch, cam) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.HashSet*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].FindSelectedEntities = function(pos, size) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+_G['MapEntity'].AddLinked = function(entity) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D0F108.lua b/Meta/Types/client/_00007FFD97D0F108.lua
new file mode 100644
index 0000000..d31c71e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0F108.lua
@@ -0,0 +1,249 @@
+---@meta
+---@class Barotrauma.WayPoint : Barotrauma.MapEntity
+---`Field NonPublic Instance`
+---@field spawnType Barotrauma.SpawnType
+---`Field Private Instance`
+---@field idCardTags (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field ladderId System.UInt16
+---`Field Public Instance`
+---@field Ladders Barotrauma.Items.Components.Ladder
+---`Field Public Instance`
+---@field Stairs Barotrauma.Structure
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field IsObstructed System.Boolean
+---`Field Private Instance`
+---@field openGaps (System.Collections.Generic.HashSet*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Private Instance`
+---@field gapId System.UInt16
+---`Field Public Instance`
+---@field Tunnel Barotrauma.Level.Tunnel
+---`Field Public Instance`
+---@field Ruin Barotrauma.RuinGeneration.Ruin
+---`Field Public Instance`
+---@field Cave Barotrauma.Level.Cave
+---`Field Private Static`
+---@field iconSprites (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Sprite)|({[System.String]:(Barotrauma.Sprite)})
+---`Field Public Static`
+---@field WayPointList (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Public Static`
+---@field ShowWayPoints System.Boolean
+---`Field Public Static`
+---@field ShowSpawnPoints System.Boolean
+---`Field Private Static`
+---@field WaypointSize System.Int32
+---`Field Private Static`
+---@field SpawnPointSize System.Int32
+---`Field Public Static`
+---@field LadderWaypointInterval System.Single
+---`Getter Public Instance Virtual`
+---@field SelectableInEditor System.Boolean
+---`Getter Public Instance`
+---@field IsInWater System.Boolean
+---`Getter Public Instance`
+---@field IsTraversable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConnectedGap Barotrauma.Gap
+---`Getter Public Instance`
+---@field ConnectedDoor Barotrauma.Items.Components.Door
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnType Barotrauma.SpawnType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExitPointSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field ExitPointWorldRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnLinksChanged (System.Action*1Barotrauma*WayPoint)|(fun(obj:Barotrauma.WayPoint))
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdCardDesc System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdCardTags (System.String-arr)|(System.String[])
+---`Getter Public Instance`
+---@field Tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AssignedJob Barotrauma.JobPrefab
+_G['WayPoint'] = {}
+
+---`Method Public Instance Virtual`
+---@param worldView Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['WayPoint'].IsVisible = function(worldView) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+_G['WayPoint'].Draw = function(spriteBatch, editing, back) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawPos Microsoft.Xna.Framework.Vector2
+_G['WayPoint'].Draw = function(spriteBatch, drawPos) end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['WayPoint'].IsMouseOn = function(position) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['WayPoint'].ShouldDrawIcon = function() end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+---@param deltaTime System.Single
+_G['WayPoint'].UpdateEditing = function(cam, deltaTime) end
+
+---`Method Private Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@param list (System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint*T)|(fun():(Barotrauma.WayPoint.T))
+---@param match (System.Action*1Barotrauma*WayPoint*T)|(fun(obj:Barotrauma.WayPoint.T))
+---@param noMatch (System.Action*1Barotrauma*WayPoint*T)|(fun(obj:Barotrauma.WayPoint.T))
+---@param inflate? System.Int32
+_G['WayPoint'].UpdateLinkedEntity = function(worldPos, list, match, noMatch, inflate) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['WayPoint'].ChangeSpawnType = function(button, obj) end
+
+---`Method Private Instance`
+---@return Barotrauma.GUIComponent
+_G['WayPoint'].CreateEditingHUD = function() end
+
+---`Method Public Instance`
+---@param open System.Boolean
+---@param gap Barotrauma.Gap
+_G['WayPoint'].OnGapStateChanged = function(open, gap) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['WayPoint'].Clone = function() end
+
+---`Method Public Static`
+---@param submarine Barotrauma.Submarine
+---@return System.Boolean
+_G['WayPoint'].GenerateSubWaypoints = function(submarine) end
+
+---`Method Private Instance`
+---@param waypointList (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32)|(fun():(System.ValueTuple*1Barotrauma*WayPoint*1System*Int32))
+---@param tolerance System.Single
+---@param ignoredBody? FarseerPhysics.Dynamics.Body
+---@param ignored? (System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint)|(fun():(Barotrauma.WayPoint))
+---@param filter? (System.Func*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32*1System*Boolean)|(fun(arg:System.ValueTuple*1Barotrauma*WayPoint*1System*Int32):(System.Boolean))
+---@return Barotrauma.WayPoint
+_G['WayPoint'].FindClosestOutside = function(waypointList, tolerance, ignoredBody, ignored, filter) end
+
+---`Method Private Instance`
+---@param dir System.Int32
+---@param horizontalSearch System.Boolean
+---@param tolerance Microsoft.Xna.Framework.Vector2
+---@param ignoredBody? FarseerPhysics.Dynamics.Body
+---@param ignored? (System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint)|(fun():(Barotrauma.WayPoint))
+---@param filter? (System.Func*1Barotrauma*WayPoint*1System*Boolean)|(fun(arg:Barotrauma.WayPoint):(System.Boolean))
+---@return Barotrauma.WayPoint
+_G['WayPoint'].FindClosest = function(dir, horizontalSearch, tolerance, ignoredBody, ignored, filter) end
+
+---`Method Public Instance`
+---@param wayPoint2 Barotrauma.WayPoint
+_G['WayPoint'].ConnectTo = function(wayPoint2) end
+
+---`Method Public Static`
+---@param spawnType? Barotrauma.SpawnType
+---@param assignedJob? Barotrauma.JobPrefab
+---@param sub? Barotrauma.Submarine
+---@param useSyncedRand? System.Boolean
+---@param spawnPointTag? System.String
+---@param ignoreSubmarine? System.Boolean
+---@return Barotrauma.WayPoint
+_G['WayPoint'].GetRandom = function(spawnType, assignedJob, sub, useSyncedRand, spawnPointTag, ignoreSubmarine) end
+
+---`Method Public Static`
+---@param crew (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---@param submarine Barotrauma.Submarine
+---@return (Barotrauma.WayPoint-arr)|(Barotrauma.WayPoint[])
+_G['WayPoint'].SelectCrewSpawnPoints = function(crew, submarine) end
+
+---`Method Public Static`
+---@param teamID Barotrauma.CharacterTeamType
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['WayPoint'].GetOutpostSpawnPoints = function(teamID) end
+
+---`Method Public Instance`
+_G['WayPoint'].FindHull = function() end
+
+---`Method Public Instance Virtual`
+_G['WayPoint'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.Structure
+_G['WayPoint'].FindStairs = function() end
+
+---`Method Public Instance`
+_G['WayPoint'].InitializeLinks = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.WayPoint
+_G['WayPoint'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['WayPoint'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['WayPoint'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['WayPoint'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D0F540.lua b/Meta/Types/client/_00007FFD97D0F540.lua
new file mode 100644
index 0000000..42a55d8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0F540.lua
@@ -0,0 +1,86 @@
+---@meta
+---@class Barotrauma.Networking.ServerLog : System.Object
+---`Field Public Instance`
+---@field LogFrame Barotrauma.GUIButton
+---`Field Private Instance`
+---@field listBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field reverseButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field msgFilter System.String
+---`Field Private Instance`
+---@field reverseOrder System.Boolean
+---`Field Private Instance`
+---@field messageColor (System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1Microsoft*Xna*Framework*Color)|({[Barotrauma.Networking.ServerLog.MessageType]:(Microsoft.Xna.Framework.Color)})
+---`Field Private Instance`
+---@field messageTypeName (System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1System*String)|({[Barotrauma.Networking.ServerLog.MessageType]:(System.String)})
+---`Field Private Instance`
+---@field linesPerFile System.Int32
+---`Field Private Instance`
+---@field lines (System.Collections.Generic.Queue*1Barotrauma*Networking*ServerLog*LogMessage)|(fun():(Barotrauma.Networking.ServerLog.LogMessage))
+---`Field Private Instance`
+---@field unsavedLines (System.Collections.Generic.Queue*1Barotrauma*Networking*ServerLog*LogMessage)|(fun():(Barotrauma.Networking.ServerLog.LogMessage))
+---`Field Private Instance`
+---@field msgTypeHidden (System.Boolean-arr)|(System.Boolean[])
+---`Field Public Instance`
+---@field ServerName System.String
+---`Field Public Static`
+---@field SavePath System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinesPerFile System.Int32
+_G['ServerLog'] = {}
+
+---`Method Private Instance`
+---@param btn Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['ServerLog'].OnReverseClicked = function(btn, obj) end
+
+---`Method Public Instance`
+_G['ServerLog'].CreateLogFrame = function() end
+
+---`Method Public Instance`
+---@param inReverseButton Barotrauma.GUIButton
+---@param inListBox Barotrauma.GUIListBox
+---@param tickBoxContainer Barotrauma.GUIComponent
+---@param searchBox Barotrauma.GUITextBox
+_G['ServerLog'].AssignLogFrame = function(inReverseButton, inListBox, tickBoxContainer, searchBox) end
+
+---`Method Private Instance`
+---@param line Barotrauma.Networking.ServerLog.LogMessage
+_G['ServerLog'].AddLine = function(line) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['ServerLog'].FilterMessages = function() end
+
+---`Method Private Instance`
+---@param reverse System.Boolean
+_G['ServerLog'].SetMessageReversal = function(reverse) end
+
+---`Method Public Instance`
+---@param button Barotrauma.GUIComponent
+---@param _ System.Object
+---@return System.Boolean
+_G['ServerLog'].ClearFilter = function(button, _) end
+
+---`Method Public Instance`
+---@param line System.String
+---@param messageType Barotrauma.Networking.ServerLog.MessageType
+---@param logToConsole? System.Boolean
+_G['ServerLog'].WriteLine = function(line, messageType, logToConsole) end
+
+---`Method Public Instance`
+_G['ServerLog'].Save = function() end
+
+---`Constructor Public Instance`
+---@param serverName System.String
+---@return Barotrauma.Networking.ServerLog
+_G['ServerLog'] = function(serverName) end
+
+---`Constructor Public Instance`
+---@param serverName System.String
+---@return Barotrauma.Networking.ServerLog
+_G['ServerLog'].__new = function(serverName) end
+
diff --git a/Meta/Types/client/_00007FFD97D0F640.lua b/Meta/Types/client/_00007FFD97D0F640.lua
new file mode 100644
index 0000000..026e0f5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0F640.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.ServerLog.MessageType : System.Enum
+---`Field Public Static`
+---@field Chat Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field ItemInteraction Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Inventory Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Attack Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Spawning Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Wiring Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field ServerMessage Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field ConsoleUsage Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Money Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field DoSProtection Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Karma Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Talent Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Traitors Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Error Barotrauma.Networking.ServerLog.MessageType
+_G['ServerLog']['MessageType'] = {}
+_G['ServerLog_MessageType'] = _G['ServerLog']['MessageType']
+_G['ServerLogMessageType'] = _G['ServerLog']['MessageType']
+
diff --git a/Meta/Types/client/_00007FFD97D0FAC8.lua b/Meta/Types/client/_00007FFD97D0FAC8.lua
new file mode 100644
index 0000000..c93a6ec
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0FAC8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.PropertyConditional.ConditionType : System.Enum
+---`Field Public Static`
+---@field PropertyValueOrAffliction Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field SkillRequirement Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field Name Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field SpeciesName Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field SpeciesGroup Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field HasTag Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field HasStatusTag Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field HasSpecifierTag Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field EntityType Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field LimbType Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field WorldHostility Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field LevelDifficulty Barotrauma.PropertyConditional.ConditionType
+_G['PropertyConditional']['ConditionType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D0FC18.lua b/Meta/Types/client/_00007FFD97D0FC18.lua
new file mode 100644
index 0000000..c10581c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D0FC18.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.PropertyConditional.ComparisonOperatorType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field Equals Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field NotEquals Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field LessThan Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field LessThanEquals Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field GreaterThan Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field GreaterThanEquals Barotrauma.PropertyConditional.ComparisonOperatorType
+_G['PropertyConditional']['ComparisonOperatorType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D60038.lua b/Meta/Types/client/_00007FFD97D60038.lua
new file mode 100644
index 0000000..d18f937
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D60038.lua
@@ -0,0 +1,154 @@
+---@meta
+---@class Barotrauma.PropertyConditional : System.Object
+---`Field Public Instance`
+---@field Type Barotrauma.PropertyConditional.ConditionType
+---`Field Public Instance`
+---@field ComparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Instance`
+---@field AttributeName Barotrauma.Identifier
+---`Field Public Instance`
+---@field AttributeValue System.String
+---`Field Public Instance`
+---@field AttributeValueAsTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field FloatValue System.Nullable*1System*Single
+---`Field Private Instance`
+---@field cachedHostilityValue Barotrauma.WorldHostilityOption
+---`Field Public Instance`
+---@field TargetItemComponent System.String
+---`Field Public Instance`
+---@field ItemComponentComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---`Field Public Instance`
+---@field TargetSelf System.Boolean
+---`Field Public Instance`
+---@field TargetContainer System.Boolean
+---`Field Public Instance`
+---@field TargetGrandParent System.Boolean
+---`Field Public Instance`
+---@field TargetContainedItem System.Boolean
+---`Getter Private Instance`
+---@field ComparisonOperatorIsNotEquals System.Boolean
+_G['PropertyConditional'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param predicate? (System.Predicate*1System*Xml*Linq*XAttribute)|(fun(obj:System.Xml.Linq.XAttribute):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*PropertyConditional)|(fun():(Barotrauma.PropertyConditional))
+_G['PropertyConditional'].FromXElement = function(element, predicate) end
+
+---`Method Private Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@return System.Boolean
+_G['PropertyConditional'].IsValid = function(attribute) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.ValueTuple*1Barotrauma*PropertyConditional*ComparisonOperatorType*1System*String
+_G['PropertyConditional'].ExtractComparisonOperatorFromConditionString = function(str) end
+
+---`Method Public Static`
+---@param op System.String
+---@return Barotrauma.PropertyConditional.ComparisonOperatorType
+_G['PropertyConditional'].GetComparisonOperatorType = function(op) end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].Matches = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].MatchesContained = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].MatchesDirect = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].CheckOnlyEquality = function(target) end
+
+---`Method Private Instance`
+---@param matches System.Int32
+---@return System.Boolean
+_G['PropertyConditional'].SufficientTagMatches = function(matches) end
+
+---`Method Private Instance`
+---@param predicate (System.Func*1Barotrauma*Identifier*1System*Boolean)|(fun(arg:Barotrauma.Identifier):(System.Boolean))
+---@return System.Boolean
+_G['PropertyConditional'].CheckMatchingTags = function(predicate) end
+
+---`Method Public Instance`
+---@param targetTag Barotrauma.Identifier
+---@return System.Boolean
+_G['PropertyConditional'].TargetTagMatchesTagCondition = function(targetTag) end
+
+---`Method Private Instance`
+---@param testedValue System.Single
+---@return System.Boolean
+_G['PropertyConditional'].NumberMatchesRequirement = function(testedValue) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@return System.Boolean
+_G['PropertyConditional'].PropertyMatchesRequirement = function(target, property) end
+
+---`Method Public Static`
+---@param val1 System.Single
+---@param val2 System.Single
+---@param op Barotrauma.PropertyConditional.ComparisonOperatorType
+---@return System.Boolean
+_G['PropertyConditional'].CompareFloat = function(val1, val2, op) end
+
+---`Method Public Static`
+---@param leftValue Barotrauma.PropertyConditional.T
+---@param rightValue Barotrauma.PropertyConditional.T
+---@param comparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---@return System.Boolean
+_G['PropertyConditional'].Compare = function(leftValue, rightValue, comparisonOperator) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param defaultOperatorType? Barotrauma.PropertyConditional.LogicalOperatorType
+---@return Barotrauma.PropertyConditional.LogicalComparison
+_G['PropertyConditional'].LoadConditionals = function(element, defaultOperatorType) end
+
+---`Method Public Static`
+---@param conditionalTarget Barotrauma.ISerializableEntity
+---@param conditionals (System.Collections.Generic.IEnumerable*1Barotrauma*PropertyConditional)|(fun():(Barotrauma.PropertyConditional))
+---@param logicalOperator Barotrauma.PropertyConditional.LogicalOperatorType
+---@return System.Boolean
+_G['PropertyConditional'].CheckConditionals = function(conditionalTarget, conditionals, logicalOperator) end
+
+---`Constructor Private Instance`
+---@param attributeName Barotrauma.Identifier
+---@param comparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---@param attributeValue System.String
+---@param targetItemComponent System.String
+---@param itemComponentComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---@param targetSelf System.Boolean
+---@param targetContainer System.Boolean
+---@param targetGrandParent System.Boolean
+---@param targetContainedItem System.Boolean
+---@param conditionType Barotrauma.PropertyConditional.ConditionType
+---@return Barotrauma.PropertyConditional
+_G['PropertyConditional'] = function(attributeName, comparisonOperator, attributeValue, targetItemComponent, itemComponentComparison, targetSelf, targetContainer, targetGrandParent, targetContainedItem, conditionType) end
+
+---`Constructor Private Instance`
+---@param attributeName Barotrauma.Identifier
+---@param comparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---@param attributeValue System.String
+---@param targetItemComponent System.String
+---@param itemComponentComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---@param targetSelf System.Boolean
+---@param targetContainer System.Boolean
+---@param targetGrandParent System.Boolean
+---@param targetContainedItem System.Boolean
+---@param conditionType Barotrauma.PropertyConditional.ConditionType
+---@return Barotrauma.PropertyConditional
+_G['PropertyConditional'].__new = function(attributeName, comparisonOperator, attributeValue, targetItemComponent, itemComponentComparison, targetSelf, targetContainer, targetGrandParent, targetContainedItem, conditionType) end
+
diff --git a/Meta/Types/client/_00007FFD97D60E30.lua b/Meta/Types/client/_00007FFD97D60E30.lua
new file mode 100644
index 0000000..edbdf0b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D60E30.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.StatusEffect.TargetType : System.Enum
+---`Field Public Static`
+---@field This Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Parent Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Character Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Contained Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field NearbyCharacters Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field NearbyItems Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field UseTarget Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Hull Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Limb Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field AllLimbs Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field LastLimb Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field LinkedEntities Barotrauma.StatusEffect.TargetType
+_G['StatusEffect']['TargetType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D62DA8.lua b/Meta/Types/client/_00007FFD97D62DA8.lua
new file mode 100644
index 0000000..580c962
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D62DA8.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.ActionType : System.Enum
+---`Field Public Static`
+---@field Always Barotrauma.ActionType
+---`Field Public Static`
+---@field OnPicked Barotrauma.ActionType
+---`Field Public Static`
+---@field OnUse Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSecondaryUse Barotrauma.ActionType
+---`Field Public Static`
+---@field OnWearing Barotrauma.ActionType
+---`Field Public Static`
+---@field OnContaining Barotrauma.ActionType
+---`Field Public Static`
+---@field OnContained Barotrauma.ActionType
+---`Field Public Static`
+---@field OnNotContained Barotrauma.ActionType
+---`Field Public Static`
+---@field OnActive Barotrauma.ActionType
+---`Field Public Static`
+---@field OnFailure Barotrauma.ActionType
+---`Field Public Static`
+---@field OnBroken Barotrauma.ActionType
+---`Field Public Static`
+---@field OnFire Barotrauma.ActionType
+---`Field Public Static`
+---@field InWater Barotrauma.ActionType
+---`Field Public Static`
+---@field NotInWater Barotrauma.ActionType
+---`Field Public Static`
+---@field OnImpact Barotrauma.ActionType
+---`Field Public Static`
+---@field OnEating Barotrauma.ActionType
+---`Field Public Static`
+---@field OnDamaged Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSevered Barotrauma.ActionType
+---`Field Public Static`
+---@field OnProduceSpawned Barotrauma.ActionType
+---`Field Public Static`
+---@field OnOpen Barotrauma.ActionType
+---`Field Public Static`
+---@field OnClose Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSpawn Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSuccess Barotrauma.ActionType
+---`Field Public Static`
+---@field OnAbility Barotrauma.ActionType
+---`Field Public Static`
+---@field OnInserted Barotrauma.ActionType
+---`Field Public Static`
+---@field OnRemoved Barotrauma.ActionType
+---`Field Public Static`
+---@field OnDeath Barotrauma.ActionType
+_G['ActionType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D62F50.lua b/Meta/Types/client/_00007FFD97D62F50.lua
new file mode 100644
index 0000000..271d7c9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D62F50.lua
@@ -0,0 +1,418 @@
+---@meta
+---@class Barotrauma.StatusEffect : System.Object
+---`Field Private Instance`
+---@field particleEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field sounds (System.Collections.Generic.List*1Barotrauma*RoundSound)|(Barotrauma.RoundSound[])
+---`Field Private Instance`
+---@field soundSelectionMode Barotrauma.Items.Components.SoundSelectionMode
+---`Field Private Instance`
+---@field soundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field soundEmitter Barotrauma.Entity
+---`Field Private Instance`
+---@field loopStartTime System.Double
+---`Field Private Instance`
+---@field loopSound System.Boolean
+---`Field Private Instance`
+---@field forcePlaySounds System.Boolean
+---`Field Private Instance`
+---@field playSoundAfterLoadedCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field ignoreMuffling System.Boolean
+---`Field Private Instance`
+---@field targetTypes Barotrauma.StatusEffect.TargetType
+---`Field Public Instance`
+---@field TargetSlot System.Int32
+---`Field Private Instance`
+---@field requiredItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Public Instance`
+---@field PropertyEffects (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Object)|(System.ValueTuple*1Barotrauma*Identifier*1System*Object[])
+---`Field Private Instance`
+---@field conditionalLogicalOperator Barotrauma.PropertyConditional.LogicalOperatorType
+---`Field Private Instance`
+---@field propertyConditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Field Private Instance`
+---@field setValue System.Boolean
+---`Field Private Instance`
+---@field disableDeltaTime System.Boolean
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field lifeTime System.Single
+---`Field Private Instance`
+---@field lifeTimer System.Single
+---`Field Private Instance`
+---@field intervalTimers (System.Collections.Generic.Dictionary*1Barotrauma*Entity*1System*Single)|({[Barotrauma.Entity]:(System.Single)})
+---`Field Private Instance`
+---@field oneShot System.Boolean
+---`Field Public Instance`
+---@field CheckConditionalAlways System.Boolean
+---`Field Public Instance`
+---@field Stackable System.Boolean
+---`Field Public Instance`
+---@field Interval System.Single
+---`Field Private Instance`
+---@field playSoundOnRequiredItemFailure System.Boolean
+---`Field Private Instance`
+---@field useItemCount System.Int32
+---`Field Private Instance`
+---@field removeItem System.Boolean
+---`Field Private Instance`
+---@field dropContainedItems System.Boolean
+---`Field Private Instance`
+---@field dropItem System.Boolean
+---`Field Private Instance`
+---@field removeCharacter System.Boolean
+---`Field Private Instance`
+---@field breakLimb System.Boolean
+---`Field Private Instance`
+---@field hideLimb System.Boolean
+---`Field Private Instance`
+---@field hideLimbTimer System.Single
+---`Field Private Instance`
+---@field containerForItemsOnCharacterRemoval Barotrauma.Identifier
+---`Field Public Instance`
+---@field type Barotrauma.ActionType
+---`Field Private Instance`
+---@field explosions (System.Collections.Generic.List*1Barotrauma*Explosion)|(Barotrauma.Explosion[])
+---`Field Private Instance`
+---@field spawnItems (System.Collections.Generic.List*1Barotrauma*StatusEffect*ItemSpawnInfo)|(Barotrauma.StatusEffect.ItemSpawnInfo[])
+---`Field Private Instance`
+---@field spawnItemRandomly System.Boolean
+---`Field Private Instance`
+---@field spawnCharacters (System.Collections.Generic.List*1Barotrauma*StatusEffect*CharacterSpawnInfo)|(Barotrauma.StatusEffect.CharacterSpawnInfo[])
+---`Field Public Instance`
+---@field refundTalents System.Boolean
+---`Field Public Instance`
+---@field giveTalentInfos (System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveTalentInfo)|(Barotrauma.StatusEffect.GiveTalentInfo[])
+---`Field Private Instance`
+---@field aiTriggers (System.Collections.Generic.List*1Barotrauma*StatusEffect*AITrigger)|(Barotrauma.StatusEffect.AITrigger[])
+---`Field Private Instance`
+---@field triggeredEvents (System.Collections.Generic.List*1Barotrauma*EventPrefab)|(Barotrauma.EventPrefab[])
+---`Field Private Instance`
+---@field triggeredEventTargetTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field triggeredEventEntityTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field triggeredEventUserTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field eventTargetTags (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Public Instance`
+---@field FireSize System.Single
+---`Field Public Instance`
+---@field targetLimbs (Barotrauma.LimbType-arr)|(Barotrauma.LimbType[])
+---`Field Public Instance`
+---@field SeverLimbsProbability System.Single
+---`Field Public Instance`
+---@field sourceBody Barotrauma.PhysicsBody
+---`Field Public Instance`
+---@field OnlyInside System.Boolean
+---`Field Public Instance`
+---@field OnlyOutside System.Boolean
+---`Field Public Instance`
+---@field OnlyWhenDamagedByPlayer System.Boolean
+---`Field Public Instance`
+---@field AllowWhenBroken System.Boolean
+---`Field Public Instance`
+---@field TargetIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field TargetItemComponent System.String
+---`Field Private Instance`
+---@field requiredAfflictions (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Identifier*2System*Single)|(System.ValueTuple*1Barotrauma*Identifier*1System*Single[])
+---`Field Public Instance`
+---@field AfflictionMultiplier System.Single
+---`Field Private Instance`
+---@field multiplyAfflictionsByMaxVitality System.Boolean
+---`Field Public Instance`
+---@field ReduceAffliction (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Single)|(System.ValueTuple*1Barotrauma*Identifier*1System*Single[])
+---`Field Private Instance`
+---@field talentTriggers (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field giveExperiences (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Field Private Instance`
+---@field giveSkills (System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveSkill)|(Barotrauma.StatusEffect.GiveSkill[])
+---`Field Private Instance`
+---@field luaHook (System.Collections.Generic.List*1System*ValueTuple*2System*String*2Barotrauma*ContentXElement)|(System.ValueTuple*1System*String*1Barotrauma*ContentXElement[])
+---`Field Private Instance`
+---@field failedAnimations (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*StatusEffect*AnimLoadInfo)|(System.ValueTuple*1Barotrauma*Character*1Barotrauma*StatusEffect*AnimLoadInfo[])
+---`Field Private Instance`
+---@field animationsToTrigger (System.Collections.Generic.List*1Barotrauma*StatusEffect*AnimLoadInfo)|(Barotrauma.StatusEffect.AnimLoadInfo[])
+---`Field Public Instance`
+---@field Duration System.Single
+---`Field NonPublic Instance`
+---@field currentTargets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Static`
+---@field ActiveLoopingSounds (System.Collections.Generic.HashSet*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Private Static`
+---@field LastMuffleCheckTime System.Double
+---`Field Private Static`
+---@field FieldNames (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field DurationList (System.Collections.Generic.List*1Barotrauma*DurationListElement)|(Barotrauma.DurationListElement[])
+---`Field Private Static`
+---@field intervalsToRemove (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Getter Public Instance`
+---@field Sounds (System.Collections.Generic.IEnumerable*1Barotrauma*RoundSound)|(fun():(Barotrauma.RoundSound))
+---`Getter Public Instance`
+---@field HasConditions System.Boolean
+---`Getter Public Instance`
+---@field Explosions (System.Collections.Generic.IEnumerable*1Barotrauma*Explosion)|(fun():(Barotrauma.Explosion))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Afflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Getter Public Instance`
+---@field SpawnCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect*CharacterSpawnInfo)|(fun():(Barotrauma.StatusEffect.CharacterSpawnInfo))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Disabled System.Boolean
+_G['StatusEffect'] = {}
+
+---`Method Private Instance`
+---@param entity Barotrauma.Entity
+---@param hull Barotrauma.Hull
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['StatusEffect'].PlaySound = function(entity, hull, worldPosition) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'].Load = function(element, parentDebugName) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+_G['StatusEffect'].InitProjSpecific = function(element, parentDebugName) end
+
+---`Method Public Instance`
+---@param targetType Barotrauma.StatusEffect.TargetType
+---@return System.Boolean
+_G['StatusEffect'].HasTargetType = function(targetType) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['StatusEffect'].ReducesItemCondition = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['StatusEffect'].IncreasesItemCondition = function() end
+
+---`Method Private Instance`
+---@param propertyName Barotrauma.Identifier
+---@param value System.Object
+---@param conditionValue System.Single-ref
+---@return System.Boolean
+_G['StatusEffect'].ChangesItemCondition = function(propertyName, value, conditionValue) end
+
+---`Method Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['StatusEffect'].MatchesTagConditionals = function(itemPrefab) end
+
+---`Method Public Instance`
+---@param attackResult Barotrauma.AttackResult
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredAfflictions = function(attackResult) end
+
+---`Method Public Instance Virtual`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredItems = function(entity) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+_G['StatusEffect'].AddNearbyTargets = function(worldPosition, targets) end
+
+---`Method Public Instance`
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredConditions = function(targets) end
+
+---`Method Private Instance`
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param conditionals (System.Collections.Generic.IReadOnlyList*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---@param targetingContainer? System.Boolean
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredConditions = function(targets, conditionals, targetingContainer) end
+
+---`Method Private Static`
+---@param condition System.Boolean
+---@param valueToReturn System.Boolean-ref
+---@return System.Boolean
+_G['StatusEffect'].ShouldShortCircuitLogicalOrOperator = function(condition, valueToReturn) end
+
+---`Method Private Static`
+---@param condition System.Boolean
+---@param valueToReturn System.Boolean-ref
+---@return System.Boolean
+_G['StatusEffect'].ShouldShortCircuitLogicalAndOperator = function(condition, valueToReturn) end
+
+---`Method NonPublic Instance`
+---@overload fun(entity:Barotrauma.ISerializableEntity):(System.Boolean)
+---@overload fun(itemComponent:Barotrauma.Items.Components.ItemComponent):(System.Boolean)
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['StatusEffect'].IsValidTarget = function(character) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+_G['StatusEffect'].SetUser = function(user) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['StatusEffect'].ShouldWaitForInterval = function(entity, deltaTime) end
+
+---`Method Public Instance Virtual`
+---@overload fun(type:Barotrauma.ActionType, deltaTime:System.Single, entity:Barotrauma.Entity, target:Barotrauma.ISerializableEntity, worldPosition?:System.Nullable*1Microsoft*Xna*Framework*Vector2)
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['StatusEffect'].Apply = function(type, deltaTime, entity, targets, worldPosition) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['StatusEffect'].Apply = function(deltaTime, entity, targets, worldPosition) end
+
+---`Method Private Instance`
+---@param entity Barotrauma.Entity
+---@return Barotrauma.Hull
+_G['StatusEffect'].GetHull = function(entity) end
+
+---`Method Private Instance`
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['StatusEffect'].GetPosition = function(entity, targets, worldPosition) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISerializableEntity
+---@return Barotrauma.Character
+_G['StatusEffect'].GetCharacterFromTarget = function(target) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['StatusEffect'].RemoveCharacter = function(character) end
+
+---`Method Private Instance`
+---@param chosenItemSpawnInfo Barotrauma.StatusEffect.ItemSpawnInfo
+---@param entity Barotrauma.Entity
+---@param sourceBody Barotrauma.PhysicsBody
+---@param position Microsoft.Xna.Framework.Vector2
+---@param targetEntity Barotrauma.Entity
+_G['StatusEffect'].SpawnItem = function(chosenItemSpawnInfo, entity, sourceBody, position, targetEntity) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@param entity Barotrauma.Entity
+_G['StatusEffect'].TryTriggerAnimation = function(target, entity) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param currentHull Barotrauma.Hull
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param playSound System.Boolean
+_G['StatusEffect'].ApplyProjSpecific = function(deltaTime, entity, targets, currentHull, worldPosition, playSound) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.Object
+---@param deltaTime System.Single
+_G['StatusEffect'].ApplyToProperty = function(target, property, value, deltaTime) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['StatusEffect'].UpdateAll = function(deltaTime) end
+
+---`Method Private Instance`
+---@param entity Barotrauma.Entity
+---@param targetCharacter Barotrauma.Character
+---@param deltaTime System.Single
+---@return System.Single
+_G['StatusEffect'].GetAfflictionMultiplier = function(entity, targetCharacter, deltaTime) end
+
+---`Method Private Instance`
+---@param affliction Barotrauma.Affliction
+---@param entity Barotrauma.Entity
+---@param targetCharacter Barotrauma.Character
+---@param deltaTime System.Single
+---@param multiplyByMaxVitality System.Boolean
+---@return Barotrauma.Affliction
+_G['StatusEffect'].GetMultipliedAffliction = function(affliction, entity, targetCharacter, deltaTime, multiplyByMaxVitality) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param item Barotrauma.Item
+---@param limb Barotrauma.Limb
+---@param affliction Barotrauma.Affliction
+---@param result Barotrauma.AttackResult
+_G['StatusEffect'].RegisterTreatmentResults = function(user, item, limb, affliction, result) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['StatusEffect'].UpdateAllProjSpecific = function(deltaTime) end
+
+---`Method Public Static`
+_G['StatusEffect'].StopAll = function() end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+_G['StatusEffect'].AddTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['StatusEffect'].HasTag = function(tag) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'] = function(element, parentDebugName) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'].__new = function(element, parentDebugName) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'] = function(element, parentDebugName) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/client/_00007FFD97D64370.lua b/Meta/Types/client/_00007FFD97D64370.lua
new file mode 100644
index 0000000..0d6e149
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D64370.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.StatusEffect.AbilityStatusEffectIdentifier : Barotrauma.Abilities.AbilityObject
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EffectIdentifier Barotrauma.Identifier
+_G['StatusEffect']['AbilityStatusEffectIdentifier'] = {}
+
+---`Constructor Public Instance`
+---@param effectIdentifier Barotrauma.Identifier
+---@return Barotrauma.StatusEffect.AbilityStatusEffectIdentifier
+_G['StatusEffect']['AbilityStatusEffectIdentifier'] = function(effectIdentifier) end
+
+---`Constructor Public Instance`
+---@param effectIdentifier Barotrauma.Identifier
+---@return Barotrauma.StatusEffect.AbilityStatusEffectIdentifier
+_G['StatusEffect']['AbilityStatusEffectIdentifier'].__new = function(effectIdentifier) end
+
diff --git a/Meta/Types/client/_00007FFD97D648B8.lua b/Meta/Types/client/_00007FFD97D648B8.lua
new file mode 100644
index 0000000..c7b52f9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D648B8.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.StatusEffect.CharacterSpawnInfo : System.Object
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Count System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferBuffs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferAfflictions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TotalMaxCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Stun System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionOnSpawn Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionStrength System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferControl System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RemovePreviousCharacter System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritEventTags System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritTeam System.Boolean
+_G['StatusEffect']['CharacterSpawnInfo'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.CharacterSpawnInfo
+_G['StatusEffect']['CharacterSpawnInfo'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.CharacterSpawnInfo
+_G['StatusEffect']['CharacterSpawnInfo'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/client/_00007FFD97D64A78.lua b/Meta/Types/client/_00007FFD97D64A78.lua
new file mode 100644
index 0000000..a4c3028
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D64A78.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.StatusEffect.GiveSkill : System.Object
+---`Field Public Instance`
+---@field SkillIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Amount System.Single
+---`Field Public Instance`
+---@field TriggerTalents System.Boolean
+---`Field Public Instance`
+---@field UseDeltaTime System.Boolean
+---`Field Public Instance`
+---@field Proportional System.Boolean
+---`Field Public Instance`
+---@field AlwayShowNotification System.Boolean
+_G['StatusEffect']['GiveSkill'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.GiveSkill
+_G['StatusEffect']['GiveSkill'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.GiveSkill
+_G['StatusEffect']['GiveSkill'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/client/_00007FFD97D64BD8.lua b/Meta/Types/client/_00007FFD97D64BD8.lua
new file mode 100644
index 0000000..375b96f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D64BD8.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.StatusEffect.GiveTalentInfo : System.Object
+---`Field Public Instance`
+---@field TalentIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field GiveRandom System.Boolean
+_G['StatusEffect']['GiveTalentInfo'] = {}
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param _ System.String
+---@return Barotrauma.StatusEffect.GiveTalentInfo
+_G['StatusEffect']['GiveTalentInfo'] = function(element, _) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param _ System.String
+---@return Barotrauma.StatusEffect.GiveTalentInfo
+_G['StatusEffect']['GiveTalentInfo'].__new = function(element, _) end
+
diff --git a/Meta/Types/client/_00007FFD97D64F30.lua b/Meta/Types/client/_00007FFD97D64F30.lua
new file mode 100644
index 0000000..f2dc307
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D64F30.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.DelayedEffect : Barotrauma.StatusEffect
+---`Field Private Instance`
+---@field delayType Barotrauma.DelayedEffect.DelayTypes
+---`Field Private Instance`
+---@field delay System.Single
+---`Field Public Static`
+---@field DelayList (System.Collections.Generic.List*1Barotrauma*DelayedListElement)|(Barotrauma.DelayedListElement[])
+_G['DelayedEffect'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(type:Barotrauma.ActionType, deltaTime:System.Single, entity:Barotrauma.Entity, target:Barotrauma.ISerializableEntity, worldPosition?:System.Nullable*1Microsoft*Xna*Framework*Vector2)
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['DelayedEffect'].Apply = function(type, deltaTime, entity, targets, worldPosition) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['DelayedEffect'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D650E8.lua b/Meta/Types/client/_00007FFD97D650E8.lua
new file mode 100644
index 0000000..e2c5028
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D650E8.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.DelayedListElement : System.Object
+---`Field Public Instance`
+---@field Parent Barotrauma.DelayedEffect
+---`Field Public Instance`
+---@field Entity Barotrauma.Entity
+---`Field Public Instance`
+---@field WorldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field StartPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field Targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Public Instance`
+---@field Delay System.Single
+_G['DelayedListElement'] = {}
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.DelayedEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param delay System.Single
+---@param worldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param startPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.DelayedListElement
+_G['DelayedListElement'] = function(parentEffect, parentEntity, targets, delay, worldPosition, startPosition) end
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.DelayedEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param delay System.Single
+---@param worldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param startPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.DelayedListElement
+_G['DelayedListElement'].__new = function(parentEffect, parentEntity, targets, delay, worldPosition, startPosition) end
+
diff --git a/Meta/Types/client/_00007FFD97D65300.lua b/Meta/Types/client/_00007FFD97D65300.lua
new file mode 100644
index 0000000..4549762
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D65300.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.DurationListElement : System.Object
+---`Field Public Instance`
+---@field Parent Barotrauma.StatusEffect
+---`Field Public Instance`
+---@field Entity Barotrauma.Entity
+---`Field Public Instance`
+---@field Targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Public Instance`
+---@field Timer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Duration System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field User Barotrauma.Character
+_G['DurationListElement'] = {}
+
+---`Method Public Instance`
+---@param duration System.Single
+---@param newUser Barotrauma.Character
+_G['DurationListElement'].Reset = function(duration, newUser) end
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.StatusEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param duration System.Single
+---@param user Barotrauma.Character
+---@return Barotrauma.DurationListElement
+_G['DurationListElement'] = function(parentEffect, parentEntity, targets, duration, user) end
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.StatusEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param duration System.Single
+---@param user Barotrauma.Character
+---@return Barotrauma.DurationListElement
+_G['DurationListElement'].__new = function(parentEffect, parentEntity, targets, duration, user) end
+
diff --git a/Meta/Types/client/_00007FFD97D656F8.lua b/Meta/Types/client/_00007FFD97D656F8.lua
new file mode 100644
index 0000000..3c63d46
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D656F8.lua
@@ -0,0 +1,181 @@
+---@meta
+---@class Barotrauma.OutpostGenerator : System.Object
+---`Field Private Static`
+---@field usedForceOutpostModule Barotrauma.SubmarineInfo
+---`Field Private Static`
+---@field GapPositions (Barotrauma.GapPosition-arr)|(Barotrauma.OutpostModuleInfo.GapPosition[])
+_G['OutpostGenerator'] = {}
+
+---`Method Public Static`
+---@overload fun(generationParams:Barotrauma.OutpostGenerationParams, locationType:Barotrauma.LocationType, onlyEntrance?:System.Boolean, allowInvalidOutpost?:System.Boolean):(Barotrauma.Submarine)
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@param location Barotrauma.Location
+---@param onlyEntrance? System.Boolean
+---@param allowInvalidOutpost? System.Boolean
+---@return Barotrauma.Submarine
+_G['OutpostGenerator'].Generate = function(generationParams, location, onlyEntrance, allowInvalidOutpost) end
+
+---`Method Private Static`
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@param locationType Barotrauma.LocationType
+---@param location Barotrauma.Location
+---@param onlyEntrance? System.Boolean
+---@param allowInvalidOutpost? System.Boolean
+---@return Barotrauma.Submarine
+_G['OutpostGenerator'].Generate = function(generationParams, locationType, location, onlyEntrance, allowInvalidOutpost) end
+
+---`Method Private Static`
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@param outpostModuleFiles (Barotrauma.OutpostModuleFile-arr)|(Barotrauma.OutpostModuleFile[])
+---@param sub Barotrauma.Submarine
+---@param locationType Barotrauma.LocationType
+---@param location Barotrauma.Location
+---@param onlyEntrance? System.Boolean
+---@param allowInvalidOutpost? System.Boolean
+---@return Barotrauma.Submarine
+_G['OutpostGenerator'].GenerateFromModules = function(generationParams, outpostModuleFiles, sub, locationType, location, onlyEntrance, allowInvalidOutpost) end
+
+---`Method Private Static`
+---@param modules (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---@param location Barotrauma.Location
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@return (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['OutpostGenerator'].SelectModules = function(modules, location, generationParams) end
+
+---`Method Private Static`
+---@param currentModule Barotrauma.OutpostGenerator.PlacedModule
+---@param availableModules (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param pendingModuleFlags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param selectedModules (System.Collections.Generic.List*1Barotrauma*OutpostGenerator*PlacedModule)|(Barotrauma.OutpostGenerator.PlacedModule[])
+---@param locationType Barotrauma.LocationType
+---@param tryReplacingCurrentModule? System.Boolean
+---@param allowExtendBelowInitialModule? System.Boolean
+---@param allowDifferentLocationType? System.Boolean
+---@return System.Boolean
+_G['OutpostGenerator'].AppendToModule = function(currentModule, availableModules, pendingModuleFlags, selectedModules, locationType, tryReplacingCurrentModule, allowExtendBelowInitialModule, allowDifferentLocationType) end
+
+---`Method Private Static`
+---@param currentModule Barotrauma.OutpostGenerator.PlacedModule
+---@param gapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@param availableModules (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param pendingModuleFlags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param selectedModules (System.Collections.Generic.List*1Barotrauma*OutpostGenerator*PlacedModule)|(Barotrauma.OutpostGenerator.PlacedModule[])
+---@param locationType Barotrauma.LocationType
+---@param allowDifferentLocationType System.Boolean
+---@return Barotrauma.OutpostGenerator.PlacedModule
+_G['OutpostGenerator'].AppendModule = function(currentModule, gapPosition, availableModules, pendingModuleFlags, selectedModules, locationType, allowDifferentLocationType) end
+
+---`Method Private Static`
+---@param modules1 (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param modules2 (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param module1 Barotrauma.PlacedModule-ref
+---@param module2 Barotrauma.PlacedModule-ref
+---@return System.Boolean
+_G['OutpostGenerator'].FindOverlap = function(modules1, modules2, module1, module2) end
+
+---`Method Private Static`
+---@param module1 Barotrauma.OutpostGenerator.PlacedModule
+---@param module2 Barotrauma.OutpostGenerator.PlacedModule
+---@return System.Boolean
+_G['OutpostGenerator'].ModulesOverlap = function(module1, module2) end
+
+---`Method Private Static`
+---@param modules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@return System.Boolean
+_G['OutpostGenerator'].ModuleOverlapsWithModuleConnections = function(modules) end
+
+---`Method Private Static`
+---@param movableModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param module1 Barotrauma.OutpostGenerator.PlacedModule
+---@param module2 Barotrauma.OutpostGenerator.PlacedModule
+---@param allmodules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param solution System.Collections.Generic.Dictionary
+---@return System.Boolean
+_G['OutpostGenerator'].FindOverlapSolution = function(movableModules, module1, module2, allmodules, solution) end
+
+---`Method Private Static`
+---@overload fun(modules:(System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo)), moduleFlag:Barotrauma.Identifier, locationType:Barotrauma.LocationType):(Barotrauma.SubmarineInfo)
+---@param prevModule Barotrauma.OutpostModuleInfo
+---@param modules (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---@param moduleFlag Barotrauma.Identifier
+---@param gapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@param locationType Barotrauma.LocationType
+---@param allowDifferentLocationType System.Boolean
+---@return Barotrauma.SubmarineInfo
+_G['OutpostGenerator'].GetRandomModule = function(prevModule, modules, moduleFlag, gapPosition, locationType, allowDifferentLocationType) end
+
+---`Method Private Static`
+---@param startModule Barotrauma.OutpostGenerator.PlacedModule
+---@param allModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param subsequentModules System.Collections.Generic.List
+_G['OutpostGenerator'].GetSubsequentModules = function(startModule, allModules, subsequentModules) end
+
+---`Method Private Static`
+---@param thisGapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@return Barotrauma.OutpostModuleInfo.GapPosition
+_G['OutpostGenerator'].GetOpposingGapPosition = function(thisGapPosition) end
+
+---`Method Private Static`
+---@param thisGapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@return Microsoft.Xna.Framework.Vector2
+_G['OutpostGenerator'].GetMoveDir = function(thisGapPosition) end
+
+---`Method Private Static`
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---@param gapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@return Barotrauma.Gap
+_G['OutpostGenerator'].GetGap = function(entities, gapPosition) end
+
+---`Method Private Static`
+---@param from Barotrauma.OutpostModuleInfo
+---@param to Barotrauma.OutpostModuleInfo
+---@return System.Boolean
+_G['OutpostGenerator'].CanAttachTo = function(from, to) end
+
+---`Method Private Static`
+---@param sub Barotrauma.Submarine
+---@param locationType Barotrauma.LocationType
+---@param placedModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param availableModules (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---@param allEntities (System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity)|({[Barotrauma.OutpostGenerator.PlacedModule]:((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))})
+---@param isRuin System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['OutpostGenerator'].GenerateHallways = function(sub, locationType, placedModules, availableModules, allEntities, isRuin) end
+
+---`Method Private Static`
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['OutpostGenerator'].LinkOxygenGenerators = function(entities) end
+
+---`Method Private Static`
+---@param sub Barotrauma.Submarine
+---@param location Barotrauma.Location
+_G['OutpostGenerator'].EnableFactionSpecificEntities = function(sub, location) end
+
+---`Method Private Static`
+---@param placedModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param entities (System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity)|({[Barotrauma.OutpostGenerator.PlacedModule]:((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))})
+---@param removeUnusedGaps System.Boolean
+_G['OutpostGenerator'].LockUnusedDoors = function(placedModules, entities, removeUnusedGaps) end
+
+---`Method Private Static`
+---@param placedModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param entities (System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity)|({[Barotrauma.OutpostGenerator.PlacedModule]:((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))})
+_G['OutpostGenerator'].AlignLadders = function(placedModules, entities) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+_G['OutpostGenerator'].PowerUpOutpost = function(sub) end
+
+---`Method Public Static`
+---@param location Barotrauma.Location
+---@param outpost Barotrauma.Submarine
+_G['OutpostGenerator'].SpawnNPCs = function(location, outpost) end
+
+---`Constructor Private Static`
+---@return Barotrauma.OutpostGenerator
+_G['OutpostGenerator'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.OutpostGenerator
+_G['OutpostGenerator'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D65B30.lua b/Meta/Types/client/_00007FFD97D65B30.lua
new file mode 100644
index 0000000..2bed6c0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D65B30.lua
@@ -0,0 +1,143 @@
+---@meta
+---@class Barotrauma.FireSource : System.Object
+---`Field Private Instance`
+---@field lightSource Barotrauma.Lights.LightSource
+---`Field Private Instance`
+---@field particleTimer System.Single
+---`Field NonPublic Instance`
+---@field hull Barotrauma.Hull
+---`Field NonPublic Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field size Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field submarine Barotrauma.Submarine
+---`Field NonPublic Instance`
+---@field removed System.Boolean
+---`Field Private Instance`
+---@field burnDecals (System.Collections.Generic.List*1Barotrauma*Decal)|(Barotrauma.Decal[])
+---`Field Public Instance`
+---@field SourceCharacter Barotrauma.Character
+---`Field Private Static`
+---@field OxygenConsumption System.Single
+---`Field Private Static`
+---@field GrowSpeed System.Single
+---`Field Private Static`
+---@field MaxDamageRange System.Single
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DamageRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamagesItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamagesCharacters System.Boolean
+---`Getter Public Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---@field Hull Barotrauma.Hull
+_G['FireSource'] = {}
+
+---`Method Public Instance`
+---@param size Microsoft.Xna.Framework.Vector2
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param hull Barotrauma.Hull
+---@param growModifier System.Single
+---@param onChangeHull? (Barotrauma.Particles.Particle.OnChangeHullHandler)|(fun(position:Microsoft.Xna.Framework.Vector2, currentHull:Barotrauma.Hull))
+_G['FireSource'].EmitParticles = function(size, worldPosition, deltaTime, hull, growModifier, onChangeHull) end
+
+---`Method NonPublic Instance Virtual`
+_G['FireSource'].LimitSize = function() end
+
+---`Method Public Static`
+---@overload fun(fireSources:(System.Collections.Generic.List*1Barotrauma*FireSource)|(Barotrauma.FireSource[]), deltaTime:System.Single)
+---@param fireSources (System.Collections.Generic.List*1Barotrauma*DummyFireSource)|(Barotrauma.DummyFireSource[])
+---@param deltaTime System.Single
+_G['FireSource'].UpdateAll = function(fireSources, deltaTime) end
+
+---`Method Private Instance`
+---@param fireSource Barotrauma.FireSource
+---@return System.Boolean
+_G['FireSource'].CheckOverLap = function(fireSource) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['FireSource'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['FireSource'].ReduceOxygen = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param growModifier System.Single
+---@param deltaTime System.Single
+_G['FireSource'].AdjustXPos = function(growModifier, deltaTime) end
+
+---`Method Private Instance`
+---@param growModifier System.Single
+---@param deltaTime System.Single
+_G['FireSource'].UpdateProjSpecific = function(growModifier, deltaTime) end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param particleHull Barotrauma.Hull
+_G['FireSource'].OnChangeHull = function(pos, particleHull) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FireSource'].DamageCharacters = function(deltaTime) end
+
+---`Method Public Instance`
+---@overload fun(c:Barotrauma.Character, damageRange:System.Single):(System.Boolean)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param damageRange System.Single
+---@return System.Boolean
+_G['FireSource'].IsInDamageRange = function(worldPosition, damageRange) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FireSource'].DamageItems = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FireSource'].HullWaterExtinguish = function(deltaTime) end
+
+---`Method Public Instance`
+---@overload fun(deltaTime:System.Single, amount:System.Single)
+---@param deltaTime System.Single
+---@param amount System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['FireSource'].Extinguish = function(deltaTime, amount, worldPosition) end
+
+---`Method Public Instance`
+_G['FireSource'].Remove = function() end
+
+---`Constructor Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param sourceCharacter? Barotrauma.Character
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.FireSource
+_G['FireSource'] = function(worldPosition, spawningHull, sourceCharacter, isNetworkMessage) end
+
+---`Constructor Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param sourceCharacter? Barotrauma.Character
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.FireSource
+_G['FireSource'].__new = function(worldPosition, spawningHull, sourceCharacter, isNetworkMessage) end
+
diff --git a/Meta/Types/client/_00007FFD97D65D28.lua b/Meta/Types/client/_00007FFD97D65D28.lua
new file mode 100644
index 0000000..6eda206
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D65D28.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.DummyFireSource : Barotrauma.FireSource
+---`Field Private Instance`
+---@field maxSize Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field CausedByPsychosis System.Boolean
+---`Getter Public Instance Virtual`
+---@field DamageRange System.Single
+_G['DummyFireSource'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['DummyFireSource'].LimitSize = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param growModifier System.Single
+---@param deltaTime System.Single
+_G['DummyFireSource'].AdjustXPos = function(growModifier, deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['DummyFireSource'].ReduceOxygen = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param maxSize Microsoft.Xna.Framework.Vector2
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.DummyFireSource
+_G['DummyFireSource'] = function(maxSize, worldPosition, spawningHull, isNetworkMessage) end
+
+---`Constructor Public Instance`
+---@param maxSize Microsoft.Xna.Framework.Vector2
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.DummyFireSource
+_G['DummyFireSource'].__new = function(maxSize, worldPosition, spawningHull, isNetworkMessage) end
+
diff --git a/Meta/Types/client/_00007FFD97D662F0.lua b/Meta/Types/client/_00007FFD97D662F0.lua
new file mode 100644
index 0000000..282606b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D662F0.lua
@@ -0,0 +1,169 @@
+---@meta
+---@class Barotrauma.Explosion : System.Object
+---`Field Public Instance`
+---@field Attack Barotrauma.Attack
+---`Field Private Instance`
+---@field force System.Single
+---`Field Private Instance`
+---@field screenColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field screenColorRange System.Single
+---`Field Private Instance`
+---@field screenColorDuration System.Single
+---`Field Private Instance`
+---@field sparks System.Boolean
+---`Field Private Instance`
+---@field shockwave System.Boolean
+---`Field Private Instance`
+---@field flames System.Boolean
+---`Field Private Instance`
+---@field smoke System.Boolean
+---`Field Private Instance`
+---@field flash System.Boolean
+---`Field Private Instance`
+---@field debris System.Boolean
+---`Field Private Instance`
+---@field underwaterBubble System.Boolean
+---`Field Private Instance`
+---@field flashColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field playTinnitus System.Boolean
+---`Field Private Instance`
+---@field applyFireEffects System.Boolean
+---`Field Private Instance`
+---@field ignoreFireEffectsForTags (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field IgnoredCover (System.Collections.Generic.IEnumerable*1Barotrauma*Structure)|(fun():(Barotrauma.Structure))
+---`Field Private Instance`
+---@field flashDuration System.Single
+---`Field Private Instance`
+---@field flashRange System.Nullable*1System*Single
+---`Field Private Instance`
+---@field decal System.String
+---`Field Private Instance`
+---@field decalSize System.Single
+---`Field Public Instance`
+---@field OnlyInside System.Boolean
+---`Field Public Instance`
+---@field OnlyOutside System.Boolean
+---`Field Public Instance`
+---@field PlayDamageSounds System.Boolean
+---`Field Private Instance`
+---@field itemRepairStrength System.Single
+---`Field Public Instance`
+---@field IgnoredSubmarines (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Public Instance`
+---@field IgnoredCharacters (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Static`
+---@field damagedStructures (System.Collections.Generic.Dictionary*1Barotrauma*Structure*1System*Single)|({[Barotrauma.Structure]:(System.Single)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CameraShake System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CameraShakeRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreCover System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceFalloff System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EmpStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BallastFloraDamage System.Single
+_G['Explosion'] = {}
+
+---`Method Private Static`
+---@param particlePos Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param particlePrefab Barotrauma.Particles.ParticlePrefab
+---@return Microsoft.Xna.Framework.Vector2
+_G['Explosion'].ClampParticlePos = function(particlePos, hull, particlePrefab) end
+
+---`Method Private Instance`
+---@param light Barotrauma.Lights.LightSource
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Explosion'].DimLight = function(light) end
+
+---`Method Public Instance`
+_G['Explosion'].DisableParticles = function() end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param damageSource Barotrauma.Entity
+---@param attacker? Barotrauma.Character
+_G['Explosion'].Explode = function(worldPosition, damageSource, attacker) end
+
+---`Method Private Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+_G['Explosion'].ExplodeProjSpecific = function(worldPosition, hull) end
+
+---`Method Private Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param force System.Single
+---@param damageSource Barotrauma.Entity
+---@param attacker Barotrauma.Character
+_G['Explosion'].DamageCharacters = function(worldPosition, attack, force, damageSource, attacker) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param worldRange System.Single
+---@param damage System.Single
+---@param levelWallDamage System.Single
+---@param attacker? Barotrauma.Character
+---@param ignoredSubmarines? (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---@param emitWallDamageParticles? System.Boolean
+---@param createWallDamageProjectiles? System.Boolean
+---@param distanceFalloff? System.Boolean
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Structure*1System*Single)|({[Barotrauma.Structure]:(System.Single)})
+_G['Explosion'].RangedStructureDamage = function(worldPosition, worldRange, damage, levelWallDamage, attacker, ignoredSubmarines, emitWallDamageParticles, createWallDamageProjectiles, distanceFalloff) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param worldRange System.Single
+---@param damage System.Single
+---@param attacker? Barotrauma.Character
+---@param distanceFalloff? System.Boolean
+_G['Explosion'].RangedBallastFloraDamage = function(worldPosition, worldRange, damage, attacker, distanceFalloff) end
+
+---`Method Private Static`
+---@param explosionSimPos Microsoft.Xna.Framework.Vector2
+---@param explosionWorldPos Microsoft.Xna.Framework.Vector2
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param ignoredCover? (System.Collections.Generic.IEnumerable*1Barotrauma*Structure)|(fun():(Barotrauma.Structure))
+---@return System.Single
+_G['Explosion'].GetObstacleDamageMultiplier = function(explosionSimPos, explosionWorldPos, targetSimPos, ignoredCover) end
+
+---`Method Private Static`
+---@param volume System.Single
+_G['Explosion'].PlayTinnitusProjSpecific = function(volume) end
+
+---`Constructor Public Instance`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D664A0.lua b/Meta/Types/client/_00007FFD97D664A0.lua
new file mode 100644
index 0000000..d9327a9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D664A0.lua
@@ -0,0 +1,92 @@
+---@meta
+---@class Barotrauma.AbilityEffectType : System.Enum
+---`Field Public Static`
+---@field Undefined Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field None Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttack Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttackResult Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttacked Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttackedResult Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGainSkillPoint Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllyGainSkillPoint Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRepairComplete Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemFabricationSkillGain Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemFabricatedAmount Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemFabricatedIngredients Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllyItemFabricatedAmount Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnOpenItemContainer Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnUseRangedWeapon Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnReduceAffliction Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAddDamageAffliction Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRagdoll Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRoundEnd Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnLootCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAnyMissionCompleted Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllMissionsCompleted Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGiveOrder Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnCrewKillCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnKillCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnDieToCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllyGainMissionExperience Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGainMissionExperience Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGainMissionMoney Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnCrewGainMissionReputation Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnLocationDiscovered Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructed Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructedByAlly Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructedMaterial Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructedInventory Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnStopTinkering Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemPicked Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemSelected Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGeneticMaterialCombinedOrRefined Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnCrewGeneticMaterialCombinedOrRefined Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field AfterSubmarineAttacked Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnApplyTreatment Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnStatusEffectIdentifier Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRepairedOutsideLeak Barotrauma.AbilityEffectType
+_G['AbilityEffectType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D66648.lua b/Meta/Types/client/_00007FFD97D66648.lua
new file mode 100644
index 0000000..b82cbd1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D66648.lua
@@ -0,0 +1,168 @@
+---@meta
+---@class Barotrauma.StatTypes : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field HelmSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field WeaponsSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field HelmSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field WeaponsSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaximumHealthMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MovementSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field WalkingSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field SwimmingSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field PropulsionSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field BuffDurationMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field DebuffDurationMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalItemEffectivenessMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field FlowResistance Barotrauma.StatTypes
+---`Field Public Static`
+---@field AttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field TeamAttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RangedAttackSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field TurretAttackSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field TurretPowerCostReduction Barotrauma.StatTypes
+---`Field Public Static`
+---@field TurretChargeSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MeleeAttackSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MeleeAttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RangedSpreadReduction Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalRepairSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalRepairSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field DeconstructorSpeedMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairToolStructureRepairMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairToolStructureDamageMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairToolDeattachTimeMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaxRepairConditionMultiplierMechanical Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaxRepairConditionMultiplierElectrical Barotrauma.StatTypes
+---`Field Public Static`
+---@field IncreaseFabricationQuality Barotrauma.StatTypes
+---`Field Public Static`
+---@field GeneticMaterialRefineBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field GeneticMaterialTaintedProbabilityReductionOnCombine Barotrauma.StatTypes
+---`Field Public Static`
+---@field SkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExtraLevelGain Barotrauma.StatTypes
+---`Field Public Static`
+---@field HelmSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field WeaponsSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalItemApplyingMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field BuffItemApplyingMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field PoisonMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field TinkeringDuration Barotrauma.StatTypes
+---`Field Public Static`
+---@field TinkeringStrength Barotrauma.StatTypes
+---`Field Public Static`
+---@field TinkeringDamage Barotrauma.StatTypes
+---`Field Public Static`
+---@field ReputationGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ReputationLossMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MissionMoneyGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExperienceGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MissionExperienceGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExtraMissionCount Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExtraSpecialSalesCount Barotrauma.StatTypes
+---`Field Public Static`
+---@field StoreSellMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field StoreBuyMultiplierAffiliated Barotrauma.StatTypes
+---`Field Public Static`
+---@field StoreBuyMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ShipyardBuyMultiplierAffiliated Barotrauma.StatTypes
+---`Field Public Static`
+---@field ShipyardBuyMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaxAttachableCount Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExplosionRadiusMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExplosionDamageMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field FabricationSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field BallastFloraDamageMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field HoldBreathMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field Apprenticeship Barotrauma.StatTypes
+---`Field Public Static`
+---@field CPRBoost Barotrauma.StatTypes
+---`Field Public Static`
+---@field LockedTalents Barotrauma.StatTypes
+---`Field Public Static`
+---@field HireCostMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field InventoryExtraStackSize Barotrauma.StatTypes
+---`Field Public Static`
+---@field SoundRangeMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field SightRangeMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field DualWieldingPenaltyReduction Barotrauma.StatTypes
+---`Field Public Static`
+---@field NaturalMeleeAttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field NaturalRangedAttackMultiplier Barotrauma.StatTypes
+_G['StatTypes'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D669A8.lua b/Meta/Types/client/_00007FFD97D669A8.lua
new file mode 100644
index 0000000..a09984e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D669A8.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.Screen : System.Object
+---`Field Public Instance`
+---@field Frame Barotrauma.GUIFrame
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Selected Barotrauma.Screen
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Public Instance Virtual`
+---@field IsEditor System.Boolean
+_G['GUI']['Screen'] = {}
+
+---`Method Public Instance Virtual`
+_G['GUI']['Screen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['Screen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Public Instance`
+---@param from Microsoft.Xna.Framework.Color
+---@param to Microsoft.Xna.Framework.Color
+---@param duration System.Single
+_G['GUI']['Screen'].ColorFade = function(from, to, duration) end
+
+---`Method Private Instance`
+---@param from Microsoft.Xna.Framework.Color
+---@param to Microsoft.Xna.Framework.Color
+---@param duration System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GUI']['Screen'].UpdateColorFade = function(from, to, duration) end
+
+---`Method Public Instance Virtual`
+---@param filePath System.String
+---@param extension System.String
+_G['GUI']['Screen'].OnFileDropped = function(filePath, extension) end
+
+---`Method Public Instance Virtual`
+_G['GUI']['Screen'].Release = function() end
+
+---`Method Public Static`
+_G['GUI']['Screen'].SelectNull = function() end
+
+---`Method Public Instance Virtual`
+_G['GUI']['Screen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+_G['GUI']['Screen'].Select = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['GUI']['Screen'].Update = function(deltaTime) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Screen
+_G['GUI']['Screen'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Screen
+_G['GUI']['Screen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D66E78.lua b/Meta/Types/client/_00007FFD97D66E78.lua
new file mode 100644
index 0000000..e27020f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D66E78.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class Barotrauma.GameScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field renderTargetBackground Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Field Private Instance`
+---@field renderTarget Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Field Private Instance`
+---@field renderTargetWater Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Field Private Instance`
+---@field renderTargetFinal Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Field Public Instance`
+---@field DamageEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Field Private Instance`
+---@field damageStencil Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field distortTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field fadeToBlackState System.Single
+---`Field Private Instance`
+---@field updateLock System.Object
+---`Field Private Instance`
+---@field physicsTime System.Double
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PostProcessEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GradientEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GrainEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ThresholdTintEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BlueprintEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GameTime System.Double
+_G['GameScreen'] = {}
+
+---`Method Private Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+_G['GameScreen'].CreateRenderTargets = function(graphics) end
+
+---`Method Public Instance Virtual`
+_G['GameScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GameScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GameScreen'].DrawPositionIndicators = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param deltaTime System.Double
+_G['GameScreen'].DrawMap = function(graphics, spriteBatch, deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['GameScreen'].Select = function() end
+
+---`Method Public Instance Virtual`
+_G['GameScreen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['GameScreen'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Double
+_G['GameScreen'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+_G['GameScreen'].ExecutePhysics = function() end
+
+---`Constructor Public Instance`
+---@overload fun(graphics:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.GameScreen
+---@return Barotrauma.GameScreen
+_G['GameScreen'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(graphics:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.GameScreen
+---@return Barotrauma.GameScreen
+_G['GameScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D691F0.lua b/Meta/Types/client/_00007FFD97D691F0.lua
new file mode 100644
index 0000000..42be8d0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D691F0.lua
@@ -0,0 +1,832 @@
+---@meta
+---@class Barotrauma.NetLobbyScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field chatBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field chatRow Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field serverLogReverseButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field serverLogBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field serverLogFilterTicks Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field jobVariantTooltip Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field playStyleIconContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field chatSelector Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field chatInput Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field serverLogFilter Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field micIcon Barotrauma.GUIImage
+---`Field Private Instance`
+---@field levelDifficultySlider Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field traitorElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field traitorProbabilitySlider Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field traitorDangerGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field outpostDropdown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field outpostDropdownUpToDate System.Boolean
+---`Field Private Instance`
+---@field missionTypeTickBoxes (Barotrauma.GUITickBox-arr)|(Barotrauma.GUITickBox[])
+---`Field Private Instance`
+---@field missionTypeList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field joinOnGoingRoundButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field roundControlsHolder Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field spectateBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field playerInfoContent Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field changesPendingText Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field createPendingChangesText System.Boolean
+---`Field Private Instance`
+---@field subSearchBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field subPreviewContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field autoRestartBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field autoRestartText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field shuttleTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field backgroundSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field jobPreferencesButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field appearanceButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field characterInfoFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field appearanceFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field respawnModeSelection Barotrauma.GUISelectionCarousel*1Barotrauma*Networking*RespawnMode
+---`Field Private Instance`
+---@field respawnModeLabel Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field respawnIntervalElement Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field midRoundRespawnSettings (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field permadeathEnabledRespawnSettings (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field permadeathDisabledRespawnSettings (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field ironmanDisabledRespawnSettings (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field campaignDisabledElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field campaignHiddenElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field pvpOnlyElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field disembarkPerkSettings (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field respawnSettings (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field micIconStyle Barotrauma.Identifier
+---`Field Private Instance`
+---@field micCheckTimer System.Single
+---`Field Private Instance`
+---@field autoRestartTimer System.Single
+---`Field Private Instance`
+---@field campaignCharacterInfo Barotrauma.CharacterInfo
+---`Field Private Instance`
+---@field clientDisabledElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field clientHiddenElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field botSettingsElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field settingAssignedComponents (System.Collections.Generic.Dictionary*1Barotrauma*GUIComponent*1System*String)|({[Barotrauma.GUIComponent]:(System.String)})
+---`Field Private Instance`
+---@field chatPanelTabButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field publicOrPrivateText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field playstyleText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field selectedModeIndex System.Int32
+---`Field Public Instance`
+---@field PlayerList Barotrauma.GUIListBox
+---`Field Public Instance`
+---@field Team1Count System.Int32
+---`Field Public Instance`
+---@field Team2Count System.Int32
+---`Field Private Instance`
+---@field pvpTeamChoiceTeam1 Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field pvpTeamChoiceMiddleButton Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field pvpTeamChoiceTeam2 Barotrauma.GUITextBlock
+---`Field Public Instance`
+---@field SelectedSub Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field SelectedEnemySub Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field CampaignSetupUI Barotrauma.MultiPlayerCampaignSetupUI
+---`Field Private Instance`
+---@field gameModeSettingsContent Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field gameModeSettingsLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field upgradesTabButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field respawnTabButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field disembarkPerkSettingList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field disembarkPerkDisabledDisclaimer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field noPerksAvailableDisclaimer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field disembarkPerkFooterText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field isUpdatingPerks System.Boolean
+---`Field Private Instance`
+---@field prevPlayStyle System.Nullable*1Barotrauma*Networking*PlayStyle
+---`Field Private Instance`
+---@field prevIsPublic System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field FailedSelectedSub System.Nullable*1Barotrauma*NetLobbyScreen*FailedSubInfo
+---`Field Public Instance`
+---@field FailedSelectedEnemySub System.Nullable*1Barotrauma*NetLobbyScreen*FailedSubInfo
+---`Field Public Instance`
+---@field FailedSelectedShuttle System.Nullable*1Barotrauma*NetLobbyScreen*FailedSubInfo
+---`Field Public Instance`
+---@field FailedCampaignSubs (System.Collections.Generic.List*1Barotrauma*NetLobbyScreen*FailedSubInfo)|(Barotrauma.NetLobbyScreen.FailedSubInfo[])
+---`Field Public Instance`
+---@field FailedOwnedSubs (System.Collections.Generic.List*1Barotrauma*NetLobbyScreen*FailedSubInfo)|(Barotrauma.NetLobbyScreen.FailedSubInfo[])
+---`Field Private Instance`
+---@field visibilityMenuOrder (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Private Instance`
+---@field lastUpdateID System.UInt16
+---`Field Private Instance`
+---@field levelSeed System.String
+---`Field Public Static`
+---@field TeamChatSelected System.Boolean
+---`Field Private Static`
+---@field MicCheckInterval System.Single
+---`Field Private Static`
+---@field MainPanelWidth System.Single
+---`Field Private Static`
+---@field SidePanelWidth System.Single
+---`Field Private Static`
+---@field PanelSpacing System.Single
+---`Field Public Static`
+---@field PleaseWaitPopupUserData System.String
+---`Field Public Static`
+---@field SeparatistsIconUserData System.String
+---`Field Public Static`
+---@field CoalitionIconUserData System.String
+---`Field Private Static`
+---@field RoundStartWarningBoxUserData System.String
+---`Getter Public Instance`
+---@field ChatInput Barotrauma.GUITextBox
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MissionTypeFrame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CampaignSetupFrame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CampaignFrame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field QuitCampaignButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LevelSeedBox Barotrauma.GUITextBox
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SettingsButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ServerMessageButton Barotrauma.GUIButton
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field JobInfoFrame Barotrauma.GUIButton
+---`Getter Public Instance`
+---@field Spectating System.Boolean
+---`Getter Public Instance`
+---@field PermadeathMode System.Boolean
+---`Getter Public Instance`
+---@field PermanentlyDead System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PlayerFrame Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SubVisibilityButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterAppearanceCustomizationMenu Barotrauma.CharacterInfo.AppearanceCustomizationMenu
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field JobSelectionFrame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field JobPreferenceContainer Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field JobList Barotrauma.GUIListBox
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CampaignCharacterDiscarded System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileTransferFrame Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileTransferTitle Barotrauma.GUITextBlock
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileTransferProgressBar Barotrauma.GUIProgressBar
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileTransferProgressText Barotrauma.GUITextBlock
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Favorite Barotrauma.GUITickBox
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LogButtons Barotrauma.GUILayoutGroup
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SubList Barotrauma.GUIListBox
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShuttleList Barotrauma.GUIDropDown
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ModeList Barotrauma.GUIListBox
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedModeIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HighlightedModeIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CharacterNameBox Barotrauma.GUITextBox
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TeamPreferenceListBox Barotrauma.GUIListBox
+---`Getter Private Instance`
+---@field TeamPreference Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ReadyToStartBox Barotrauma.GUITickBox
+---`Getter Public Instance`
+---@field SelectedShuttle Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsingShuttle System.Boolean
+---`Getter Public Instance`
+---@field SelectedMode Barotrauma.GameModePreset
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MissionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---@field JobPreferences (System.Collections.Generic.List*1Barotrauma*JobVariant)|(Barotrauma.JobVariant[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelSeed System.String
+---`Getter Private Static`
+---@field PanelBorderSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastUpdateID System.UInt16
+_G['NetLobbyScreen'] = {}
+
+---`Method Public Instance`
+---@param subName System.String
+---@param md5Hash System.String
+---@param type Barotrauma.SelectedSubType
+---@param subList Barotrauma.GUIListBox
+---@param showPreview? System.Boolean
+---@return System.Boolean
+_G['NetLobbyScreen'].TrySelectSub = function(subName, md5Hash, type, subList, showPreview) end
+
+---`Method Public Instance`
+---@param serverSubmarine Barotrauma.SubmarineInfo
+---@param deliveryData Barotrauma.NetLobbyScreen.SubmarineDeliveryData
+---@return System.Boolean
+_G['NetLobbyScreen'].CheckIfCampaignSubMatches = function(serverSubmarine, deliveryData) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.SubmarineInfo
+_G['NetLobbyScreen'].CreateSubPreview = function(sub) end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].RecalculateSubDescription = function() end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].CreateSubmarineVisibilityMenu = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].UpdateSubVisibility = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].OnRoundEnded = function() end
+
+---`Method Public Instance`
+---@param waitUntilTime Barotrauma.SerializableDateTime
+---@param team1SubName System.String
+---@param team1IncompatiblePerks (System.Collections.Immutable.ImmutableArray*1Barotrauma*DisembarkPerkPrefab)|(Barotrauma.DisembarkPerkPrefab[])
+---@param team2SubName System.String
+---@param team2IncompatiblePerks (System.Collections.Immutable.ImmutableArray*1Barotrauma*DisembarkPerkPrefab)|(Barotrauma.DisembarkPerkPrefab[])
+_G['NetLobbyScreen'].ShowStartRoundWarning = function(waitUntilTime, team1SubName, team1IncompatiblePerks, team2SubName, team2IncompatiblePerks) end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].CloseStartRoundWarning = function() end
+
+---`Method Public Instance`
+---@param difficulty System.Single
+_G['NetLobbyScreen'].SetLevelDifficulty = function(difficulty) end
+
+---`Method Public Instance`
+---@param botCount System.Int32
+_G['NetLobbyScreen'].SetBotCount = function(botCount) end
+
+---`Method Public Instance`
+---@param botSpawnMode Barotrauma.Networking.BotSpawnMode
+_G['NetLobbyScreen'].SetBotSpawnMode = function(botSpawnMode) end
+
+---`Method Public Instance`
+---@param probability System.Single
+_G['NetLobbyScreen'].SetTraitorProbability = function(probability) end
+
+---`Method Public Instance`
+---@param dangerLevel System.Int32
+_G['NetLobbyScreen'].SetTraitorDangerLevel = function(dangerLevel) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateSubmarineInfoPanel = function(parent) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@return Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateGameModePanel = function(parent) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@return Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateGameModeSettingsPanel = function(parent) end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].SelectRespawnTab = function() end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].SelectUpgradesTab = function() end
+
+---`Method Private Instance`
+---@param buttonToEnable Barotrauma.GUIButton
+---@param buttonToDisable Barotrauma.GUIButton
+---@param elementsToEnable (System.Collections.Generic.ICollection*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+---@param elementsToDisable (System.Collections.Generic.ICollection*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+_G['NetLobbyScreen'].SelectTabShared = function(buttonToEnable, buttonToDisable, elementsToEnable, elementsToDisable) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@return Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateGeneralSettingsPanel = function(parent) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateDisembarkPointPanel = function(parent) end
+
+---`Method Private Instance`
+---@param box Barotrauma.GUIListBox
+_G['NetLobbyScreen'].UpdatePerkFooterText = function(box) end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].UpdateDisembarkPointListFromServerSettings = function() end
+
+---`Method Public Static`
+---@param info Barotrauma.SubmarineInfo
+_G['NetLobbyScreen'].SelectShuttle = function(info) end
+
+---`Method Public Static`
+---@param textTag System.String
+---@param parent Barotrauma.GUIComponent
+---@param toolTipTag? System.String
+---@return Barotrauma.GUITextBlock
+_G['NetLobbyScreen'].CreateSubHeader = function(textTag, parent, toolTipTag) end
+
+---`Method Public Static`
+---@overload fun(parent:Barotrauma.GUIComponent, headerTag:System.String, valueLabelTag:System.String, tooltipTag:System.String, slider:Barotrauma.GUIScrollBar-ref, label:Barotrauma.GUITextBlock-ref, step?:System.Nullable*1System*Single, range?:System.Nullable*1Microsoft*Xna*Framework*Vector2):(Barotrauma.GUIComponent)
+---@param parent Barotrauma.GUIComponent
+---@param headerTag System.String
+---@param valueLabelTag System.String
+---@param tooltipTag System.String
+---@param slider Barotrauma.GUIScrollBar-ref
+---@param label Barotrauma.GUITextBlock-ref
+---@param header Barotrauma.GUITextBlock-ref
+---@param step? System.Nullable*1System*Single
+---@param range? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateLabeledSlider = function(parent, headerTag, valueLabelTag, tooltipTag, slider, label, header, step, range) end
+
+---`Method Public Static`
+---@param parent Barotrauma.GUIComponent
+---@param labelTag System.String
+---@param min System.Int32
+---@param max System.Int32
+---@param toolTipTag? System.String
+---@param font? Barotrauma.GUIFont
+---@return Barotrauma.GUINumberInput
+_G['NetLobbyScreen'].CreateLabeledNumberInput = function(parent, labelTag, min, max, toolTipTag, font) end
+
+---`Method Public Static`
+---@param parent Barotrauma.GUIComponent
+---@param labelTag System.String
+---@param numElements System.Int32
+---@param toolTipTag? System.String
+---@return Barotrauma.GUIDropDown
+_G['NetLobbyScreen'].CreateLabeledDropdown = function(parent, labelTag, numElements, toolTipTag) end
+
+---`Method Private Instance`
+---@param rightPanel Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateSidePanelContents = function(rightPanel) end
+
+---`Method Private Instance`
+---@param bottomBar Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateBottomPanelContents = function(bottomBar) end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].StopWaitingForStartRound = function() end
+
+---`Method Public Static`
+---@param startButton Barotrauma.GUIButton
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['NetLobbyScreen'].WaitForStartRound = function(startButton) end
+
+---`Method Public Instance Virtual`
+_G['NetLobbyScreen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+_G['NetLobbyScreen'].Select = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].RefreshEnabledElements = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].ShowSpectateButton = function() end
+
+---`Method Public Instance`
+---@param newCampaignCharacterInfo Barotrauma.CharacterInfo
+_G['NetLobbyScreen'].SetCampaignCharacterInfo = function(newCampaignCharacterInfo) end
+
+---`Method Private Instance`
+---@overload fun(characterInfo:Barotrauma.CharacterInfo, allowEditing?:System.Boolean)
+---@param characterInfo Barotrauma.CharacterInfo
+---@param allowEditing System.Boolean
+---@param parent Barotrauma.GUIComponent
+---@param createPendingText? System.Boolean
+_G['NetLobbyScreen'].UpdatePlayerFrame = function(characterInfo, allowEditing, parent, createPendingText) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+---@param createPendingText? System.Boolean
+---@param alwaysAllowEditing? System.Boolean
+_G['NetLobbyScreen'].CreatePlayerFrame = function(parent, createPendingText, alwaysAllowEditing) end
+
+---`Method Public Instance`
+---@param preference Barotrauma.CharacterTeamType
+_G['NetLobbyScreen'].UpdateSelectedSub = function(preference) end
+
+---`Method Public Instance`
+---@param onYes (System.Action)|(fun())
+_G['NetLobbyScreen'].TryDiscardCampaignCharacter = function(onYes) end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].CreateChangesPendingText = function() end
+
+---`Method Public Static`
+---@param parent Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateChangesPendingFrame = function(parent) end
+
+---`Method Private Instance`
+---@param jobPrefab Barotrauma.JobPrefab
+---@param team Barotrauma.CharacterTeamType
+---@param variant System.Int32
+---@param isPvPMode System.Boolean
+---@param parentSlot Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateJobVariantTooltip = function(jobPrefab, team, variant, isPvPMode, parentSlot) end
+
+---`Method Private Instance`
+---@param dangerLevel System.Int32
+_G['NetLobbyScreen'].SetTraitorDangerIndicators = function(dangerLevel) end
+
+---`Method Public Instance`
+---@param tickBox Barotrauma.GUITickBox
+---@return System.Boolean
+_G['NetLobbyScreen'].ToggleSpectate = function(tickBox) end
+
+---`Method Public Instance`
+---@param spectate System.Boolean
+_G['NetLobbyScreen'].SetSpectate = function(spectate) end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].RefreshPvpTeamSelectionButtons = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].ResetPvpTeamSelection = function() end
+
+---`Method Public Instance`
+---@param allowSpectating System.Boolean
+_G['NetLobbyScreen'].SetAllowSpectating = function(allowSpectating) end
+
+---`Method Public Instance`
+---@param enabled System.Boolean
+---@param timer? System.Single
+_G['NetLobbyScreen'].SetAutoRestart = function(enabled, timer) end
+
+---`Method Public Instance`
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['NetLobbyScreen'].SetMissionTypes = function(missionTypes) end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].RefreshOutpostDropdown = function() end
+
+---`Method Public Instance`
+---@param subList Barotrauma.GUIComponent
+---@param submarines (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+_G['NetLobbyScreen'].UpdateSubList = function(subList, submarines) end
+
+---`Method Private Instance`
+---@param subList Barotrauma.GUIComponent
+---@param sub Barotrauma.SubmarineInfo
+_G['NetLobbyScreen'].AddSubmarine = function(subList, sub) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param sub Barotrauma.SubmarineInfo
+---@param subTextBlock Barotrauma.GUITextBlock
+---@param subList Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateSubmarineClassText = function(parent, sub, subTextBlock, subList) end
+
+---`Method Public Instance`
+---@param component Barotrauma.GUIComponent
+---@param userData System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].VotableClicked = function(component, userData) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['NetLobbyScreen'].AddPlayer = function(client) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@param ... Barotrauma.GUIComponent
+---@return (System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1Barotrauma*GUICustomComponent)|(fun(arg1:Microsoft.Xna.Framework.Graphics.SpriteBatch, arg2:Barotrauma.GUICustomComponent))
+_G['NetLobbyScreen'].DrawDownloadThrobber = function(client, ...) end
+
+---`Method Private Static`
+---@param client Barotrauma.Networking.Client
+---@param otherComponents (Barotrauma.GUIComponent-arr)|(Barotrauma.GUIComponent[])
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param component Barotrauma.GUICustomComponent
+_G['NetLobbyScreen'].DrawDownloadThrobber = function(client, otherComponents, spriteBatch, component) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['NetLobbyScreen'].SetPlayerNameAndJobPreference = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@param muted System.Boolean
+---@param mutedLocally System.Boolean
+_G['NetLobbyScreen'].SetPlayerVoiceIconState = function(client, muted, mutedLocally) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['NetLobbyScreen'].SetPlayerSpeaking = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['NetLobbyScreen'].RemovePlayer = function(client) end
+
+---`Method Public Static`
+---@param area Barotrauma.GUITextBlock.ClickableArea
+---@return Barotrauma.Networking.Client
+_G['NetLobbyScreen'].ExtractClientFromClickableArea = function(area) end
+
+---`Method Public Instance`
+---@overload fun(component:Barotrauma.GUITextBlock, area:Barotrauma.GUITextBlock.ClickableArea)
+---@param selectedClient Barotrauma.Networking.Client
+---@return System.Boolean
+_G['NetLobbyScreen'].SelectPlayer = function(selectedClient) end
+
+---`Method Public Instance`
+---@param component Barotrauma.GUITextBlock
+---@param area Barotrauma.GUITextBlock.ClickableArea
+_G['NetLobbyScreen'].ShowPlayerContextMenu = function(component, area) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+_G['NetLobbyScreen'].CreateModerationContextMenu = function(client) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].ClosePlayerFrame = function(button, userData) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+_G['NetLobbyScreen'].KickPlayer = function(client) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+_G['NetLobbyScreen'].BanPlayer = function(client) end
+
+---`Method Public Instance Virtual`
+_G['NetLobbyScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['NetLobbyScreen'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['NetLobbyScreen'].UpdateMicIcon = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['NetLobbyScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param component Barotrauma.GUICustomComponent
+_G['NetLobbyScreen'].DrawServerBanner = function(spriteBatch, component) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param component Barotrauma.GUICustomComponent
+---@param jobPrefab Barotrauma.JobVariant
+---@param team Barotrauma.CharacterTeamType
+---@param isPvPMode System.Boolean
+---@param itemsPerRow System.Int32
+_G['NetLobbyScreen'].DrawJobVariantItems = function(spriteBatch, component, jobPrefab, team, isPvPMode, itemsPerRow) end
+
+---`Method Public Instance`
+---@param message Barotrauma.Networking.ChatMessage
+_G['NetLobbyScreen'].NewChatMessage = function(message) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].SelectJobPreferencesTab = function(button, userData) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param _ System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].SelectAppearanceTab = function(button, _) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['NetLobbyScreen'].SaveAppearance = function() end
+
+---`Method Private Instance`
+---@param _ Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].SwitchJob = function(_, obj) end
+
+---`Method Private Instance`
+---@param _ Barotrauma.GUIComponent
+---@param __ System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].OpenJobSelection = function(_, __) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUIComponent
+---@param jobPrefab Barotrauma.JobPrefab
+---@param team Barotrauma.CharacterTeamType
+---@param isPvPMode System.Boolean
+---@param selectedByPlayer System.Boolean
+---@return (Barotrauma.GUIImage-arr)|(Barotrauma.GUIImage[])
+_G['NetLobbyScreen'].AddJobSpritesToGUIComponent = function(parent, jobPrefab, team, isPvPMode, selectedByPlayer) end
+
+---`Method Public Instance`
+---@param modeIndex System.Int32
+_G['NetLobbyScreen'].SelectMode = function(modeIndex) end
+
+---`Method Public Instance`
+---@param modeIndex System.Int32
+_G['NetLobbyScreen'].HighlightMode = function(modeIndex) end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].RefreshMissionTypes = function() end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].RefreshGameModeSettingsContent = function() end
+
+---`Method Private Instance`
+_G['NetLobbyScreen'].RefreshGameModeContent = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].RefreshStartButtonVisibility = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].RefreshChatrow = function() end
+
+---`Method Public Instance`
+---@param enabled System.Boolean
+_G['NetLobbyScreen'].ToggleCampaignMode = function(enabled) end
+
+---`Method Public Instance`
+---@param submarine Barotrauma.SubmarineInfo
+_G['NetLobbyScreen'].TryDisplayCampaignSubmarine = function(submarine) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].ViewJobInfo = function(button, obj) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['NetLobbyScreen'].CloseJobInfo = function(button, obj) end
+
+---`Method Private Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['NetLobbyScreen'].UpdateJobPreferences = function(characterInfo) end
+
+---`Method Private Static`
+---@param jobPrefab Barotrauma.JobVariant
+---@param variantIndex System.Int32
+---@param variantCount System.Int32
+---@param slot Barotrauma.GUIComponent
+---@return Barotrauma.GUIButton
+_G['NetLobbyScreen'].CreateJobVariantButton = function(jobPrefab, variantIndex, variantCount, slot) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IReadOnlyList*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+_G['NetLobbyScreen'].GetSubList = function() end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUIComponent
+---@return Microsoft.Xna.Framework.Point
+_G['NetLobbyScreen'].GetSizeWithoutBorder = function(parent) end
+
+---`Method Private Instance`
+---@param component Barotrauma.GUIComponent
+---@param settingName System.String
+_G['NetLobbyScreen'].AssignComponentToServerSetting = function(component, settingName) end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].AssignComponentsToServerSettings = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateServerInfoContents = function(parent) end
+
+---`Method Private Instance`
+---@param serverName System.String
+---@param message System.String
+_G['NetLobbyScreen'].CreateServerMessagePopup = function(serverName, message) end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].RefreshPlaystyleIcons = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateGameModeDropdown = function(parent) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['NetLobbyScreen'].CreateSubmarineListPanel = function(parent) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.NetLobbyScreen
+_G['NetLobbyScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.NetLobbyScreen
+_G['NetLobbyScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6A430.lua b/Meta/Types/client/_00007FFD97D6A430.lua
new file mode 100644
index 0000000..589d8d9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6A430.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.GameSettings : System.Object
+---`Field Private Static`
+---@field currentConfig Barotrauma.GameSettings.Config
+---`Field Public Static`
+---@field OnGameMainHasLoaded (System.Action)|(fun())
+---`Field Public Static`
+---@field PlayerConfigPath System.String
+---`Getter Public Static`
+---@field CurrentConfig Barotrauma.Config-ref
+_G['GameSettings'] = {}
+
+---`Method Public Static`
+_G['GameSettings'].Init = function() end
+
+---`Method Public Static`
+---@param newConfig Barotrauma.Config-ref
+_G['GameSettings'].SetCurrentConfig = function(newConfig) end
+
+---`Method Public Static`
+_G['GameSettings'].SaveCurrentConfig = function() end
+
+---`Method Private Static`
+---@param configElement System.Xml.Linq.XElement
+_G['GameSettings'].LoadSubEditorImages = function(configElement) end
+
diff --git a/Meta/Types/client/_00007FFD97D6A718.lua b/Meta/Types/client/_00007FFD97D6A718.lua
new file mode 100644
index 0000000..6e0b79f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6A718.lua
@@ -0,0 +1,324 @@
+---@meta
+---@class Microsoft.Xna.Framework.Input.Keys : System.Enum
+---`Field Public Static`
+---@field None Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Back Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Tab Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Enter Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field CapsLock Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Escape Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Space Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field PageUp Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field PageDown Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field End Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Home Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Left Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Up Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Right Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Down Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Select Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Print Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Execute Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field PrintScreen Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Insert Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Delete Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Help Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D0 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D1 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D2 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D3 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D4 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D5 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D6 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D7 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D8 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D9 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field A Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field B Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field C Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field D Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field E Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field G Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field H Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field I Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field J Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field K Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field L Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field M Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field N Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field O Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field P Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Q Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field R Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field S Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field T Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field U Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field V Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field W Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field X Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Y Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Z Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field LeftWindows Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field RightWindows Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Apps Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Sleep Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad0 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad1 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad2 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad3 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad4 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad5 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad6 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad7 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad8 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumPad9 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Multiply Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Add Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Separator Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Subtract Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Decimal Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Divide Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F1 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F2 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F3 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F4 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F5 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F6 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F7 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F8 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F9 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F10 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F11 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F12 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F13 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F14 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F15 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F16 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F17 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F18 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F19 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F20 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F21 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F22 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F23 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field F24 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field NumLock Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Scroll Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field LeftShift Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field RightShift Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field LeftControl Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field RightControl Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field LeftAlt Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field RightAlt Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field BrowserBack Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field BrowserForward Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field BrowserRefresh Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field BrowserStop Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field BrowserSearch Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field BrowserFavorites Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field BrowserHome Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field VolumeMute Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field VolumeDown Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field VolumeUp Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field MediaNextTrack Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field MediaPreviousTrack Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field MediaStop Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field MediaPlayPause Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field LaunchMail Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field SelectMedia Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field LaunchApplication1 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field LaunchApplication2 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemSemicolon Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemPlus Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemComma Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemMinus Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemPeriod Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemQuestion Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemTilde Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemOpenBrackets Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemPipe Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemCloseBrackets Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemQuotes Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Oem8 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemBackslash Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field ProcessKey Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Attn Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Crsel Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Exsel Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field EraseEof Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Play Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Zoom Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Pa1 Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemClear Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field ChatPadGreen Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field ChatPadOrange Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Pause Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field ImeConvert Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field ImeNoConvert Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Kana Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field Kanji Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemAuto Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemCopy Microsoft.Xna.Framework.Input.Keys
+---`Field Public Static`
+---@field OemEnlW Microsoft.Xna.Framework.Input.Keys
+_G['Keys'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D6BAB8.lua b/Meta/Types/client/_00007FFD97D6BAB8.lua
new file mode 100644
index 0000000..a05c55b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6BAB8.lua
@@ -0,0 +1,190 @@
+---@meta
+---@class Barotrauma.SettingsMenu : System.Object
+---`Field Private Instance`
+---@field unsavedConfig Barotrauma.GameSettings.Config
+---`Field Private Instance`
+---@field mainFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field tabber Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field contentFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field bottom Barotrauma.GUILayoutGroup
+---`Field Public Instance`
+---@field WorkshopMenu Barotrauma.Steam.WorkshopMenu
+---`Field Private Instance`
+---@field tabContents (System.Collections.Generic.Dictionary*1Barotrauma*SettingsMenu*Tab*1System*ValueTuple*2Barotrauma*GUIButton*2Barotrauma*GUIFrame)|({[Barotrauma.SettingsMenu.Tab]:(System.ValueTuple*1Barotrauma*GUIButton*1Barotrauma*GUIFrame)})
+---`Field Private Instance`
+---@field inputButtonValueNameGetters (System.Collections.Generic.Dictionary*1Barotrauma*GUIButton*1System*Func*2Barotrauma*LocalizedString)|({[Barotrauma.GUIButton]:((System.Func*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString)))})
+---`Field Private Instance`
+---@field inputBoxSelectedThisFrame System.Boolean
+---`Field Private Static`
+---@field LegacyInputTypes (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*InputType)|(Barotrauma.InputType[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Instance Barotrauma.SettingsMenu
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentTab Barotrauma.SettingsMenu.Tab
+_G['SettingsMenu'] = {}
+
+---`Method Public Static`
+---@param mainParent Barotrauma.RectTransform
+---@return Barotrauma.SettingsMenu
+_G['SettingsMenu'].Create = function(mainParent) end
+
+---`Method Private Instance`
+---@param newContent Barotrauma.GUIFrame
+_G['SettingsMenu'].SwitchContent = function(newContent) end
+
+---`Method Public Instance`
+---@param tab Barotrauma.SettingsMenu.Tab
+_G['SettingsMenu'].SelectTab = function(tab) end
+
+---`Method Private Instance`
+---@param tab Barotrauma.SettingsMenu.Tab
+---@param content Barotrauma.GUIFrame
+_G['SettingsMenu'].AddButtonToTabber = function(tab, content) end
+
+---`Method Private Instance`
+---@param tab Barotrauma.SettingsMenu.Tab
+---@return Barotrauma.GUIFrame
+_G['SettingsMenu'].CreateNewContentFrame = function(tab) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUIFrame
+---@param split? System.Boolean
+---@return System.ValueTuple*1Barotrauma*GUILayoutGroup*1Barotrauma*GUILayoutGroup
+_G['SettingsMenu'].CreateSidebars = function(parent, split) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUIFrame
+---@return Barotrauma.GUILayoutGroup
+_G['SettingsMenu'].CreateCenterLayout = function(parent) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUILayoutGroup
+---@return Barotrauma.RectTransform
+_G['SettingsMenu'].NewItemRectT = function(parent) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUILayoutGroup
+_G['SettingsMenu'].Spacer = function(parent) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUILayoutGroup
+---@param str Barotrauma.LocalizedString
+---@param font Barotrauma.GUIFont
+---@return Barotrauma.GUITextBlock
+_G['SettingsMenu'].Label = function(parent, str, font) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUILayoutGroup
+---@param textFunc (System.Func*1Barotrauma*SettingsMenu*T*1Barotrauma*LocalizedString)|(fun(arg:Barotrauma.SettingsMenu.T):(Barotrauma.LocalizedString))
+---@param tooltipFunc (System.Func*1Barotrauma*SettingsMenu*T*1Barotrauma*LocalizedString)|(fun(arg:Barotrauma.SettingsMenu.T):(Barotrauma.LocalizedString))
+---@param currentValue Barotrauma.SettingsMenu.T
+---@param setter (System.Action*1Barotrauma*SettingsMenu*T)|(fun(obj:Barotrauma.SettingsMenu.T))
+_G['SettingsMenu'].DropdownEnum = function(parent, textFunc, tooltipFunc, currentValue, setter) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUILayoutGroup
+---@param textFunc (System.Func*1Barotrauma*SettingsMenu*T*1Barotrauma*LocalizedString)|(fun(arg:Barotrauma.SettingsMenu.T):(Barotrauma.LocalizedString))
+---@param tooltipFunc (System.Func*1Barotrauma*SettingsMenu*T*1Barotrauma*LocalizedString)|(fun(arg:Barotrauma.SettingsMenu.T):(Barotrauma.LocalizedString))
+---@param values (System.Collections.Generic.IReadOnlyList*1Barotrauma*SettingsMenu*T)|(Barotrauma.SettingsMenu.T[])
+---@param currentValue Barotrauma.SettingsMenu.T
+---@param setter (System.Action*1Barotrauma*SettingsMenu*T)|(fun(obj:Barotrauma.SettingsMenu.T))
+---@return Barotrauma.GUIDropDown
+_G['SettingsMenu'].Dropdown = function(parent, textFunc, tooltipFunc, values, currentValue, setter) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUILayoutGroup
+---@param range Microsoft.Xna.Framework.Vector2
+---@param steps System.Int32
+---@param labelFunc (System.Func*1System*Single*1System*String)|(fun(arg:System.Single):(System.String))
+---@param currentValue System.Single
+---@param setter (System.Action*1System*Single)|(fun(obj:System.Single))
+---@param tooltip? Barotrauma.LocalizedString
+---@return System.ValueTuple*1Barotrauma*GUIScrollBar*1Barotrauma*GUITextBlock
+_G['SettingsMenu'].Slider = function(parent, range, steps, labelFunc, currentValue, setter, tooltip) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUILayoutGroup
+---@param label Barotrauma.LocalizedString
+---@param tooltip Barotrauma.LocalizedString
+---@param currentValue System.Boolean
+---@param setter (System.Action*1System*Boolean)|(fun(obj:System.Boolean))
+---@return Barotrauma.GUITickBox
+_G['SettingsMenu'].Tickbox = function(parent, label, tooltip, currentValue, setter) end
+
+---`Method Private Instance`
+---@param v System.Single
+---@return System.String
+_G['SettingsMenu'].Percentage = function(v) end
+
+---`Method Private Static`
+---@param v System.Single
+---@return System.Int32
+_G['SettingsMenu'].Round = function(v) end
+
+---`Method Private Instance`
+_G['SettingsMenu'].CreateGraphicsTab = function() end
+
+---`Method Private Static`
+---@param name System.String
+---@return System.String
+_G['SettingsMenu'].TrimAudioDeviceName = function(name) end
+
+---`Method Private Static`
+---@param message System.String
+---@return System.Int32
+_G['SettingsMenu'].HandleAlErrors = function(message) end
+
+---`Method Private Static`
+---@param listSpecifier System.Int32
+---@param defaultSpecifier System.Int32
+---@param list System.Collections.Generic.IReadOnlyList
+---@param current System.String-ref
+_G['SettingsMenu'].GetAudioDevices = function(listSpecifier, defaultSpecifier, list, current) end
+
+---`Method Private Instance`
+_G['SettingsMenu'].CreateAudioAndVCTab = function() end
+
+---`Method Private Instance`
+_G['SettingsMenu'].CreateControlsTab = function() end
+
+---`Method Private Instance`
+_G['SettingsMenu'].CreateGameplayTab = function() end
+
+---`Method Private Instance`
+---@param workshopMenu Barotrauma.Steam.WorkshopMenu-ref
+_G['SettingsMenu'].CreateModsTab = function(workshopMenu) end
+
+---`Method Private Instance`
+_G['SettingsMenu'].CreateBottomButtons = function() end
+
+---`Method Public Instance`
+_G['SettingsMenu'].ApplyInstalledModChanges = function() end
+
+---`Method Public Instance`
+_G['SettingsMenu'].Close = function() end
+
+---`Constructor Private Instance`
+---@overload fun(mainParent:Barotrauma.RectTransform, setConfig?:Barotrauma.GameSettings.Config):Barotrauma.SettingsMenu
+---@return Barotrauma.SettingsMenu
+_G['SettingsMenu'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(mainParent:Barotrauma.RectTransform, setConfig?:Barotrauma.GameSettings.Config):Barotrauma.SettingsMenu
+---@return Barotrauma.SettingsMenu
+_G['SettingsMenu'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(mainParent:Barotrauma.RectTransform, setConfig?:Barotrauma.GameSettings.Config):Barotrauma.SettingsMenu
+---@return Barotrauma.SettingsMenu
+_G['SettingsMenu'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(mainParent:Barotrauma.RectTransform, setConfig?:Barotrauma.GameSettings.Config):Barotrauma.SettingsMenu
+---@return Barotrauma.SettingsMenu
+_G['SettingsMenu'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6C3B0.lua b/Meta/Types/client/_00007FFD97D6C3B0.lua
new file mode 100644
index 0000000..d501a8f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6C3B0.lua
@@ -0,0 +1,270 @@
+---@meta
+---@class Barotrauma.TabMenu : System.Object
+---`Field Private Instance`
+---@field infoFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field contentFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field tabButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field infoFrameHolder Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field linkedGUIList (System.Collections.Generic.List*1Barotrauma*TabMenu*LinkedGUI)|(Barotrauma.TabMenu.LinkedGUI[])
+---`Field Private Instance`
+---@field logList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field crewListArray (Barotrauma.GUIListBox-arr)|(Barotrauma.GUIListBox[])
+---`Field Private Instance`
+---@field sizeMultiplier System.Single
+---`Field Private Instance`
+---@field crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---`Field Private Instance`
+---@field teamIDs (System.Collections.Generic.List*1Barotrauma*CharacterTeamType)|(Barotrauma.CharacterTeamType[])
+---`Field Private Instance`
+---@field isTransferMenuOpen System.Boolean
+---`Field Private Instance`
+---@field isSending System.Boolean
+---`Field Private Instance`
+---@field transferMenu Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field transferMenuButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field transferMenuOpenState System.Single
+---`Field Private Instance`
+---@field transferMenuStateCompleted System.Boolean
+---`Field Private Instance`
+---@field registeredEvents (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field talentMenu Barotrauma.TalentMenu
+---`Field Private Instance`
+---@field jobColumnWidth System.Int32
+---`Field Private Instance`
+---@field characterColumnWidth System.Int32
+---`Field Private Instance`
+---@field pingColumnWidth System.Int32
+---`Field Private Instance`
+---@field walletColumnWidth System.Int32
+---`Field Private Instance`
+---@field deathColumnWidth System.Int32
+---`Field Private Instance`
+---@field killColumnWidth System.Int32
+---`Field Private Instance`
+---@field talentPointNotification Barotrauma.GUIImage
+---`Field Private Instance`
+---@field eventLogNotification Barotrauma.GUIImage
+---`Field Public Static`
+---@field PendingChanges System.Boolean
+---`Field Private Static`
+---@field initialized System.Boolean
+---`Field Private Static`
+---@field spectateIcon Barotrauma.UISprite
+---`Field Private Static`
+---@field disconnectedIcon Barotrauma.UISprite
+---`Field Private Static`
+---@field ownerIcon Barotrauma.Sprite
+---`Field Private Static`
+---@field moderatorIcon Barotrauma.Sprite
+---`Field Public Static`
+---@field PendingChangesFrame Barotrauma.GUIFrame
+---`Field Public Static`
+---@field OwnCharacterBGColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field storedMessages (System.Collections.Generic.List*1System*ValueTuple*2System*String*2Barotrauma*Networking*PlayerConnectionChangeType)|(System.ValueTuple*1System*String*1Barotrauma*Networking*PlayerConnectionChangeType[])
+---`Field Private Static`
+---@field inLobbyString System.String
+---`Field Private Static`
+---@field JobColumnWidthPercentage System.Single
+---`Field Private Static`
+---@field CharacterColumnWidthPercentage System.Single
+---`Field Private Static`
+---@field KillColumnWidthPercentage System.Single
+---`Field Private Static`
+---@field DeathColumnWidthPercentage System.Single
+---`Field Private Static`
+---@field PingColumnWidthPercentage System.Single
+---`Field Private Static`
+---@field WalletColumnWidthPercentage System.Single
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SelectedTab Barotrauma.TabMenu.InfoFrameTab
+_G['TabMenu'] = {}
+
+---`Method Public Instance`
+_G['TabMenu'].Initialize = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['TabMenu'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+_G['TabMenu'].AddToGUIUpdateList = function() end
+
+---`Method Public Static`
+_G['TabMenu'].OnRoundEnded = function() end
+
+---`Method Private Instance`
+---@param selectedTab Barotrauma.TabMenu.InfoFrameTab
+_G['TabMenu'].CreateInfoFrame = function(selectedTab) end
+
+---`Method Public Instance`
+---@param selectedTab Barotrauma.TabMenu.InfoFrameTab
+_G['TabMenu'].SelectInfoFrameTab = function(selectedTab) end
+
+---`Method Private Instance`
+---@param crewFrame Barotrauma.GUIFrame
+_G['TabMenu'].CreateCrewListFrame = function(crewFrame) end
+
+---`Method Private Instance`
+---@param headerFrame Barotrauma.GUILayoutGroup
+_G['TabMenu'].CreateSinglePlayerListContentHolder = function(headerFrame) end
+
+---`Method Private Instance`
+---@param refresh System.Boolean
+_G['TabMenu'].CreateSinglePlayerList = function(refresh) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param i System.Int32
+_G['TabMenu'].CreateSinglePlayerCharacterElement = function(character, i) end
+
+---`Method Private Instance`
+---@param headerFrame Barotrauma.GUILayoutGroup
+_G['TabMenu'].CreateMultiPlayerListContentHolder = function(headerFrame) end
+
+---`Method Private Instance`
+---@param refresh System.Boolean
+_G['TabMenu'].CreateMultiPlayerList = function(refresh) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param client Barotrauma.Networking.Client
+---@param i System.Int32
+_G['TabMenu'].CreateMultiPlayerCharacterElement = function(character, client, i) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['TabMenu'].CreateMultiPlayerClientElement = function(client) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Int32
+_G['TabMenu'].GetTeamIndex = function(client) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param paddedFrame Barotrauma.GUILayoutGroup
+_G['TabMenu'].CreateWalletCrewFrame = function(character, paddedFrame) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@param paddedFrame Barotrauma.GUILayoutGroup
+---@param permissionIcon Barotrauma.GUIImage-ref
+_G['TabMenu'].CreateNameWithPermissionIcon = function(client, paddedFrame, permissionIcon) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@return Barotrauma.Sprite
+_G['TabMenu'].GetPermissionIcon = function(client) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param area Microsoft.Xna.Framework.Rectangle
+---@param client Barotrauma.Networking.Client
+_G['TabMenu'].DrawNotInGameIcon = function(spriteBatch, area, client) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param area Microsoft.Xna.Framework.Rectangle
+_G['TabMenu'].DrawDisconnectedIcon = function(spriteBatch, area) end
+
+---`Method Private Instance`
+---@param userData System.Object
+---@param crewList Barotrauma.GUIComponent
+---@return System.Boolean
+_G['TabMenu'].SelectElement = function(userData, crewList) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param character Barotrauma.Character
+---@param campaign Barotrauma.MultiPlayerCampaign
+_G['TabMenu'].CreateWalletFrame = function(parent, character, campaign) end
+
+---`Method Private Static`
+---@param character Barotrauma.Option*1Barotrauma*Character
+---@param newValue System.Int32
+_G['TabMenu'].SetRewardDistribution = function(character, newValue) end
+
+---`Method Private Static`
+_G['TabMenu'].ResetRewardDistributions = function() end
+
+---`Method Private Static`
+---@param scroll System.Single
+---@param step System.Single
+---@return System.Int32
+_G['TabMenu'].RoundRewardDistribution = function(scroll, step) end
+
+---`Method Private Instance`
+---@param frame Barotrauma.GUIFrame
+---@param client Barotrauma.Networking.Client
+---@param permissionIcon? Barotrauma.Sprite
+---@return Barotrauma.GUIComponent
+_G['TabMenu'].CreateClientInfoFrame = function(frame, client, permissionIcon) end
+
+---`Method Private Instance`
+---@param crewFrame Barotrauma.GUIFrame
+_G['TabMenu'].CreateMultiPlayerLogContent = function(crewFrame) end
+
+---`Method Public Static`
+---@param message Barotrauma.Networking.ChatMessage
+_G['TabMenu'].StorePlayerConnectionChangeMessage = function(message) end
+
+---`Method Private Instance`
+_G['TabMenu'].RemoveCurrentElements = function() end
+
+---`Method Private Instance`
+---@param line System.String
+---@param type Barotrauma.Networking.PlayerConnectionChangeType
+_G['TabMenu'].AddLineToLog = function(line, type) end
+
+---`Method Private Instance`
+---@param infoFrame Barotrauma.GUIFrame
+_G['TabMenu'].CreateMissionInfo = function(infoFrame) end
+
+---`Method Private Static`
+---@param infoFrame Barotrauma.GUIFrame
+---@param sub Barotrauma.Submarine
+_G['TabMenu'].CreateSubmarineInfo = function(infoFrame, sub) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param info Barotrauma.CharacterInfo
+---@param parent Barotrauma.GUIListBox
+_G['TabMenu'].CreateSkillList = function(character, info, parent) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['TabMenu'].OnExperienceChanged = function(character) end
+
+---`Method Public Instance`
+_G['TabMenu'].OnClose = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.TabMenu
+---@return Barotrauma.TabMenu
+_G['TabMenu'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.TabMenu
+---@return Barotrauma.TabMenu
+_G['TabMenu'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.TabMenu
+---@return Barotrauma.TabMenu
+_G['TabMenu'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.TabMenu
+---@return Barotrauma.TabMenu
+_G['TabMenu'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6D128.lua b/Meta/Types/client/_00007FFD97D6D128.lua
new file mode 100644
index 0000000..24c557c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6D128.lua
@@ -0,0 +1,366 @@
+---@meta
+---@class Barotrauma.GameSession : System.Object
+---`Field Private Instance`
+---@field tabMenu Barotrauma.TabMenu
+---`Field Private Instance`
+---@field topLeftButtonGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field crewListButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field commandButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field tabMenuButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field talentPointNotification Barotrauma.GUIImage
+---`Field Private Instance`
+---@field deathChoiceInfoFrame Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field deathChoiceButtonContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field respawnInfoText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field deathChoiceTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field takeOverBotButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field hrManagerButton Barotrauma.GUIButton
+---`Field Public Instance`
+---@field DeathPrompt Barotrauma.DeathPrompt
+---`Field Private Instance`
+---@field eventLogNotification Barotrauma.GUIImage
+---`Field Private Instance`
+---@field prevTopLeftButtonsResolution Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field EventManager Barotrauma.EventManager
+---`Field Public Instance`
+---@field GameMode Barotrauma.GameMode
+---`Field Private Instance`
+---@field dummyLocations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---`Field Public Instance`
+---@field CrewManager Barotrauma.CrewManager
+---`Field Public Instance`
+---@field TimeSpentCleaning System.Double
+---`Field Public Instance`
+---@field TimeSpentPainting System.Double
+---`Field Private Instance`
+---@field missions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Private Instance`
+---@field casualties (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field permadeathsPerAccount (System.Collections.Generic.Dictionary*1Barotrauma*Option*2Barotrauma*Networking*AccountId*1System*Int32)|({[Barotrauma.Option*1Barotrauma*Networking*AccountId]:(System.Int32)})
+---`Field Public Instance`
+---@field WinningTeam System.Nullable*1Barotrauma*CharacterTeamType
+---`Field Public Instance`
+---@field ForceOutpostModule Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field OwnedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Public Static`
+---@field MinimumLoadingTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RoundSummary Barotrauma.RoundSummary
+---`Getter Public Static`
+---@field IsTabMenuOpen System.Boolean
+---`Getter Public Static`
+---@field TabMenuInstance Barotrauma.TabMenu
+---`Getter Public Instance`
+---@field AllowHrManagerBotTakeover System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastSaveVersion System.Version
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RoundDuration System.Single
+---`Getter Public Instance`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field Casualties (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsRunning System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RoundEnding System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Level Barotrauma.Level
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LevelData Barotrauma.LevelData
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MirrorLevel System.Boolean
+---`Getter Public Instance`
+---@field Map Barotrauma.Map
+---`Getter Public Instance`
+---@field Campaign Barotrauma.CampaignMode
+---`Getter Public Instance`
+---@field StartLocation Barotrauma.Location
+---`Getter Public Instance`
+---@field EndLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubmarineInfo Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnemySubmarineInfo Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DataPath Barotrauma.CampaignDataPath
+---`Getter Public Instance`
+---@field TraitorsEnabled System.Boolean
+_G['GameSession'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['GameSession'].ToggleTabMenu = function() end
+
+---`Method Private Instance`
+_G['GameSession'].CreateTopLeftButtons = function() end
+
+---`Method Public Instance`
+_G['GameSession'].AddToGUIUpdateList = function() end
+
+---`Method Public Static`
+---@param parent Barotrauma.GUIComponent
+---@param offset? System.Boolean
+---@return Barotrauma.GUIImage
+_G['GameSession'].CreateNotificationIcon = function(parent, offset) end
+
+---`Method Public Instance`
+---@param enabled System.Boolean
+_G['GameSession'].EnableEventLogNotificationIcon = function(enabled) end
+
+---`Method Public Static`
+---@param indicator Barotrauma.GUIImage
+_G['GameSession'].UpdateTalentNotificationIndicator = function(indicator) end
+
+---`Method Public Instance`
+_G['GameSession'].HUDScaleChanged = function() end
+
+---`Method Public Instance`
+---@param text System.String
+---@param textColor Microsoft.Xna.Framework.Color
+---@param waitForNextRoundRespawn System.Boolean
+---@param hideButtons? System.Boolean
+_G['GameSession'].SetRespawnInfo = function(text, textColor, waitForNextRoundRespawn, hideButtons) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GameSession'].Draw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['GameSession'].IncrementPermadeath = function(accountId) end
+
+---`Method Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return System.Int32
+_G['GameSession'].PermadeathCountForAccount = function(accountId) end
+
+---`Method Private Instance`
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines? (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+_G['GameSession'].InitOwnedSubs = function(submarineInfo, ownedSubmarines) end
+
+---`Method Private Instance`
+---@param gameModePreset Barotrauma.GameModePreset
+---@param seed System.String
+---@param selectedSub Barotrauma.SubmarineInfo
+---@param settings Barotrauma.CampaignSettings
+---@param missionPrefabs? (System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+---@param missionTypes? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return Barotrauma.GameMode
+_G['GameSession'].InstantiateGameMode = function(gameModePreset, seed, selectedSub, settings, missionPrefabs, missionTypes) end
+
+---`Method Public Static`
+---@overload fun(levelData:Barotrauma.LevelData, forceLocationType?:Barotrauma.LocationType):((Barotrauma.Location-arr)|(Barotrauma.Location[]))
+---@param seed System.String
+---@param forceLocationType? Barotrauma.LocationType
+---@return (Barotrauma.Location-arr)|(Barotrauma.Location[])
+_G['GameSession'].CreateDummyLocations = function(seed, forceLocationType) end
+
+---`Method Private Static`
+---@param rand System.Random
+---@param forceLocationType? Barotrauma.LocationType
+---@return (Barotrauma.Location-arr)|(Barotrauma.Location[])
+_G['GameSession'].CreateDummyLocations = function(rand, forceLocationType) end
+
+---`Method Public Static`
+---@param preset Barotrauma.GameModePreset
+---@return System.Boolean
+_G['GameSession'].ShouldApplyDisembarkPoints = function(preset) end
+
+---`Method Public Instance`
+_G['GameSession'].LoadPreviousSave = function() end
+
+---`Method Public Instance`
+---@param newSubmarine Barotrauma.SubmarineInfo
+---@param transferItems System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['GameSession'].SwitchSubmarine = function(newSubmarine, transferItems, client) end
+
+---`Method Public Instance`
+---@param newSubmarine Barotrauma.SubmarineInfo
+---@param client? Barotrauma.Networking.Client
+---@return System.Boolean
+_G['GameSession'].TryPurchaseSubmarine = function(newSubmarine, client) end
+
+---`Method Public Instance`
+---@param query Barotrauma.SubmarineInfo
+---@return System.Boolean
+_G['GameSession'].IsSubmarineOwned = function(query) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['GameSession'].IsCurrentLocationRadiated = function() end
+
+---`Method Public Instance`
+---@overload fun(levelSeed:System.String, difficulty?:System.Nullable*1System*Single, levelGenerationParams?:Barotrauma.LevelGenerationParams, forceBiome?:Barotrauma.Identifier)
+---@param levelData Barotrauma.LevelData
+---@param mirrorLevel? System.Boolean
+---@param startOutpost? Barotrauma.SubmarineInfo
+---@param endOutpost? Barotrauma.SubmarineInfo
+_G['GameSession'].StartRound = function(levelData, mirrorLevel, startOutpost, endOutpost) end
+
+---`Method Private Instance`
+---@param moduleInfo Barotrauma.SubmarineInfo
+---@param outpostSub Barotrauma.Submarine-ref
+---@return System.Boolean
+_G['GameSession'].TryGenerateStationAroundModule = function(moduleInfo, outpostSub) end
+
+---`Method Private Instance`
+---@param level Barotrauma.Level
+_G['GameSession'].InitializeLevel = function(level) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@param level Barotrauma.Level
+---@param placeAtStart? System.Boolean
+---@param forceDocking? System.Boolean
+_G['GameSession'].PlaceSubAtInitialPosition = function(sub, level, placeAtStart, forceDocking) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['GameSession'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return Barotrauma.Mission
+_G['GameSession'].GetMission = function(index) end
+
+---`Method Public Instance`
+---@param mission Barotrauma.Mission
+---@return System.Int32
+_G['GameSession'].GetMissionIndex = function(mission) end
+
+---`Method Public Instance`
+---@param missionIdentifiers (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['GameSession'].EnforceMissionOrder = function(missionIdentifiers) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['GameSession'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Static`
+---@param type Barotrauma.CharacterType
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+_G['GameSession'].GetSessionCrewCharacters = function(type) end
+
+---`Method Public Instance`
+---@param endMessage System.String
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+---@param traitorResults? System.Nullable*1Barotrauma*TraitorManager*TraitorResults
+_G['GameSession'].EndRound = function(endMessage, transitionType, traitorResults) end
+
+---`Method Public Static`
+---@return Barotrauma.PerkCollection
+_G['GameSession'].GetPerks = function() end
+
+---`Method Public Static`
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['GameSession'].ValidatedDisembarkPoints = function(preset, missionTypes) end
+
+---`Method Public Static`
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['GameSession'].ShouldIgnorePerksThatCanNotApplyWithoutSubmarine = function(preset, missionTypes) end
+
+---`Method Public Instance`
+---@param eventId System.String
+---@param traitorResults? System.Nullable*1Barotrauma*TraitorManager*TraitorResults
+_G['GameSession'].LogEndRoundStats = function(eventId, traitorResults) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['GameSession'].KillCharacter = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['GameSession'].ReviveCharacter = function(character) end
+
+---`Method Public Static`
+---@param contentPackageNames (System.Collections.Generic.IList*1System*String)|(System.String[])
+---@param errorMsg Barotrauma.LocalizedString-ref
+---@return System.Boolean
+_G['GameSession'].IsCompatibleWithEnabledContentPackages = function(contentPackageNames, errorMsg) end
+
+---`Method Public Instance`
+---@param filePath System.String
+---@param isSavingOnLoading System.Boolean
+_G['GameSession'].Save = function(filePath, isSavingOnLoading) end
+
+---`Constructor Private Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'] = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
+---`Constructor Private Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'].__new = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
+---`Constructor Public Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'] = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
+---`Constructor Public Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'].__new = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
diff --git a/Meta/Types/client/_00007FFD97D6D390.lua b/Meta/Types/client/_00007FFD97D6D390.lua
new file mode 100644
index 0000000..7c7f2e8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6D390.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.CampaignMetadata : System.Object
+---`Field Private Instance`
+---@field data (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Object)|({[Barotrauma.Identifier]:(System.Object)})
+---`Field Private Static`
+---@field MaxDrawnElements System.Int32
+_G['CampaignMetadata'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param campaign Barotrauma.CampaignMode
+---@param debugDrawMetaData Barotrauma.GUI.DebugDrawMetaData
+_G['CampaignMetadata'].DebugDraw = function(spriteBatch, pos, campaign, debugDrawMetaData) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CampaignMetadata'].Load = function(element) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param value System.Object
+_G['CampaignMetadata'].SetValue = function(identifier, value) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.Nullable*1System*Single
+---@return System.Single
+_G['CampaignMetadata'].GetFloat = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.Nullable*1System*Int32
+---@return System.Int32
+_G['CampaignMetadata'].GetInt = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.Nullable*1System*Boolean
+---@return System.Boolean
+_G['CampaignMetadata'].GetBoolean = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.String
+---@return System.String
+_G['CampaignMetadata'].GetString = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CampaignMetadata'].HasKey = function(identifier) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param type System.Type
+---@param defaultValue System.Object
+---@return System.Object
+_G['CampaignMetadata'].GetTypeOrDefault = function(identifier, type, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Object
+_G['CampaignMetadata'].GetValue = function(identifier) end
+
+---`Method Public Instance`
+---@param modeElement System.Xml.Linq.XElement
+_G['CampaignMetadata'].Save = function(modeElement) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CampaignMetadata
+_G['CampaignMetadata'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CampaignMetadata
+_G['CampaignMetadata'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6D588.lua b/Meta/Types/client/_00007FFD97D6D588.lua
new file mode 100644
index 0000000..a6ec5bf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6D588.lua
@@ -0,0 +1,29 @@
+---@meta
+---@class Barotrauma.CharacterCampaignData : System.Object
+---`Field Public Instance`
+---@field CharacterInfo Barotrauma.CharacterInfo
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field ClientAddress Barotrauma.Networking.Address
+---`Field Public Instance`
+---@field AccountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---`Field Private Instance`
+---@field itemData System.Xml.Linq.XElement
+---`Field Private Instance`
+---@field healthData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field WalletData System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OrderData System.Xml.Linq.XElement
+_G['CharacterCampaignData'] = {}
+
+---`Constructor Public Instance`
+---@return Barotrauma.CharacterCampaignData
+_G['CharacterCampaignData'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CharacterCampaignData
+_G['CharacterCampaignData'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6D740.lua b/Meta/Types/client/_00007FFD97D6D740.lua
new file mode 100644
index 0000000..4248d31
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6D740.lua
@@ -0,0 +1,29 @@
+---@meta
+---@class Barotrauma.Faction : System.Object
+---`Getter Public Instance`
+---@field Reputation Barotrauma.Reputation
+---`Getter Public Instance`
+---@field Prefab Barotrauma.FactionPrefab
+_G['Faction'] = {}
+
+---`Method Public Static`
+---@param faction Barotrauma.Faction
+---@return Barotrauma.FactionAffiliation
+_G['Faction'].GetPlayerAffiliationStatus = function(faction) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Faction'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param metadata Barotrauma.CampaignMetadata
+---@param prefab Barotrauma.FactionPrefab
+---@return Barotrauma.Faction
+_G['Faction'] = function(metadata, prefab) end
+
+---`Constructor Public Instance`
+---@param metadata Barotrauma.CampaignMetadata
+---@param prefab Barotrauma.FactionPrefab
+---@return Barotrauma.Faction
+_G['Faction'].__new = function(metadata, prefab) end
+
diff --git a/Meta/Types/client/_00007FFD97D6DBE8.lua b/Meta/Types/client/_00007FFD97D6DBE8.lua
new file mode 100644
index 0000000..53c3acd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6DBE8.lua
@@ -0,0 +1,130 @@
+---@meta
+---@class Barotrauma.Reputation : System.Object
+---`Field Private Instance`
+---@field metaDataIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field OnReputationValueChanged Barotrauma.NamedEvent*1Barotrauma*Reputation
+---`Field Public Instance`
+---@field Faction Barotrauma.Faction
+---`Field Public Instance`
+---@field Location Barotrauma.Location
+---`Field Public Static`
+---@field OnAnyReputationValueChanged Barotrauma.NamedEvent*1Barotrauma*Reputation
+---`Field Public Static`
+---@field HostileThreshold System.Single
+---`Field Public Static`
+---@field ReputationLossPerNPCDamage System.Single
+---`Field Public Static`
+---@field ReputationLossPerWallDamage System.Single
+---`Field Public Static`
+---@field ReputationLossPerStolenItemPrice System.Single
+---`Field Public Static`
+---@field MinReputationLossPerStolenItem System.Single
+---`Field Public Static`
+---@field MaxReputationLossPerStolenItem System.Single
+---`Field Public Static`
+---@field MaxReputationLossFromNPCDamage System.Single
+---`Field Public Static`
+---@field MaxReputationLossFromWallDamage System.Single
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field MinReputation System.Int32
+---`Getter Public Instance`
+---@field MaxReputation System.Int32
+---`Getter Public Instance`
+---@field InitialReputation System.Int32
+---`Getter Public Instance`
+---@field Metadata Barotrauma.CampaignMetadata
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReputationAtRoundStart System.Single
+---`Getter Public Instance`
+---@field NormalizedValue System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Value System.Single
+_G['Reputation'] = {}
+
+---`Method Public Instance`
+---@param newReputation System.Single
+_G['Reputation'].SetReputation = function(newReputation) end
+
+---`Method Public Instance`
+---@param reputationChange System.Single
+---@return System.Single
+_G['Reputation'].GetReputationChangeMultiplier = function(reputationChange) end
+
+---`Method Public Instance`
+---@param reputationChange System.Single
+---@param maxReputationChangePerRound? System.Single
+_G['Reputation'].AddReputation = function(reputationChange, maxReputationChangePerRound) end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['Reputation'].GetReputationName = function() end
+
+---`Method Public Static`
+---@param normalizedValue System.Single
+---@return Barotrauma.LocalizedString
+_G['Reputation'].GetReputationName = function(normalizedValue) end
+
+---`Method Public Static`
+---@param normalizedValue System.Single
+---@return Microsoft.Xna.Framework.Color
+_G['Reputation'].GetReputationColor = function(normalizedValue) end
+
+---`Method Public Instance`
+---@param addColorTags? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['Reputation'].GetFormattedReputationText = function(addColorTags) end
+
+---`Method Public Static`
+---@param normalizedValue System.Single
+---@param value System.Single
+---@param addColorTags? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['Reputation'].GetFormattedReputationText = function(normalizedValue, value, addColorTags) end
+
+---`Constructor Public Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'].__new = function() end
+
+---`Constructor Private Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6DE50.lua b/Meta/Types/client/_00007FFD97D6DE50.lua
new file mode 100644
index 0000000..77db984
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6DE50.lua
@@ -0,0 +1,57 @@
+---@meta
+---@class Barotrauma.GameModePreset : System.Object
+---`Field Public Instance`
+---@field GameModeType System.Type
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field IsSinglePlayer System.Boolean
+---`Field Public Instance`
+---@field Votable System.Boolean
+---`Field Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*GameModePreset)|(Barotrauma.GameModePreset[])
+---`Field Public Static`
+---@field SinglePlayerCampaign Barotrauma.GameModePreset
+---`Field Public Static`
+---@field MultiPlayerCampaign Barotrauma.GameModePreset
+---`Field Public Static`
+---@field Tutorial Barotrauma.GameModePreset
+---`Field Public Static`
+---@field Mission Barotrauma.GameModePreset
+---`Field Public Static`
+---@field PvP Barotrauma.GameModePreset
+---`Field Public Static`
+---@field TestMode Barotrauma.GameModePreset
+---`Field Public Static`
+---@field Sandbox Barotrauma.GameModePreset
+---`Field Public Static`
+---@field DevSandbox Barotrauma.GameModePreset
+_G['GameModePreset'] = {}
+
+---`Method Public Static`
+_G['GameModePreset'].Init = function() end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6E0F0.lua b/Meta/Types/client/_00007FFD97D6E0F0.lua
new file mode 100644
index 0000000..715f7c0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6E0F0.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.GameMode : System.Object
+---`Field NonPublic Instance`
+---@field startTime System.DateTime
+---`Field NonPublic Instance`
+---@field preset Barotrauma.GameModePreset
+---`Field Public Static`
+---@field PresetList (System.Collections.Generic.List*1Barotrauma*GameModePreset)|(Barotrauma.GameModePreset[])
+---`Getter Public Instance`
+---@field CrewManager Barotrauma.CrewManager
+---`Getter Public Instance Virtual`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field IsSinglePlayer System.Boolean
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Paused System.Boolean
+---`Getter Public Instance`
+---@field Preset Barotrauma.GameModePreset
+_G['GameMode'] = {}
+
+---`Method Public Instance Virtual`
+_G['GameMode'].HUDScaleChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GameMode'].Draw = function(spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['GameMode'].UpdateWhilePaused = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].Start = function() end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].ShowStartMessage = function() end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['GameMode'].AddExtraMissions = function(levelData) end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['GameMode'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+_G['GameMode'].End = function(transitionType) end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D6E388.lua b/Meta/Types/client/_00007FFD97D6E388.lua
new file mode 100644
index 0000000..e5ffaf5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6E388.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.TestGameMode : Barotrauma.GameMode
+---`Field Public Instance`
+---@field OnRoundEnd (System.Action)|(fun())
+---`Field Public Instance`
+---@field SpawnOutpost System.Boolean
+---`Field Public Instance`
+---@field OutpostParams Barotrauma.OutpostGenerationParams
+---`Field Public Instance`
+---@field OutpostType Barotrauma.LocationType
+---`Field Public Instance`
+---@field TriggeredEvent Barotrauma.EventPrefab
+---`Field Private Instance`
+---@field scriptedEvent (System.Collections.Generic.List*1Barotrauma*Event)|(Barotrauma.Event[])
+---`Field Private Instance`
+---@field createEventButton Barotrauma.GUIButton
+_G['TestGameMode'] = {}
+
+---`Method Public Instance Virtual`
+_G['TestGameMode'].Start = function() end
+
+---`Method Public Instance Virtual`
+_G['TestGameMode'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+_G['TestGameMode'].End = function(transitionType) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['TestGameMode'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+_G['TestGameMode'].GenerateOutpost = function(submarine) end
+
+---`Constructor Public Instance`
+---@param preset Barotrauma.GameModePreset
+---@return Barotrauma.TestGameMode
+_G['TestGameMode'] = function(preset) end
+
+---`Constructor Public Instance`
+---@param preset Barotrauma.GameModePreset
+---@return Barotrauma.TestGameMode
+_G['TestGameMode'].__new = function(preset) end
+
diff --git a/Meta/Types/client/_00007FFD97D6E540.lua b/Meta/Types/client/_00007FFD97D6E540.lua
new file mode 100644
index 0000000..c211209
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6E540.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.TutorialMode : Barotrauma.GameMode
+---`Field Public Instance`
+---@field Tutorial Barotrauma.Tutorials.Tutorial
+---`Getter Public Instance Virtual`
+---@field Paused System.Boolean
+_G['TutorialMode'] = {}
+
+---`Method Public Instance Virtual`
+_G['TutorialMode'].Start = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['TutorialMode'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param preset Barotrauma.GameModePreset
+---@return Barotrauma.TutorialMode
+_G['TutorialMode'] = function(preset) end
+
+---`Constructor Public Instance`
+---@param preset Barotrauma.GameModePreset
+---@return Barotrauma.TutorialMode
+_G['TutorialMode'].__new = function(preset) end
+
diff --git a/Meta/Types/client/_00007FFD97D6F4E0.lua b/Meta/Types/client/_00007FFD97D6F4E0.lua
new file mode 100644
index 0000000..7bfb8bc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6F4E0.lua
@@ -0,0 +1,453 @@
+---@meta
+---@class Barotrauma.CampaignMode : Barotrauma.GameMode
+---`Field NonPublic Instance`
+---@field overlayColor Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field overlaySprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field prevCampaignUIAutoOpenType Barotrauma.CampaignMode.TransitionType
+---`Field NonPublic Instance`
+---@field endRoundButton Barotrauma.GUIButton
+---`Field Public Instance`
+---@field ReadyCheckButton Barotrauma.GUIButton
+---`Field NonPublic Instance`
+---@field campaignUIContainer Barotrauma.GUIFrame
+---`Field Public Instance`
+---@field CampaignUI Barotrauma.CampaignUI
+---`Field Private Instance`
+---@field startRoundCancellationToken System.Threading.CancellationTokenSource
+---`Field Private Instance`
+---@field showCampaignUI System.Boolean
+---`Field Private Instance`
+---@field wasChatBoxOpen System.Boolean
+---`Field Public Instance`
+---@field TotalPlayTime System.Double
+---`Field Public Instance`
+---@field TotalPassedLevels System.Int32
+---`Field Public Instance`
+---@field CargoManager Barotrauma.CargoManager
+---`Field Public Instance`
+---@field UpgradeManager Barotrauma.UpgradeManager
+---`Field Public Instance`
+---@field MedicalClinic Barotrauma.MedicalClinic
+---`Field Private Instance`
+---@field factions (System.Collections.Generic.List*1Barotrauma*Faction)|(Barotrauma.Faction[])
+---`Field Public Instance`
+---@field CampaignMetadata Barotrauma.CampaignMetadata
+---`Field NonPublic Instance`
+---@field petsElement System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field Settings Barotrauma.CampaignSettings
+---`Field Private Instance`
+---@field extraMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Public Instance`
+---@field OnMoneyChanged Barotrauma.NamedEvent*1Barotrauma*WalletChangedEvent
+---`Field Public Instance`
+---@field CheatsEnabled System.Boolean
+---`Field NonPublic Instance`
+---@field wasDocked System.Boolean
+---`Field Private Instance`
+---@field dialogLastSpoken (System.Collections.Generic.Dictionary*1System*String*1System*Double)|({[System.String]:(System.Double)})
+---`Field Public Instance`
+---@field PendingSubmarineSwitch Barotrauma.SubmarineInfo
+---`Field NonPublic Instance`
+---@field map Barotrauma.Map
+---`Field Public Instance`
+---@field Bank Barotrauma.Wallet
+---`Field Public Instance`
+---@field PurchasedLostShuttlesInLatestSave System.Boolean
+---`Field Public Instance`
+---@field PurchasedHullRepairsInLatestSave System.Boolean
+---`Field Public Instance`
+---@field PurchasedItemRepairsInLatestSave System.Boolean
+---`Field Public Instance`
+---@field DivingSuitWarningShown System.Boolean
+---`Field Public Instance`
+---@field ItemsRelocatedToMainSub System.Boolean
+---`Field Private Instance`
+---@field BeforeLevelLoading (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnSaveAndQuit (System.Action)|(fun())
+---`Field Private Instance`
+---@field characterOutOfBoundsTimer (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single)|({[Barotrauma.Character]:(System.Single)})
+---`Field Public Static`
+---@field MaxMoney System.Int32
+---`Field Public Static`
+---@field InitialMoney System.Int32
+---`Field NonPublic Static`
+---@field EndTransitionDuration System.Single
+---`Field Private Static`
+---@field FirstRoundEventDelay System.Single
+---`Field Public Static`
+---@field HullRepairCostPerDamage System.Single
+---`Field Public Static`
+---@field ItemRepairCostPerRepairDuration System.Single
+---`Field Public Static`
+---@field ShuttleReplaceCost System.Int32
+---`Field Public Static`
+---@field MaxHullRepairCost System.Int32
+---`Field Public Static`
+---@field MaxItemRepairCost System.Int32
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field CrewDead System.Boolean
+---`Getter Public Instance`
+---@field EndRoundButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SlideshowPlayer Barotrauma.SlideshowPlayer
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ForceMapUI System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowCampaignUI System.Boolean
+---`Getter Public Instance Virtual`
+---@field Wallet Barotrauma.Wallet
+---`Getter Public Instance`
+---@field Factions (System.Collections.Generic.IReadOnlyList*1Barotrauma*Faction)|(Barotrauma.Faction[])
+---`Getter NonPublic Instance`
+---
`Setter NonPublic Instance`
+---@field ActiveOrdersElement System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsFirstRound System.Boolean
+---`Getter Public Instance`
+---@field DisableEvents System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TransferItemsOnSubSwitch System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwitchedSubsThisRound System.Boolean
+---`Getter Public Instance`
+---@field Map Barotrauma.Map
+---`Getter Public Instance Virtual`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field CurrentLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NextLevel Barotrauma.LevelData
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedHullRepairs System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedLostShuttles System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedItemRepairs System.Boolean
+_G['CampaignMode'] = {}
+
+---`Method NonPublic Instance`
+---@return System.Xml.Linq.XElement
+_G['CampaignMode'].SaveStats = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].LogState = function() end
+
+---`Method Public Instance Virtual`
+_G['CampaignMode'].Remove = function() end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Int32
+_G['CampaignMode'].NumberOfMissionsAtLocation = function(location) end
+
+---`Method Public Instance`
+---@param currentLocation Barotrauma.Location
+---@param sender Barotrauma.Networking.Client
+_G['CampaignMode'].CheckTooManyMissions = function(currentLocation, sender) end
+
+---`Method NonPublic Static`
+---@param leavingSub Barotrauma.Submarine
+_G['CampaignMode'].LeaveUnconnectedSubs = function(leavingSub) end
+
+---`Method Public Instance`
+_G['CampaignMode'].SwitchSubs = function() end
+
+---`Method NonPublic Instance`
+_G['CampaignMode'].TransferItemsBetweenSubs = function() end
+
+---`Method NonPublic Instance`
+_G['CampaignMode'].RefreshOwnedSubmarines = function() end
+
+---`Method Public Instance`
+---@param parentElement? System.Xml.Linq.XElement
+_G['CampaignMode'].SavePets = function(parentElement) end
+
+---`Method Public Instance`
+_G['CampaignMode'].LoadPets = function() end
+
+---`Method Public Instance`
+---@param parentElement? System.Xml.Linq.XElement
+_G['CampaignMode'].SaveActiveOrders = function(parentElement) end
+
+---`Method Public Instance`
+_G['CampaignMode'].LoadActiveOrders = function() end
+
+---`Method Public Instance Virtual`
+_G['CampaignMode'].ShowStartMessage = function() end
+
+---`Method Private Static`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['CampaignMode'].IsOwner = function(client) end
+
+---`Method Public Static`
+---@param permissions Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['CampaignMode'].AllowedToManageCampaign = function(permissions) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['CampaignMode'].AllowedToManageWallets = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['CampaignMode'].AllowImmediateItemDelivery = function() end
+
+---`Method NonPublic Instance`
+---@return Barotrauma.GUIButton
+_G['CampaignMode'].CreateEndRoundButton = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CampaignMode'].Draw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param roundSummary Barotrauma.RoundSummary
+---@param newLevel Barotrauma.LevelData
+---@param mirror System.Boolean
+---@param action (System.Action)|(fun())
+---@return System.Threading.Tasks.Task
+_G['CampaignMode'].SelectSummaryScreen = function(roundSummary, newLevel, mirror, action) end
+
+---`Method Public Instance`
+_G['CampaignMode'].CancelStartRound = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].ThrowIfStartRoundCancellationRequested = function() end
+
+---`Method Public Instance Virtual`
+_G['CampaignMode'].AddToGUIUpdateList = function() end
+
+---`Method NonPublic Instance`
+---@param onConfirm (System.Action)|(fun())
+---@param onReturnToMapScreen (System.Action)|(fun())
+_G['CampaignMode'].TryEndRoundWithFuelCheck = function(onConfirm, onReturnToMapScreen) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['CampaignMode'].Update = function(deltaTime) end
+
+---`Method Public Static`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@return System.Boolean
+_G['CampaignMode'].BlocksInteraction = function(interactionType) end
+
+---`Method Private Static`
+---@param permissions Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['CampaignMode'].AnyOneAllowedToManageCampaign = function(permissions) end
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return Barotrauma.Wallet
+_G['CampaignMode'].GetWallet = function(client) end
+
+---`Method Public Instance Virtual`
+---@param client Barotrauma.Networking.Client
+---@param price System.Int32
+---@return System.Boolean
+_G['CampaignMode'].TryPurchase = function(client, price) end
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return System.Int32
+_G['CampaignMode'].GetBalance = function(client) end
+
+---`Method Public Instance`
+---@param cost System.Int32
+---@param client? Barotrauma.Networking.Client
+---@return System.Boolean
+_G['CampaignMode'].CanAfford = function(cost, client) end
+
+---`Method Public Instance`
+---@return Barotrauma.Location
+_G['CampaignMode'].GetCurrentDisplayLocation = function() end
+
+---`Method Public Static`
+---@param leavingSub Barotrauma.Submarine
+---@return (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+_G['CampaignMode'].GetSubsToLeaveBehind = function(leavingSub) end
+
+---`Method Public Instance`
+---@return Barotrauma.SubmarineInfo
+_G['CampaignMode'].GetPredefinedStartOutpost = function() end
+
+---`Method Public Instance Virtual`
+_G['CampaignMode'].Start = function() end
+
+---`Method Public Static`
+---@return System.Int32
+_G['CampaignMode'].GetHullRepairCost = function() end
+
+---`Method Public Static`
+---@return System.Int32
+_G['CampaignMode'].GetItemRepairCost = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].InitFactions = function() end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['CampaignMode'].AddExtraMissions = function(levelData) end
+
+---`Method Public Instance`
+_G['CampaignMode'].LoadNewLevel = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+_G['CampaignMode'].LoadInitialLevel = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param transitionType Barotrauma.CampaignMode.TransitionType
+---@param newLevel Barotrauma.LevelData
+---@param leavingSub Barotrauma.Submarine
+---@param mirror System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['CampaignMode'].DoLevelTransition = function(transitionType, newLevel, leavingSub, mirror) end
+
+---`Method Public Instance`
+---@overload fun(nextLevel:Barotrauma.LevelData-ref, leavingSub:Barotrauma.Submarine-ref):(Barotrauma.CampaignMode.TransitionType)
+---@return Barotrauma.CampaignMode.TransitionType
+_G['CampaignMode'].GetAvailableTransition = function() end
+
+---`Method Private Static`
+---@return Barotrauma.Submarine
+_G['CampaignMode'].GetLeavingSub = function() end
+
+---`Method Public Instance Virtual`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+_G['CampaignMode'].End = function(transitionType) end
+
+---`Method Public Instance`
+_G['CampaignMode'].HandleSaveAndQuit = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].UpdateStoreStock = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].EndCampaign = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['CampaignMode'].EndCampaignProjSpecific = function() end
+
+---`Method Public Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@param allowEmpty? System.Boolean
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetRandomFaction = function(randSync, allowEmpty) end
+
+---`Method Public Static`
+---@overload fun(factions:(System.Collections.Generic.IEnumerable*1Barotrauma*Faction)|(fun():(Barotrauma.Faction)), randSync:Barotrauma.Rand.RandSync, secondary?:System.Boolean, allowEmpty?:System.Boolean):(Barotrauma.Faction)
+---@param factions (System.Collections.Generic.IEnumerable*1Barotrauma*Faction)|(fun():(Barotrauma.Faction))
+---@param random System.Random
+---@param secondary? System.Boolean
+---@param allowEmpty? System.Boolean
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetRandomFaction = function(factions, random, secondary, allowEmpty) end
+
+---`Method Public Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@param allowEmpty? System.Boolean
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetRandomSecondaryFaction = function(randSync, allowEmpty) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param characterInfo Barotrauma.CharacterInfo
+---@param takeMoney? System.Boolean
+---@param client? Barotrauma.Networking.Client
+---@param buyingNewCharacter? System.Boolean
+---@return System.Boolean
+_G['CampaignMode'].TryHireCharacter = function(location, characterInfo, takeMoney, client, buyingNewCharacter) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@return System.Int32
+_G['CampaignMode'].NewCharacterCost = function(characterInfo) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@return System.Boolean
+_G['CampaignMode'].CanAffordNewCharacter = function(characterInfo) end
+
+---`Method Private Instance`
+---@param npc Barotrauma.Character
+---@param interactor Barotrauma.Character
+_G['CampaignMode'].NPCInteract = function(npc, interactor) end
+
+---`Method Private Instance`
+---@param npc Barotrauma.Character
+---@param interactor Barotrauma.Character
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['CampaignMode'].DoCharacterWait = function(npc, interactor) end
+
+---`Method Private Instance`
+---@param npc Barotrauma.Character
+---@param interactor Barotrauma.Character
+_G['CampaignMode'].NPCInteractProjSpecific = function(npc, interactor) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+_G['CampaignMode'].AssignNPCMenuInteraction = function(character, interactionType) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['CampaignMode'].KeepCharactersCloseToOutpost = function(deltaTime) end
+
+---`Method Public Instance`
+---@param npc Barotrauma.Character
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['CampaignMode'].OutpostNPCAttacked = function(npc, attacker, attackResult) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetFaction = function(identifier) end
+
+---`Method Public Instance`
+---@param factionIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CampaignMode'].GetReputation = function(factionIdentifier) end
+
+---`Method Public Instance`
+---@param factionIdentifier Barotrauma.Identifier
+---@return Barotrauma.FactionAffiliation
+_G['CampaignMode'].GetFactionAffiliation = function(factionIdentifier) end
+
+---`Method Public Instance Abstract Virtual`
+---@param element System.Xml.Linq.XElement
+---@param isSavingOnLoading System.Boolean
+_G['CampaignMode'].Save = function(element, isSavingOnLoading) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+_G['CampaignMode'].LoadStats = function(element) end
+
+---`Constructor NonPublic Instance`
+---@param preset Barotrauma.GameModePreset
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.CampaignMode
+_G['CampaignMode'] = function(preset, settings) end
+
+---`Constructor NonPublic Instance`
+---@param preset Barotrauma.GameModePreset
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.CampaignMode
+_G['CampaignMode'].__new = function(preset, settings) end
+
diff --git a/Meta/Types/client/_00007FFD97D6F9D0.lua b/Meta/Types/client/_00007FFD97D6F9D0.lua
new file mode 100644
index 0000000..d0dfaec
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D6F9D0.lua
@@ -0,0 +1,106 @@
+---@meta
+---@class Barotrauma.SinglePlayerCampaign : Barotrauma.CampaignMode
+---`Field Private Instance`
+---@field endTimer System.Single
+---`Field Private Instance`
+---@field savedOnStart System.Boolean
+---`Field Private Instance`
+---@field gameOver System.Boolean
+---`Field Private Instance`
+---@field lastControlledCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field showCampaignResetText System.Boolean
+---`Field Public Static`
+---@field MinimumInitialMoney System.Int32
+---`Getter Public Instance Virtual`
+---@field Paused System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedHullRepairs System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedLostShuttles System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedItemRepairs System.Boolean
+_G['SinglePlayerCampaign'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['SinglePlayerCampaign'].UpdateWhilePaused = function(deltaTime) end
+
+---`Method Public Static`
+---@param mapSeed System.String
+---@param startingSettings Barotrauma.CampaignSettings
+---@return Barotrauma.SinglePlayerCampaign
+_G['SinglePlayerCampaign'].StartNew = function(mapSeed, startingSettings) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.SinglePlayerCampaign
+_G['SinglePlayerCampaign'].Load = function(element) end
+
+---`Method Private Instance`
+_G['SinglePlayerCampaign'].InitUI = function() end
+
+---`Method Public Instance Virtual`
+_G['SinglePlayerCampaign'].HUDScaleChanged = function() end
+
+---`Method Public Instance Virtual`
+_G['SinglePlayerCampaign'].Start = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['SinglePlayerCampaign'].LoadInitialLevel = function() end
+
+---`Method Private Instance`
+---@param level Barotrauma.LevelData
+---@param mirror System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['SinglePlayerCampaign'].DoLoadInitialLevel = function(level, mirror) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['SinglePlayerCampaign'].DoInitialCameraTransition = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param transitionType Barotrauma.CampaignMode.TransitionType
+---@param newLevel Barotrauma.LevelData
+---@param leavingSub Barotrauma.Submarine
+---@param mirror System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['SinglePlayerCampaign'].DoLevelTransition = function(transitionType, newLevel, leavingSub, mirror) end
+
+---`Method NonPublic Instance Virtual`
+_G['SinglePlayerCampaign'].EndCampaignProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['SinglePlayerCampaign'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['SinglePlayerCampaign'].TryEndRound = function() end
+
+---`Method Private Instance`
+_G['SinglePlayerCampaign'].GameOver = function() end
+
+---`Method Private Instance`
+_G['SinglePlayerCampaign'].EnableRoundSummaryGameOverState = function() end
+
+---`Method Public Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@param isSavingOnLoading System.Boolean
+_G['SinglePlayerCampaign'].Save = function(element, isSavingOnLoading) end
+
+---`Constructor Private Instance`
+---@overload fun(mapSeed:System.String, settings:Barotrauma.CampaignSettings):Barotrauma.SinglePlayerCampaign
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.SinglePlayerCampaign
+_G['SinglePlayerCampaign'] = function(element) end
+
+---`Constructor Private Instance`
+---@overload fun(mapSeed:System.String, settings:Barotrauma.CampaignSettings):Barotrauma.SinglePlayerCampaign
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.SinglePlayerCampaign
+_G['SinglePlayerCampaign'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97D80528.lua b/Meta/Types/client/_00007FFD97D80528.lua
new file mode 100644
index 0000000..7c73569
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D80528.lua
@@ -0,0 +1,204 @@
+---@meta
+---@class Barotrauma.MultiPlayerCampaign : Barotrauma.CampaignMode
+---`Field Public Instance`
+---@field SuppressStateSending System.Boolean
+---`Field Private Instance`
+---@field pendingSaveID System.UInt16
+---`Field Private Instance`
+---@field lastUpdateID (System.Collections.Generic.Dictionary*1Barotrauma*MultiPlayerCampaign*NetFlags*1System*UInt16)|({[Barotrauma.MultiPlayerCampaign.NetFlags]:(System.UInt16)})
+---`Field Private Instance`
+---@field lastSaveID System.UInt16
+---`Field Private Static`
+---@field currentCampaignID System.Byte
+---`Getter Public Instance Virtual`
+---@field Paused System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PendingSaveID System.UInt16
+---`Getter Public Instance`
+---@field PersonalWallet Barotrauma.Wallet
+---`Getter Public Instance Virtual`
+---@field Wallet Barotrauma.Wallet
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastSaveID System.UInt16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CampaignID System.Byte
+_G['MultiPlayerCampaign'] = {}
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return System.Int32
+_G['MultiPlayerCampaign'].GetBalance = function(client) end
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return Barotrauma.Wallet
+_G['MultiPlayerCampaign'].GetWallet = function(client) end
+
+---`Method Public Static`
+---@param saveFiles (System.Collections.Generic.List*1Barotrauma*CampaignMode*SaveInfo)|(Barotrauma.CampaignMode.SaveInfo[])
+_G['MultiPlayerCampaign'].StartCampaignSetup = function(saveFiles) end
+
+---`Method Public Instance Virtual`
+_G['MultiPlayerCampaign'].HUDScaleChanged = function() end
+
+---`Method Private Instance`
+_G['MultiPlayerCampaign'].CreateButtons = function() end
+
+---`Method Public Instance`
+_G['MultiPlayerCampaign'].InitCampaignUI = function() end
+
+---`Method Public Instance Virtual`
+_G['MultiPlayerCampaign'].Start = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['MultiPlayerCampaign'].LoadInitialLevel = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['MultiPlayerCampaign'].DoInitialCameraTransition = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param transitionType Barotrauma.CampaignMode.TransitionType
+---@param newLevel Barotrauma.LevelData
+---@param leavingSub Barotrauma.Submarine
+---@param mirror System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['MultiPlayerCampaign'].DoLevelTransition = function(transitionType, newLevel, leavingSub, mirror) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['MultiPlayerCampaign'].DoLevelTransition = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['MultiPlayerCampaign'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['MultiPlayerCampaign'].UpdateWhilePaused = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+_G['MultiPlayerCampaign'].End = function(transitionType) end
+
+---`Method NonPublic Instance Virtual`
+_G['MultiPlayerCampaign'].EndCampaignProjSpecific = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['MultiPlayerCampaign'].ClientWrite = function(msg) end
+
+---`Method Public Static`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['MultiPlayerCampaign'].ClientRead = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['MultiPlayerCampaign'].ClientReadCrew = function(msg) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['MultiPlayerCampaign'].ClientReadMoney = function(inc) end
+
+---`Method Public Instance Virtual`
+---@param client Barotrauma.Networking.Client
+---@param price System.Int32
+---@return System.Boolean
+_G['MultiPlayerCampaign'].TryPurchase = function(client, price) end
+
+---`Method Public Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@param isSavingOnLoading System.Boolean
+_G['MultiPlayerCampaign'].Save = function(element, isSavingOnLoading) end
+
+---`Method Public Instance`
+---@param filePath System.String
+_G['MultiPlayerCampaign'].LoadState = function(filePath) end
+
+---`Method Public Instance`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+---@return System.UInt16
+_G['MultiPlayerCampaign'].GetLastUpdateIdForFlag = function(flag) end
+
+---`Method Public Instance`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+---@param id System.UInt16
+_G['MultiPlayerCampaign'].SetLastUpdateIdForFlag = function(flag, id) end
+
+---`Method Public Instance`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+_G['MultiPlayerCampaign'].IncrementLastUpdateIdForFlag = function(flag) end
+
+---`Method Public Instance`
+_G['MultiPlayerCampaign'].IncrementAllLastUpdateIds = function() end
+
+---`Method Private Static`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+---@return System.Boolean
+_G['MultiPlayerCampaign'].ValidateFlag = function(flag) end
+
+---`Method Public Static`
+---@param mapSeed System.String
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'].StartNew = function(mapSeed, settings) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'].LoadNew = function(element) end
+
+---`Method Private Instance`
+_G['MultiPlayerCampaign'].InitProjSpecific = function() end
+
+---`Method Public Static`
+---@param loadPath System.String
+---@return System.String
+_G['MultiPlayerCampaign'].GetCharacterDataSavePath = function(loadPath) end
+
+---`Method Public Static`
+---@return System.String
+_G['MultiPlayerCampaign'].GetCharacterDataPathForLoading = function() end
+
+---`Method Public Static`
+---@return System.String
+_G['MultiPlayerCampaign'].GetCharacterDataPathForSaving = function() end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['MultiPlayerCampaign'].Load = function(element) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+_G['MultiPlayerCampaign'].GetCampaignSubs = function() end
+
+---`Method Private Static`
+---@overload fun(msg:Barotrauma.Networking.IWriteMessage, purchasedItems:(System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))}))
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param soldItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+_G['MultiPlayerCampaign'].WriteItems = function(msg, soldItems) end
+
+---`Method Private Static`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['MultiPlayerCampaign'].ReadPurchasedItems = function(msg, sender) end
+
+---`Method Private Static`
+---@param msg Barotrauma.Networking.IReadMessage
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+_G['MultiPlayerCampaign'].ReadSoldItems = function(msg) end
+
+---`Constructor Private Instance`
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'] = function(settings) end
+
+---`Constructor Private Instance`
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'].__new = function(settings) end
+
diff --git a/Meta/Types/client/_00007FFD97D807D8.lua b/Meta/Types/client/_00007FFD97D807D8.lua
new file mode 100644
index 0000000..182afab
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D807D8.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.MissionMode : Barotrauma.GameMode
+---`Field Private Instance`
+---@field missions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Getter Public Instance Virtual`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+_G['MissionMode'] = {}
+
+---`Method Public Instance Virtual`
+_G['MissionMode'].ShowStartMessage = function() end
+
+---`Method NonPublic Static`
+---@param missionPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+---@param missionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+_G['MissionMode'].ValidateMissionPrefabs = function(missionPrefabs, missionClasses) end
+
+---`Method Public Static`
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param missionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['MissionMode'].ValidateMissionTypes = function(missionTypes, missionClasses) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.MissionMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.MissionMode
+_G['MissionMode'] = function(preset, missionTypes, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.MissionMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.MissionMode
+_G['MissionMode'].__new = function(preset, missionTypes, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D80930.lua b/Meta/Types/client/_00007FFD97D80930.lua
new file mode 100644
index 0000000..828373d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D80930.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.CoOpMode : Barotrauma.MissionMode
+_G['CoOpMode'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.CoOpMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.CoOpMode
+_G['CoOpMode'] = function(preset, missionTypes, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.CoOpMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.CoOpMode
+_G['CoOpMode'].__new = function(preset, missionTypes, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D80B70.lua b/Meta/Types/client/_00007FFD97D80B70.lua
new file mode 100644
index 0000000..c39d417
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D80B70.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.PvPMode : Barotrauma.MissionMode
+---`Field Private Instance`
+---@field scoreContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field scoreTexts (Barotrauma.GUITextBlock-arr)|(Barotrauma.GUITextBlock[])
+---`Field Private Instance`
+---@field scoreTextShadows (Barotrauma.GUITextBlock-arr)|(Barotrauma.GUITextBlock[])
+---`Field Private Instance`
+---@field prevScores (System.Int32-arr)|(System.Int32[])
+_G['PvPMode'] = {}
+
+---`Method Private Instance`
+_G['PvPMode'].InitUI = function() end
+
+---`Method Public Instance Virtual`
+_G['PvPMode'].AddToGUIUpdateList = function() end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.PvPMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.PvPMode
+_G['PvPMode'] = function(preset, missionTypes, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.PvPMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.PvPMode
+_G['PvPMode'].__new = function(preset, missionTypes, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D80D80.lua b/Meta/Types/client/_00007FFD97D80D80.lua
new file mode 100644
index 0000000..8a9d41a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D80D80.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.AutoItemPlacer : System.Object
+---`Field Public Static`
+---@field OutputDebugInfo System.Boolean
+---`Field Public Static`
+---@field DefaultStartItemSet Barotrauma.Identifier
+_G['AutoItemPlacer'] = {}
+
+---`Method Public Static`
+---@param startItemSet? System.Nullable*1Barotrauma*Identifier
+_G['AutoItemPlacer'].SpawnItems = function(startItemSet) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@param regeneratedContainer Barotrauma.Items.Components.ItemContainer
+---@param skipItemProbability? System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AutoItemPlacer'].RegenerateLoot = function(sub, regeneratedContainer, skipItemProbability) end
+
+---`Method Private Static`
+---@param sub Barotrauma.Submarine
+---@param startItemSet System.Nullable*1Barotrauma*Identifier
+_G['AutoItemPlacer'].SpawnStartItems = function(sub, startItemSet) end
+
+---`Method Private Static`
+---@param subs (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---@param regeneratedContainer? Barotrauma.Items.Components.ItemContainer
+---@param skipItemProbability? System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AutoItemPlacer'].CreateAndPlace = function(subs, regeneratedContainer, skipItemProbability) end
+
+---`Method Private Static`
+---@param preferredContainer Barotrauma.PreferredContainer
+---@param allContainers (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemContainer)|(fun():(Barotrauma.Items.Components.ItemContainer))
+---@param validContainers (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer)|({[Barotrauma.Items.Components.ItemContainer]:(Barotrauma.PreferredContainer)})
+---@param primary System.Boolean
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer)|({[Barotrauma.Items.Components.ItemContainer]:(Barotrauma.PreferredContainer)})
+_G['AutoItemPlacer'].GetValidContainers = function(preferredContainer, allContainers, validContainers, primary) end
+
+---`Method Private Static`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param containers (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer)|(Barotrauma.Items.Components.ItemContainer[])
+---@param validContainer System.Collections.Generic.KeyValuePair*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['AutoItemPlacer'].CreateItems = function(itemPrefab, containers, validContainer) end
+
+---`Constructor Private Static`
+---@return Barotrauma.AutoItemPlacer
+_G['AutoItemPlacer'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.AutoItemPlacer
+_G['AutoItemPlacer'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D815A0.lua b/Meta/Types/client/_00007FFD97D815A0.lua
new file mode 100644
index 0000000..af65212
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D815A0.lua
@@ -0,0 +1,307 @@
+---@meta
+---@class Barotrauma.CargoManager : System.Object
+---`Field Private Instance`
+---@field campaign Barotrauma.CampaignMode
+---`Field Public Instance`
+---@field OnItemsInBuyCrateChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnItemsInSellCrateChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnItemsInSellFromSubCrateChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnPurchasedItemsChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnSoldItemsChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Private Instance`
+---@field purchasedIDCards (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*PurchasedItem*2Barotrauma*Items*Components*IdCard)|(System.ValueTuple*1Barotrauma*PurchasedItem*1Barotrauma*Items*Components*IdCard[])
+---`Field Private Static`
+---@field equipmentSlots (System.Collections.Generic.HashSet*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Public Static`
+---@field MaxQuantity System.Int32
+---`Getter Private Instance`
+---@field SoldEntities (System.Collections.Generic.List*1Barotrauma*CargoManager*SoldEntity)|(Barotrauma.CargoManager.SoldEntity[])
+---`Getter Public Instance`
+---@field ItemsInBuyCrate (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field ItemsInSellCrate (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field ItemsInSellFromSubCrate (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field PurchasedItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field SoldItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+---`Getter Private Instance`
+---@field Location Barotrauma.Location
+---`Getter Private Instance`
+---@field UndeterminedSoldEntities (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+_G['CargoManager'] = {}
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].GetSellableItems = function(character) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CargoManager*SoldEntity)|(fun():(Barotrauma.CargoManager.SoldEntity))
+_G['CargoManager'].GetConfirmedSoldEntities = function() end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['CargoManager'].SetItemsInBuyCrate = function(items) end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['CargoManager'].SetItemsInSubSellCrate = function(items) end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+_G['CargoManager'].SetSoldItems = function(items) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param changeInQuantity System.Int32
+_G['CargoManager'].ModifyItemQuantityInSellCrate = function(storeIdentifier, itemPrefab, changeInQuantity) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemsToSell (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+---@param sellingMode Barotrauma.Store.StoreTab
+_G['CargoManager'].SellItems = function(storeIdentifier, itemsToSell, sellingMode) end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearSoldItemsProjSpecific = function() end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['CargoManager'].HasUnlockedStoreItem = function(prefab) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*CargoManager*T)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*CargoManager*T)|(Barotrauma.CargoManager.T[]))})
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*CargoManager*T)|(Barotrauma.CargoManager.T[])
+_G['CargoManager'].GetItems = function(identifier, items, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetBuyCrateItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, prefab:Barotrauma.ItemPrefab):(Barotrauma.PurchasedItem)
+---@param store Barotrauma.Location.StoreInfo
+---@param prefab Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItem
+_G['CargoManager'].GetBuyCrateItem = function(store, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetSellCrateItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, prefab:Barotrauma.ItemPrefab):(Barotrauma.PurchasedItem)
+---@param store Barotrauma.Location.StoreInfo
+---@param prefab Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItem
+_G['CargoManager'].GetSellCrateItem = function(store, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetSubCrateItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, prefab:Barotrauma.ItemPrefab):(Barotrauma.PurchasedItem)
+---@param store Barotrauma.Location.StoreInfo
+---@param prefab Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItem
+_G['CargoManager'].GetSubCrateItem = function(store, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetPurchasedItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(store:Barotrauma.Location.StoreInfo, prefab:Barotrauma.ItemPrefab):(System.Int32)
+---@param identifier Barotrauma.Identifier
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Int32
+_G['CargoManager'].GetPurchasedItemCount = function(identifier, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[])
+_G['CargoManager'].GetSoldItems = function(store, create) end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearItemsInBuyCrate = function() end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearItemsInSellCrate = function() end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearItemsInSellFromSubCrate = function() end
+
+---`Method Public Instance`
+---@param purchasedItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['CargoManager'].SetPurchasedItems = function(purchasedItems) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param changeInQuantity System.Int32
+---@param client? Barotrauma.Networking.Client
+_G['CargoManager'].ModifyItemQuantityInBuyCrate = function(storeIdentifier, itemPrefab, changeInQuantity, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param changeInQuantity System.Int32
+---@param client? Barotrauma.Networking.Client
+_G['CargoManager'].ModifyItemQuantityInSubSellCrate = function(storeIdentifier, itemPrefab, changeInQuantity, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemsToPurchase (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+---@param removeFromCrate System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['CargoManager'].PurchaseItems = function(storeIdentifier, itemsToPurchase, removeFromCrate, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+_G['CargoManager'].GetBuyValuesAtCurrentLocation = function(storeIdentifier, items) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+_G['CargoManager'].GetSellValuesAtCurrentLocation = function(storeIdentifier, items) end
+
+---`Method Public Instance`
+_G['CargoManager'].CreatePurchasedItems = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].GetSellableItemsFromSub = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].FindAllItemsOnPlayerAndSub = function(character) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].FindAllSellableItems = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param confirmedItems (System.Collections.Generic.IEnumerable*1Barotrauma*CargoManager*SoldEntity)|(fun():(Barotrauma.CargoManager.SoldEntity))
+---@return System.Boolean
+_G['CargoManager'].IsItemSellable = function(item, confirmedItems) end
+
+---`Method Public Static`
+---@overload fun(subs:(System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))):((System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull)))
+---@param sub Barotrauma.Submarine
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+_G['CargoManager'].FindCargoRooms = function(sub) end
+
+---`Method Public Static`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param conditional? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].FilterCargoCrates = function(items, conditional) end
+
+---`Method Public Static`
+---@param subs (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---@param cargoRooms? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemContainer)|(fun():(Barotrauma.Items.Components.ItemContainer))
+_G['CargoManager'].FindReusableCargoContainers = function(subs, cargoRooms) end
+
+---`Method Public Static`
+---@param item Barotrauma.ItemPrefab
+---@param cargoRoomOrSpawnPoint Barotrauma.ISpatialEntity
+---@param availableContainers System.Collections.Generic.List
+---@return Barotrauma.Items.Components.ItemContainer
+_G['CargoManager'].GetOrCreateCargoContainerFor = function(item, cargoRoomOrSpawnPoint, availableContainers) end
+
+---`Method Public Static`
+---@param itemsToSpawn (System.Collections.Generic.IEnumerable*1Barotrauma*PurchasedItem)|(fun():(Barotrauma.PurchasedItem))
+---@param sub Barotrauma.Submarine
+---@param cargoManager Barotrauma.CargoManager
+---@param showNotification? System.Boolean
+_G['CargoManager'].DeliverItemsToSub = function(itemsToSpawn, sub, cargoManager, showNotification) end
+
+---`Method Public Static`
+---@param itemsToSpawn (System.Collections.Generic.IEnumerable*1Barotrauma*PurchasedItem)|(fun():(Barotrauma.PurchasedItem))
+---@param character Barotrauma.Character
+---@param cargoManager Barotrauma.CargoManager
+_G['CargoManager'].DeliverItemsToCharacter = function(itemsToSpawn, character, cargoManager) end
+
+---`Method Private Static`
+---@param purchased Barotrauma.PurchasedItem
+---@param item Barotrauma.Item
+---@param cargoManager Barotrauma.CargoManager
+_G['CargoManager'].ItemSpawned = function(purchased, item, cargoManager) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+_G['CargoManager'].ItemSpawned = function(item) end
+
+---`Method Public Instance`
+_G['CargoManager'].InitPurchasedIDCards = function() end
+
+---`Method Private Static`
+---@param purchased Barotrauma.PurchasedItem
+---@param idCard Barotrauma.Items.Components.IdCard
+_G['CargoManager'].InitPurchasedIDCard = function(purchased, idCard) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@param itemPrefab Barotrauma.ItemPrefab
+---@return Microsoft.Xna.Framework.Vector2
+_G['CargoManager'].GetCargoPos = function(hull, itemPrefab) end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+_G['CargoManager'].SavePurchasedItems = function(parentElement) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CargoManager'].LoadPurchasedItems = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.CargoManager
+---@return Barotrauma.CargoManager
+_G['CargoManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.CargoManager
+---@return Barotrauma.CargoManager
+_G['CargoManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.CargoManager
+---@return Barotrauma.CargoManager
+_G['CargoManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.CargoManager
+---@return Barotrauma.CargoManager
+_G['CargoManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D82C10.lua b/Meta/Types/client/_00007FFD97D82C10.lua
new file mode 100644
index 0000000..19df90d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D82C10.lua
@@ -0,0 +1,844 @@
+---@meta
+---@class Barotrauma.CrewManager : System.Object
+---`Field Private Instance`
+---@field screenResolution Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field DraggedOrderPrefab Barotrauma.OrderPrefab
+---`Field Public Instance`
+---@field DragOrder System.Boolean
+---`Field Private Instance`
+---@field dropOrder System.Boolean
+---`Field Private Instance`
+---@field framesToSkip System.Int32
+---`Field Private Instance`
+---@field dragOrderTreshold System.Single
+---`Field Private Instance`
+---@field dragPoint Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field guiFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field crewArea Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field crewList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field crewListOpenState System.Single
+---`Field Private Instance`
+---@field _isCrewMenuOpen System.Boolean
+---`Field Private Instance`
+---@field crewListEntrySize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field traitorButtons (System.Collections.Generic.List*1Barotrauma*GUITickBox)|(Barotrauma.GUITickBox[])
+---`Field Private Instance`
+---@field prevUIScale System.Single
+---`Field Public Instance`
+---@field AllowCharacterSwitch System.Boolean
+---`Field Public Instance`
+---@field OrderOptionButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field jobIndicatorBackground Barotrauma.Sprite
+---`Field Private Instance`
+---@field previousOrderArrow Barotrauma.Sprite
+---`Field Private Instance`
+---@field cancelIcon Barotrauma.Sprite
+---`Field Private Instance`
+---@field commandFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field targetFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field centerNode Barotrauma.GUIButton
+---`Field Private Instance`
+---@field returnNode Barotrauma.GUIButton
+---`Field Private Instance`
+---@field expandNode Barotrauma.GUIButton
+---`Field Private Instance`
+---@field shortcutCenterNode Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field optionNodes (System.Collections.Generic.List*1Barotrauma*CrewManager*OptionNode)|(Barotrauma.CrewManager.OptionNode[])
+---`Field Private Instance`
+---@field returnNodeHotkey Microsoft.Xna.Framework.Input.Keys
+---`Field Private Instance`
+---@field expandNodeHotkey Microsoft.Xna.Framework.Input.Keys
+---`Field Private Instance`
+---@field shortcutNodes (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field extraOptionNodes (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field nodeConnectors Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field background Barotrauma.GUIImage
+---`Field Private Instance`
+---@field selectedNode Barotrauma.GUIButton
+---`Field Private Instance`
+---@field selectionTime System.Single
+---`Field Private Instance`
+---@field timeSelected System.Single
+---`Field Private Instance`
+---@field clicklessSelectionActive System.Boolean
+---`Field Private Instance`
+---@field isOpeningClick System.Boolean
+---`Field Private Instance`
+---@field isSelectionHighlighted System.Boolean
+---`Field Private Instance`
+---@field centerNodeSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field nodeSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field shortcutCenterNodeSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field shortcutNodeSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field returnNodeSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field assignmentNodeSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field centerNodeMargin System.Single
+---`Field Private Instance`
+---@field optionNodeMargin System.Single
+---`Field Private Instance`
+---@field shortcutCenterNodeMargin System.Single
+---`Field Private Instance`
+---@field shortcutNodeMargin System.Single
+---`Field Private Instance`
+---@field returnNodeMargin System.Single
+---`Field Private Instance`
+---@field availableCategories (System.Collections.Generic.List*1Barotrauma*OrderCategory)|(Barotrauma.OrderCategory[])
+---`Field Private Instance`
+---@field historyNodes (System.Collections.Generic.Stack*1Barotrauma*GUIButton)|(fun():(Barotrauma.GUIButton))
+---`Field Private Instance`
+---@field extraOptionCharacters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field nodeDistance System.Int32
+---`Field Private Instance`
+---@field characterContext Barotrauma.Character
+---`Field Private Instance`
+---@field itemContext Barotrauma.Item
+---`Field Private Instance`
+---@field hullContext Barotrauma.Hull
+---`Field Private Instance`
+---@field wallContext Barotrauma.WallSection
+---`Field Private Instance`
+---@field isContextual System.Boolean
+---`Field Private Instance`
+---@field contextualOrders (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+---`Field Private Instance`
+---@field shorcutCenterNodeOffset Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field conversationTimer System.Single
+---`Field Private Instance`
+---@field conversationLineTimer System.Single
+---`Field Private Instance`
+---@field pendingConversationLines (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2System*String)|(System.ValueTuple*1Barotrauma*Character*1System*String[])
+---`Field Private Instance`
+---@field characterInfos (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---`Field Private Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field welcomeMessageNPC Barotrauma.Character
+---`Field Public Instance`
+---@field ActiveReadyCheck Barotrauma.ReadyCheck
+---`Field Public Static`
+---@field PreferCrewMenuOpen System.Boolean
+---`Field Private Static`
+---@field CommandNodeAnimDuration System.Single
+---`Field Private Static`
+---@field nodeColorMultiplier System.Single
+---`Field Private Static`
+---@field returnNodeDistanceModifier System.Single
+---`Field Private Static`
+---@field maxShortcutNodeCount System.Int32
+---`Field Private Static`
+---@field ConversationIntervalMin System.Single
+---`Field Private Static`
+---@field ConversationIntervalMax System.Single
+---`Field Private Static`
+---@field ConversationIntervalMultiplierMultiplayer System.Single
+---`Field Public Static`
+---@field MaxCrewSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReportButtonFrame Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ChatBox Barotrauma.ChatBox
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsCrewMenuOpen System.Boolean
+---`Getter Public Static`
+---@field IsCommandInterfaceOpen System.Boolean
+---`Getter Private Instance`
+---@field dismissedOrderPrefab Barotrauma.OrderPrefab
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field WasCommandInterfaceDisabledThisUpdate System.Boolean
+---`Getter Public Static`
+---@field CanIssueOrders System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HasBots System.Boolean
+---`Getter Public Instance`
+---@field ActiveOrders (System.Collections.Generic.List*1Barotrauma*CrewManager*ActiveOrder)|(Barotrauma.CrewManager.ActiveOrder[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsSinglePlayer System.Boolean
+_G['CrewManager'] = {}
+
+---`Method Private Instance`
+_G['CrewManager'].RemoveExtraOptionNodes = function() end
+
+---`Method Private Instance`
+_G['CrewManager'].CreateOrderCategoryNodes = function() end
+
+---`Method Private Instance`
+---@param category Barotrauma.OrderCategory
+---@param offset Microsoft.Xna.Framework.Point
+---@param hotkey System.Int32
+_G['CrewManager'].CreateOrderCategoryNode = function(category, offset, hotkey) end
+
+---`Method Private Instance`
+_G['CrewManager'].CreateShortcutNodes = function() end
+
+---`Method Private Instance`
+---@param orderCategory Barotrauma.OrderCategory
+_G['CrewManager'].CreateOrderNodes = function(orderCategory) end
+
+---`Method Private Instance`
+_G['CrewManager'].CreateContextualOrderNodes = function() end
+
+---`Method Private Instance`
+---@param size Microsoft.Xna.Framework.Point
+---@param parent Barotrauma.RectTransform
+---@param offset Microsoft.Xna.Framework.Point
+---@param order Barotrauma.Order
+---@param hotkey System.Int32
+---@param disableNode? System.Boolean
+---@param checkIfOrderCanBeHeard? System.Boolean
+---@return Barotrauma.GUIButton
+_G['CrewManager'].CreateOrderNode = function(size, parent, offset, order, hotkey, disableNode, checkIfOrderCanBeHeard) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@param submarine Barotrauma.Submarine
+---@param matchingItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['CrewManager'].CreateMinimapNodes = function(order, submarine, matchingItems) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@param targetItem Barotrauma.Item
+_G['CrewManager'].CreateOrderOptionNodes = function(order, targetItem) end
+
+---`Method Private Instance`
+---@param size Microsoft.Xna.Framework.Point
+---@param parent Barotrauma.RectTransform
+---@param offset Microsoft.Xna.Framework.Point
+---@param order Barotrauma.Order
+---@param hotkey System.Int32
+---@return Barotrauma.GUIButton
+_G['CrewManager'].CreateOrderOptionNode = function(size, parent, offset, order, hotkey) end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIComponent
+---@return System.Boolean
+_G['CrewManager'].CreateAssignmentNodes = function(node) end
+
+---`Method Private Instance`
+---@param characters System.Int32
+---@param firstRing? System.Boolean
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['CrewManager'].GetAssignmentNodeOffsets = function(characters, firstRing) end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['CrewManager'].ExpandAssignmentNodes = function(node, userData) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@param character Barotrauma.Character
+---@param offset Microsoft.Xna.Framework.Point
+---@param hotkey System.Int32
+---@param nameLabelScale? System.Single
+_G['CrewManager'].CreateAssignmentNode = function(order, character, offset, hotkey, nameLabelScale) end
+
+---`Method Private Instance`
+---@overload fun(relativeSize:Microsoft.Xna.Framework.Vector2, parent:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, color:Microsoft.Xna.Framework.Color, tooltip?:Barotrauma.LocalizedString):(Barotrauma.GUIImage)
+---@overload fun(absoluteSize:Microsoft.Xna.Framework.Point, parent:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, color:Microsoft.Xna.Framework.Color, tooltip?:Barotrauma.LocalizedString):(Barotrauma.GUIImage)
+---@param parent Barotrauma.RectTransform
+---@param style System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param tooltip? Barotrauma.LocalizedString
+_G['CrewManager'].CreateNodeIcon = function(parent, style, color, tooltip) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.RectTransform
+---@param hotkey System.Int32
+---@param enlargeIcon? System.Boolean
+_G['CrewManager'].CreateHotkeyIcon = function(parent, hotkey, enlargeIcon) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.RectTransform
+---@param tooltip? Barotrauma.LocalizedString
+_G['CrewManager'].CreateBlockIcon = function(parent, tooltip) end
+
+---`Method Private Instance`
+---@param nodes System.Int32
+---@return System.Int32
+_G['CrewManager'].GetCircumferencePointCount = function(nodes) end
+
+---`Method Private Instance`
+---@param nodeCount System.Int32
+---@return System.Single
+_G['CrewManager'].GetFirstNodeAngle = function(nodeCount) end
+
+---`Method Private Instance`
+---@param startPoint Microsoft.Xna.Framework.Vector2
+---@param endPoint Microsoft.Xna.Framework.Vector2
+---@param flipY? System.Boolean
+---@param flipX? System.Boolean
+---@return System.Single
+_G['CrewManager'].GetBearing = function(startPoint, endPoint, flipY, flipX) end
+
+---`Method Private Instance`
+---@param breachedHull Barotrauma.Hull-ref
+---@param hoveredWall Barotrauma.WallSection-ref
+---@return System.Boolean
+_G['CrewManager'].TryGetBreachedHullAtHoveredWall = function(breachedHull, hoveredWall) end
+
+---`Method Private Instance`
+---@return Barotrauma.Submarine
+_G['CrewManager'].GetTargetSubmarine = function() end
+
+---`Method Private Instance`
+---@param component Barotrauma.GUIComponent
+---@param character Barotrauma.Character
+_G['CrewManager'].SetCharacterTooltip = function(component, character) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@return Barotrauma.LocalizedString
+_G['CrewManager'].GetOrderNameBasedOnContextuality = function(order) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param order Barotrauma.Order
+---@return System.Int32
+_G['CrewManager'].GetManualOrderPriority = function(character, order) end
+
+---`Method Private Instance`
+---@overload fun(order:Barotrauma.Order):(System.Boolean)
+---@param order Barotrauma.OrderPrefab
+---@return System.Boolean
+_G['CrewManager'].IsOrderAvailable = function(order) end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIComponent
+---@return System.Boolean
+_G['CrewManager'].CanOpenManualAssignmentMinimapOrder = function(node) end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIComponent
+---@return System.Boolean
+_G['CrewManager'].CanOpenManualAssignment = function(node) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@return Barotrauma.Character
+_G['CrewManager'].GetCharacterForQuickAssignment = function(order) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@param controlledCharacter Barotrauma.Character
+---@param characters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param includeSelf? System.Boolean
+---@return Barotrauma.Character
+_G['CrewManager'].GetCharacterForQuickAssignment = function(order, controlledCharacter, characters, includeSelf) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@return (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+_G['CrewManager'].GetCharactersForManualAssignment = function(order) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['CrewManager'].GetOrderableFriendlyNPCs = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].UpdateReports = function() end
+
+---`Method Private Instance`
+---@overload fun(orderIdentifier:System.String, enabled:System.Boolean)
+---@param orderIdentifier Barotrauma.Identifier
+---@param enabled System.Boolean
+_G['CrewManager'].ToggleReportButton = function(orderIdentifier, enabled) end
+
+---`Method Public Instance`
+_G['CrewManager'].InitSinglePlayerRound = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].Reset = function() end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['CrewManager'].Save = function(parentElement) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['CrewManager'].ClientReadActiveOrders = function(inc) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['CrewManager'].GetCharacters = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))
+_G['CrewManager'].GetCharacterInfos = function() end
+
+---`Method Private Instance`
+_G['CrewManager'].InitProjectSpecific = function() end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param fadeOutTime System.Nullable*1System*Single
+---@return System.Boolean
+_G['CrewManager'].AddOrder = function(order, fadeOutTime) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CrewManager'].AddCharacterElements = function(element) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['CrewManager'].RemoveCharacterInfo = function(characterInfo) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['CrewManager'].AddCharacter = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CrewManager'].IsFired = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param removeInfo? System.Boolean
+---@param resetCrewListIndex? System.Boolean
+_G['CrewManager'].RemoveCharacter = function(character, removeInfo, resetCrewListIndex) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['CrewManager'].AddCharacterInfo = function(characterInfo) end
+
+---`Method Public Instance`
+_G['CrewManager'].ClearCharacterInfos = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].InitRound = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['CrewManager'].GetOutpostSpawnpoints = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param mainSubWaypoint Barotrauma.WayPoint
+---@param spawnWaypoint Barotrauma.WayPoint
+_G['CrewManager'].InitializeCharacter = function(character, mainSubWaypoint, spawnWaypoint) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param newName System.String
+_G['CrewManager'].RenameCharacter = function(characterInfo, newName) end
+
+---`Method Private Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['CrewManager'].RenameCharacterProjSpecific = function(characterInfo) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['CrewManager'].FireCharacter = function(characterInfo) end
+
+---`Method Public Instance`
+_G['CrewManager'].ClearCurrentOrders = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CrewManager'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param conversationLines (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2System*String)|(System.ValueTuple*1Barotrauma*Character*1System*String[])
+_G['CrewManager'].AddConversation = function(conversationLines) end
+
+---`Method Private Instance`
+_G['CrewManager'].CreateRandomConversation = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CrewManager'].UpdateConversations = function(deltaTime) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@param characters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param controlledCharacter Barotrauma.Character
+---@param includeSelf System.Boolean
+---@param extraCharacters? (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['CrewManager'].GetCharactersSortedForOrder = function(order, characters, controlledCharacter, includeSelf, extraCharacters) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CrewManager'].UpdateProjectSpecific = function(deltaTime) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CrewManager'].SaveActiveOrders = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CrewManager'].LoadActiveOrders = function(element) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['CrewManager'].AutoShowCrewList = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].AutoHideCrewList = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].ResetCrewList = function() end
+
+---`Method Public Static`
+---@param crewManager Barotrauma.CrewManager
+---@param parent Barotrauma.GUIComponent
+---@param reports (System.Collections.Generic.IReadOnlyList*1Barotrauma*OrderPrefab)|(Barotrauma.OrderPrefab[])
+---@param isHorizontal System.Boolean
+_G['CrewManager'].CreateReportButtons = function(crewManager, parent, reports, isHorizontal) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Rectangle
+_G['CrewManager'].GetActiveCrewArea = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.GUIComponent
+_G['CrewManager'].AddCharacterToCrewList = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['CrewManager'].RemoveCharacterFromCrewList = function(character) end
+
+---`Method Private Static`
+---@param characterComponent Barotrauma.GUIComponent
+_G['CrewManager'].SetCharacterComponentTooltip = function(characterComponent) end
+
+---`Method Public Instance`
+---@param component Barotrauma.GUIComponent
+---@param selection System.Object
+---@return System.Boolean
+_G['CrewManager'].CharacterClicked = function(component, selection) end
+
+---`Method Public Instance`
+---@param revivedCharacter Barotrauma.Character
+_G['CrewManager'].ReviveCharacter = function(revivedCharacter) end
+
+---`Method Public Instance`
+---@param killedCharacter Barotrauma.Character
+---@param resetCrewListIndex? System.Boolean
+_G['CrewManager'].KillCharacter = function(killedCharacter, resetCrewListIndex) end
+
+---`Method Private Instance`
+---@param component Barotrauma.GUIComponent
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['CrewManager'].KillCharacterAnim = function(component) end
+
+---`Method Private Instance`
+---@param crewList Barotrauma.GUIListBox
+---@param draggedElementData System.Object
+_G['CrewManager'].OnCrewListRearranged = function(crewList, draggedElementData) end
+
+---`Method Private Instance`
+---@param c Barotrauma.Character
+_G['CrewManager'].ResetCrewListIndex = function(c) end
+
+---`Method Private Instance`
+_G['CrewManager'].UpdateCrewListIndices = function() end
+
+---`Method Private Instance`
+_G['CrewManager'].SortCrewList = function() end
+
+---`Method Public Instance`
+---@overload fun(senderName:Barotrauma.LocalizedString, text:Barotrauma.LocalizedString, messageType:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity)
+---@overload fun(senderName:System.String, text:System.String, messageType:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity)
+---@param message Barotrauma.Networking.ChatMessage
+_G['CrewManager'].AddSinglePlayerChatMessage = function(message) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@param muted System.Boolean
+---@param mutedLocally System.Boolean
+_G['CrewManager'].SetPlayerVoiceIconState = function(client, muted, mutedLocally) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['CrewManager'].SetClientSpeaking = function(client) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['CrewManager'].SetCharacterSpeaking = function(character) end
+
+---`Method Private Instance`
+---@overload fun(characterComponent:Barotrauma.GUIComponent):(Barotrauma.GUIComponent)
+---@param character Barotrauma.Character
+---@return Barotrauma.GUIComponent
+_G['CrewManager'].GetSoundIconParent = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param order Barotrauma.Order
+---@param isNewOrder? System.Boolean
+_G['CrewManager'].SetCharacterOrder = function(character, order, isNewOrder) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param order Barotrauma.Order
+_G['CrewManager'].AddCurrentOrderIcon = function(character, order) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param characterComponent Barotrauma.GUIComponent
+---@param orderInfo Barotrauma.Order
+_G['CrewManager'].AddPreviousOrderIcon = function(character, characterComponent, orderInfo) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param oldCharacterComponent Barotrauma.GUIComponent
+_G['CrewManager'].AddOldPreviousOrderIcons = function(character, oldCharacterComponent) end
+
+---`Method Private Instance`
+---@param characterComponent Barotrauma.GUIComponent
+_G['CrewManager'].RemoveLastOrderIcon = function(characterComponent) end
+
+---`Method Private Instance`
+---@param iconGroup Barotrauma.GUILayoutGroup
+---@return System.Boolean
+_G['CrewManager'].RemoveLastPreviousOrderIcon = function(iconGroup) end
+
+---`Method Private Instance`
+---@param characterComponent Barotrauma.GUIComponent
+---@return Barotrauma.GUIListBox
+_G['CrewManager'].GetCurrentOrderIconList = function(characterComponent) end
+
+---`Method Private Instance`
+---@param characterComponent Barotrauma.GUIComponent
+---@return Barotrauma.GUILayoutGroup
+_G['CrewManager'].GetPreviousOrderIconGroup = function(characterComponent) end
+
+---`Method Private Instance`
+---@param orderList Barotrauma.GUIListBox
+---@param userData System.Object
+_G['CrewManager'].OnOrdersRearranged = function(orderList, userData) end
+
+---`Method Private Instance`
+---@overload fun(orderPrefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity):(Barotrauma.LocalizedString)
+---@param order Barotrauma.Order
+---@return Barotrauma.LocalizedString
+_G['CrewManager'].CreateOrderTooltip = function(order) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@return Barotrauma.Sprite
+_G['CrewManager'].GetOrderIconSprite = function(order) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['CrewManager'].DrawMiniMapOverlay = function(spriteBatch, container) end
+
+---`Method Public Instance`
+_G['CrewManager'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].SelectNextCharacter = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].SelectPreviousCharacter = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['CrewManager'].SelectCharacter = function(character) end
+
+---`Method Private Instance`
+---@param amount System.Int32
+---@return System.Int32
+_G['CrewManager'].TryAdjustIndex = function(amount) end
+
+---`Method Private Instance`
+---@param orderPrefab Barotrauma.OrderPrefab
+---@param targetHull? Barotrauma.Hull
+---@return System.Boolean
+_G['CrewManager'].CreateOrder = function(orderPrefab, targetHull) end
+
+---`Method Private Instance`
+_G['CrewManager'].UpdateOrderDrag = function() end
+
+---`Method Private Instance`
+---@param characterComponent Barotrauma.GUIComponent
+---@param orderIdentifier Barotrauma.Identifier
+---@param orderOption Barotrauma.Identifier
+_G['CrewManager'].SetOrderHighlight = function(characterComponent, orderIdentifier, orderOption) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param orderIdentifier Barotrauma.Identifier
+---@param orderOption Barotrauma.Identifier
+_G['CrewManager'].SetOrderHighlight = function(character, orderIdentifier, orderOption) end
+
+---`Method Private Instance`
+---@param characterComponent Barotrauma.GUIComponent
+_G['CrewManager'].DisableOrderHighlight = function(characterComponent) end
+
+---`Method Private Instance`
+---@overload fun(characterComponent:Barotrauma.GUIComponent, sprite:Barotrauma.Sprite, tooltip:Barotrauma.LocalizedString)
+---@param characterComponent Barotrauma.GUIComponent
+---@param objective Barotrauma.AIObjective
+_G['CrewManager'].CreateObjectiveIcon = function(characterComponent, objective) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param identifier Barotrauma.Identifier
+---@param option Barotrauma.Identifier
+---@param targetEntity Barotrauma.Entity
+_G['CrewManager'].CreateObjectiveIcon = function(character, identifier, option, targetEntity) end
+
+---`Method Private Instance`
+---@overload fun(identifier:Barotrauma.Identifier, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity):(Barotrauma.LocalizedString)
+---@param objective Barotrauma.AIObjective
+---@return Barotrauma.LocalizedString
+_G['CrewManager'].GetObjectiveIconTooltip = function(objective) end
+
+---`Method Private Instance`
+---@param characterComponent Barotrauma.GUIComponent
+---@return Barotrauma.GUIComponent
+_G['CrewManager'].GetObjectiveIconParent = function(characterComponent) end
+
+---`Method Private Instance`
+---@param characterComponent Barotrauma.GUIComponent
+_G['CrewManager'].RemoveObjectiveIcon = function(characterComponent) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['CrewManager'].CanCharacterBeHeard = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.Entity
+_G['CrewManager'].FindEntityContext = function() end
+
+---`Method Public Instance`
+---@param entityContext? Barotrauma.Entity
+---@param forceContextual? System.Boolean
+_G['CrewManager'].OpenCommandUI = function(entityContext, forceContextual) end
+
+---`Method Private Instance`
+---@param entityContext? Barotrauma.Entity
+---@param forceContextual? System.Boolean
+_G['CrewManager'].CreateCommandUI = function(entityContext, forceContextual) end
+
+---`Method Public Instance`
+_G['CrewManager'].ToggleCommandUI = function() end
+
+---`Method Private Instance`
+_G['CrewManager'].ScaleCommandUI = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*OrderCategory)|(Barotrauma.OrderCategory[])
+_G['CrewManager'].GetAvailableCategories = function() end
+
+---`Method Private Instance`
+_G['CrewManager'].CreateNodeConnectors = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUIComponent
+_G['CrewManager'].DrawNodeConnectors = function(spriteBatch, container) end
+
+---`Method Private Instance`
+---@param startNodePos Microsoft.Xna.Framework.Vector2
+---@param startNodeMargin System.Single
+---@param endNode Barotrauma.GUIComponent
+---@param endNodeMargin System.Single
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param widthMultiplier? System.Single
+_G['CrewManager'].DrawNodeConnector = function(startNodePos, startNodeMargin, endNode, endNodeMargin, spriteBatch, widthMultiplier) end
+
+---`Method Public Instance`
+_G['CrewManager'].DisableCommandUI = function() end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['CrewManager'].NavigateForward = function(node, userData) end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['CrewManager'].NavigateBackward = function(node, userData) end
+
+---`Method Private Instance`
+_G['CrewManager'].HideMinimap = function() end
+
+---`Method Private Instance`
+_G['CrewManager'].CreateReturnNodeHotkey = function() end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIButton
+---@param resetAnchor? System.Boolean
+_G['CrewManager'].SetCenterNode = function(node, resetAnchor) end
+
+---`Method Private Instance`
+---@param node Barotrauma.GUIButton
+---@param offset Microsoft.Xna.Framework.Point
+_G['CrewManager'].SetReturnNode = function(node, offset) end
+
+---`Method Private Instance`
+---@param userData System.Object
+---@return System.Boolean
+_G['CrewManager'].CreateNodes = function(userData) end
+
+---`Method Private Instance`
+_G['CrewManager'].RemoveOptionNodes = function() end
+
+---`Constructor Public Instance`
+---@overload fun(isSinglePlayer:System.Boolean):Barotrauma.CrewManager
+---@overload fun():Barotrauma.CrewManager
+---@param element System.Xml.Linq.XElement
+---@param isSinglePlayer System.Boolean
+---@return Barotrauma.CrewManager
+_G['CrewManager'] = function(element, isSinglePlayer) end
+
+---`Constructor Public Instance`
+---@overload fun(isSinglePlayer:System.Boolean):Barotrauma.CrewManager
+---@overload fun():Barotrauma.CrewManager
+---@param element System.Xml.Linq.XElement
+---@param isSinglePlayer System.Boolean
+---@return Barotrauma.CrewManager
+_G['CrewManager'].__new = function(element, isSinglePlayer) end
+
+---`Constructor Private Static`
+---@overload fun(isSinglePlayer:System.Boolean):Barotrauma.CrewManager
+---@overload fun():Barotrauma.CrewManager
+---@param element System.Xml.Linq.XElement
+---@param isSinglePlayer System.Boolean
+---@return Barotrauma.CrewManager
+_G['CrewManager'] = function(element, isSinglePlayer) end
+
+---`Constructor Private Static`
+---@overload fun(isSinglePlayer:System.Boolean):Barotrauma.CrewManager
+---@overload fun():Barotrauma.CrewManager
+---@param element System.Xml.Linq.XElement
+---@param isSinglePlayer System.Boolean
+---@return Barotrauma.CrewManager
+_G['CrewManager'].__new = function(element, isSinglePlayer) end
+
diff --git a/Meta/Types/client/_00007FFD97D82F78.lua b/Meta/Types/client/_00007FFD97D82F78.lua
new file mode 100644
index 0000000..645c25a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D82F78.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class Barotrauma.SteeringManager : System.Object
+---`Field NonPublic Instance`
+---@field host Barotrauma.ISteerable
+---`Field NonPublic Instance`
+---@field steering Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lastRayCastTime System.Single
+---`Field Private Instance`
+---@field avoidRayCastHit System.Boolean
+---`Field Private Instance`
+---@field wanderAngle System.Single
+---`Field NonPublic Static`
+---@field CircleDistance System.Single
+---`Field NonPublic Static`
+---@field CircleRadius System.Single
+---`Field NonPublic Static`
+---@field RayCastInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidDir Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidRayCastHitPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidLookAheadPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WanderAngle System.Single
+_G['SteeringManager'] = {}
+
+---`Method Public Instance`
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param weight? System.Single
+_G['SteeringManager'].SteeringSeek = function(targetSimPos, weight) end
+
+---`Method Public Instance`
+---@param weight? System.Single
+---@param avoidWanderingOutsideLevel? System.Boolean
+_G['SteeringManager'].SteeringWander = function(weight, avoidWanderingOutsideLevel) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param lookAheadDistance System.Single
+---@param weight? System.Single
+_G['SteeringManager'].SteeringAvoid = function(deltaTime, lookAheadDistance, weight) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param velocity Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].SteeringManual = function(deltaTime, velocity) end
+
+---`Method Public Instance`
+_G['SteeringManager'].Reset = function() end
+
+---`Method Public Instance`
+_G['SteeringManager'].ResetX = function() end
+
+---`Method Public Instance`
+_G['SteeringManager'].ResetY = function() end
+
+---`Method Public Instance Virtual`
+---@param speed System.Single
+_G['SteeringManager'].Update = function(speed) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].DoSteeringSeek = function(target, weight) end
+
+---`Method NonPublic Instance Virtual`
+---@param weight System.Single
+---@param avoidWanderingOutsideLevel System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].DoSteeringWander = function(weight, avoidWanderingOutsideLevel) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+---@param lookAheadDistance System.Single
+---@param weight System.Single
+---@param heading? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].DoSteeringAvoid = function(deltaTime, lookAheadDistance, weight, heading) end
+
+---`Constructor Public Instance`
+---@param host Barotrauma.ISteerable
+---@return Barotrauma.SteeringManager
+_G['SteeringManager'] = function(host) end
+
+---`Constructor Public Instance`
+---@param host Barotrauma.ISteerable
+---@return Barotrauma.SteeringManager
+_G['SteeringManager'].__new = function(host) end
+
diff --git a/Meta/Types/client/_00007FFD97D83A38.lua b/Meta/Types/client/_00007FFD97D83A38.lua
new file mode 100644
index 0000000..96c42d6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D83A38.lua
@@ -0,0 +1,172 @@
+---@meta
+---@class Barotrauma.IndoorsSteeringManager : Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field pathFinder Barotrauma.PathFinder
+---`Field Private Instance`
+---@field currentPath Barotrauma.SteeringPath
+---`Field Private Instance`
+---@field canOpenDoors System.Boolean
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field currentTargetPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field findPathTimer System.Single
+---`Field Private Instance`
+---@field checkDoorsTimer System.Single
+---`Field Private Instance`
+---@field buttonPressTimer System.Single
+---`Field Private Instance`
+---@field lastDoor System.ValueTuple*1Barotrauma*Items*Components*Door*1System*Boolean
+---`Field Public Static`
+---@field smallRoomSize System.Single
+---`Field Private Static`
+---@field ButtonPressCooldown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBreakDoors System.Boolean
+---`Getter Public Instance`
+---@field CurrentPath Barotrauma.SteeringPath
+---`Getter Public Instance`
+---@field PathFinder Barotrauma.PathFinder
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsPathDirty System.Boolean
+---`Getter Public Instance`
+---@field PathHasStairs System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentNodeLadder System.Boolean
+---`Getter Public Instance`
+---@field IsNextNodeLadder System.Boolean
+---`Getter Public Instance`
+---@field IsNextLadderSameAsCurrent System.Boolean
+_G['IndoorsSteeringManager'] = {}
+
+---`Method Private Instance`
+---@param door Barotrauma.Items.Components.Door
+---@return System.Boolean
+_G['IndoorsSteeringManager'].ShouldBreakDoor = function(door) end
+
+---`Method Public Instance Virtual`
+---@param speed System.Single
+_G['IndoorsSteeringManager'].Update = function(speed) end
+
+---`Method Public Instance`
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@param path Barotrauma.SteeringPath
+_G['IndoorsSteeringManager'].SetPath = function(targetPos, path) end
+
+---`Method Public Instance`
+_G['IndoorsSteeringManager'].ResetPath = function() end
+
+---`Method Public Instance`
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param weight? System.Single
+_G['IndoorsSteeringManager'].SteeringSeekSimple = function(targetSimPos, weight) end
+
+---`Method Public Instance`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@param minGapWidth? System.Single
+---@param startNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param endNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param nodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param checkVisiblity? System.Boolean
+_G['IndoorsSteeringManager'].SteeringSeek = function(target, weight, minGapWidth, startNodeFilter, endNodeFilter, nodeFilter, checkVisiblity) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.Ladder
+_G['IndoorsSteeringManager'].GetCurrentLadder = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.Ladder
+_G['IndoorsSteeringManager'].GetNextLadder = function() end
+
+---`Method Private Instance`
+---@param wp Barotrauma.WayPoint
+---@return Barotrauma.Items.Components.Ladder
+_G['IndoorsSteeringManager'].GetLadder = function(wp) end
+
+---`Method Private Instance`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@param minGapSize? System.Single
+---@param startNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param endNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param nodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param checkVisibility? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].CalculateSteeringSeek = function(target, weight, minGapSize, startNodeFilter, endNodeFilter, nodeFilter, checkVisibility) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].DoSteeringSeek = function(target, weight) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].DiffToCurrentNode = function() end
+
+---`Method Private Instance`
+---@param checkDoors System.Boolean
+_G['IndoorsSteeringManager'].NextNode = function(checkDoors) end
+
+---`Method Public Instance`
+---@param door Barotrauma.Items.Components.Door
+---@param buttonFilter? (System.Func*1Barotrauma*Items*Components*Controller*1System*Boolean)|(fun(arg:Barotrauma.Items.Components.Controller):(System.Boolean))
+---@return System.Boolean
+_G['IndoorsSteeringManager'].CanAccessDoor = function(door, buttonFilter) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].GetColliderSize = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['IndoorsSteeringManager'].GetColliderLength = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['IndoorsSteeringManager'].GetDoorCheckTime = function() end
+
+---`Method Private Instance`
+_G['IndoorsSteeringManager'].CheckDoorsInPath = function() end
+
+---`Method Private Instance`
+---@param node Barotrauma.PathNode
+---@param nextNode Barotrauma.PathNode
+---@return System.Nullable*1System*Single
+_G['IndoorsSteeringManager'].GetNodePenalty = function(node, nextNode) end
+
+---`Method Private Instance`
+---@param node Barotrauma.PathNode
+---@return System.Nullable*1System*Single
+_G['IndoorsSteeringManager'].GetSingleNodePenalty = function(node) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param wallAvoidDistance? System.Single
+---@param stayStillInTightSpace? System.Boolean
+_G['IndoorsSteeringManager'].Wander = function(deltaTime, wallAvoidDistance, stayStillInTightSpace) end
+
+---`Constructor Public Instance`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D84CE8.lua b/Meta/Types/client/_00007FFD97D84CE8.lua
new file mode 100644
index 0000000..16459fe
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D84CE8.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.InputType : System.Enum
+---`Field Public Static`
+---@field Select Barotrauma.InputType
+---`Field Public Static`
+---@field Use Barotrauma.InputType
+---`Field Public Static`
+---@field Aim Barotrauma.InputType
+---`Field Public Static`
+---@field Up Barotrauma.InputType
+---`Field Public Static`
+---@field Down Barotrauma.InputType
+---`Field Public Static`
+---@field Left Barotrauma.InputType
+---`Field Public Static`
+---@field Right Barotrauma.InputType
+---`Field Public Static`
+---@field Attack Barotrauma.InputType
+---`Field Public Static`
+---@field Run Barotrauma.InputType
+---`Field Public Static`
+---@field Crouch Barotrauma.InputType
+---`Field Public Static`
+---@field InfoTab Barotrauma.InputType
+---`Field Public Static`
+---@field Chat Barotrauma.InputType
+---`Field Public Static`
+---@field RadioChat Barotrauma.InputType
+---`Field Public Static`
+---@field CrewOrders Barotrauma.InputType
+---`Field Public Static`
+---@field Ragdoll Barotrauma.InputType
+---`Field Public Static`
+---@field Health Barotrauma.InputType
+---`Field Public Static`
+---@field Grab Barotrauma.InputType
+---`Field Public Static`
+---@field DropItem Barotrauma.InputType
+---`Field Public Static`
+---@field SelectNextCharacter Barotrauma.InputType
+---`Field Public Static`
+---@field SelectPreviousCharacter Barotrauma.InputType
+---`Field Public Static`
+---@field Voice Barotrauma.InputType
+---`Field Public Static`
+---@field RadioVoice Barotrauma.InputType
+---`Field Public Static`
+---@field LocalVoice Barotrauma.InputType
+---`Field Public Static`
+---@field Deselect Barotrauma.InputType
+---`Field Public Static`
+---@field Shoot Barotrauma.InputType
+---`Field Public Static`
+---@field Command Barotrauma.InputType
+---`Field Public Static`
+---@field ContextualCommand Barotrauma.InputType
+---`Field Public Static`
+---@field ToggleInventory Barotrauma.InputType
+---`Field Public Static`
+---@field TakeOneFromInventorySlot Barotrauma.InputType
+---`Field Public Static`
+---@field TakeHalfFromInventorySlot Barotrauma.InputType
+---`Field Public Static`
+---@field NextFireMode Barotrauma.InputType
+---`Field Public Static`
+---@field PreviousFireMode Barotrauma.InputType
+---`Field Public Static`
+---@field ActiveChat Barotrauma.InputType
+---`Field Public Static`
+---@field ToggleChatMode Barotrauma.InputType
+---`Field Public Static`
+---@field ChatBox Barotrauma.InputType
+---`Field Public Static`
+---@field ShowInteractionLabels Barotrauma.InputType
+_G['InputType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97D84E40.lua b/Meta/Types/client/_00007FFD97D84E40.lua
new file mode 100644
index 0000000..bea3bc4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D84E40.lua
@@ -0,0 +1,570 @@
+---@meta
+---@class Barotrauma.Items.Components.ItemComponent : System.Object
+---`Field Private Instance`
+---@field hasSoundsOfType (System.Boolean-arr)|(System.Boolean[])
+---`Field Private Instance`
+---@field sounds (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*Items*Components*ItemSound)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*Items*Components*ItemSound)|(Barotrauma.Items.Components.ItemSound[]))})
+---`Field Private Instance`
+---@field soundSelectionModes (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1Barotrauma*Items*Components*SoundSelectionMode)|({[Barotrauma.ActionType]:(Barotrauma.Items.Components.SoundSelectionMode)})
+---`Field NonPublic Instance`
+---@field correctionTimer System.Single
+---`Field Public Instance`
+---@field IsActiveTimer System.Single
+---`Field Private Instance`
+---@field guiFrameDragHandle Barotrauma.GUIDragHandle
+---`Field Private Instance`
+---@field guiFrameUpdatePending System.Boolean
+---`Field Private Instance`
+---@field linkToUIComponent Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field useAlternativeLayout System.Boolean
+---`Field Private Instance`
+---@field shouldMuffleLooping System.Boolean
+---`Field Private Instance`
+---@field lastMuffleCheckTime System.Single
+---`Field Private Instance`
+---@field loopingSound Barotrauma.Items.Components.ItemSound
+---`Field Private Instance`
+---@field loopingSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field playingOneshotSoundChannels (System.Collections.Generic.List*1Barotrauma*Sounds*SoundChannel)|(Barotrauma.Sounds.SoundChannel[])
+---`Field Public Instance`
+---@field ReplacedBy Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field GuiFrameSource System.Xml.Linq.XElement
+---`Field NonPublic Instance`
+---@field item Barotrauma.Item
+---`Field NonPublic Instance`
+---@field name System.String
+---`Field Private Instance`
+---@field isActive System.Boolean
+---`Field NonPublic Instance`
+---@field characterUsable System.Boolean
+---`Field NonPublic Instance`
+---@field canBePicked System.Boolean
+---`Field NonPublic Instance`
+---@field canBeSelected System.Boolean
+---`Field NonPublic Instance`
+---@field canBeCombined System.Boolean
+---`Field NonPublic Instance`
+---@field removeOnCombined System.Boolean
+---`Field Public Instance`
+---@field WasUsed System.Boolean
+---`Field Public Instance`
+---@field WasSecondaryUsed System.Boolean
+---`Field Public Instance`
+---@field statusEffectLists (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Public Instance`
+---@field RequiredItems (System.Collections.Generic.Dictionary*1Barotrauma*RelatedItem*RelationType*1System*Collections*Generic*List*2Barotrauma*RelatedItem)|({[Barotrauma.RelatedItem.RelationType]:((System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[]))})
+---`Field Public Instance`
+---@field DisabledRequiredItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Public Instance`
+---@field RequiredSkills (System.Collections.Generic.List*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---`Field Private Instance`
+---@field parent Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field originalElement Barotrauma.ContentXElement
+---`Field NonPublic Instance`
+---@field delayedCorrectionCoroutine Barotrauma.CoroutineHandle
+---`Field Public Instance`
+---@field OnActiveStateChanged (System.Action*1System*Boolean)|(fun(obj:System.Boolean))
+---`Field Private Instance`
+---@field drawable System.Boolean
+---`Field Public Instance`
+---@field IsActiveConditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Field Public Instance`
+---@field OnUsed Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemComponent*ItemUseInfo
+---`Field Public Instance`
+---@field InheritStatusEffects System.Boolean
+---`Field NonPublic Instance`
+---@field aiUpdateTimer System.Single
+---`Field NonPublic Static`
+---@field CorrectionDelay System.Single
+---`Field NonPublic Static`
+---@field AIUpdateInterval System.Single
+---`Getter Public Instance`
+---@field HasSounds System.Boolean
+---`Getter Public Instance`
+---@field HasSoundsOfType (System.Boolean-arr)|(System.Boolean[])
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field DefaultLayout Barotrauma.Items.Components.ItemComponent.GUILayoutSettings
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field AlternativeLayout Barotrauma.Items.Components.ItemComponent.GUILayoutSettings
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GuiFrame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HUDOverlay Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HUDOverlayAnimSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowUIOverlap System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CloseByClickingOutsideGUIFrame System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinkUIToComponent System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HudPriority System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HudLayer System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseAlternativeLayout System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Parent Barotrauma.Items.Components.ItemComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InheritParentIsActive System.Boolean
+---`Getter Public Instance Virtual`
+---@field DontTransferInventoryBetweenSubs System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisallowSellingItemsFromContainer System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PickingTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PickingMsg System.String
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsActiveConditionalComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Drawable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBePicked System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field DrawHudWhenEquipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LockGuiFramePosition System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GuiFrameOffset Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBeSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBeCombined System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveOnCombined System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterUsable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowInGameEditing System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field PickKey Barotrauma.InputType
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SelectKey Barotrauma.InputType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeleteOnUse System.Boolean
+---`Getter Public Instance`
+---@field Item Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Msg System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplayMsg Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CombatPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ManuallySelectedSound System.Int32
+---`Getter Public Instance`
+---@field Speed System.Single
+---`Getter Public Instance Virtual`
+---@field UpdateWhenInactive System.Boolean
+_G['Components']['ItemComponent'] = {}
+
+---`Method Private Instance`
+---@param isActive System.Boolean
+_G['Components']['ItemComponent'].SetActiveState = function(isActive) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param allowEmpty? System.Boolean
+_G['Components']['ItemComponent'].SetRequiredItems = function(element, allowEmpty) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['ItemComponent'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['ItemComponent'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['ItemComponent'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemComponent'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['ItemComponent'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['ItemComponent'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ItemComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Combine = function(item, user) end
+
+---`Method Public Instance`
+_G['Components']['ItemComponent'].Remove = function() end
+
+---`Method Public Instance`
+_G['Components']['ItemComponent'].ShallowRemove = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemComponent'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemComponent'].RemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance`
+---@param subElement Barotrauma.ContentXElement
+---@return System.String
+_G['Components']['ItemComponent'].GetTextureDirectory = function(subElement) end
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.Character):(System.Boolean)
+---@param character Barotrauma.Character
+---@param insufficientSkill Barotrauma.Skill-ref
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasRequiredSkills = function(character, insufficientSkill) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Components']['ItemComponent'].GetSkillMultiplier = function() end
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.Character):(System.Single)
+---@param character Barotrauma.Character
+---@param requiredSkills (System.Collections.Generic.List*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---@return System.Single
+_G['Components']['ItemComponent'].DegreeOfSuccess = function(character, requiredSkills) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['ItemComponent'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['ItemComponent'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].IsEmpty = function(user) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasRequiredContainedItems = function(user, addMessage, msg) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasAccess = function(character) end
+
+---`Method Private Instance`
+---@param relatedItem Barotrauma.RelatedItem
+---@param idCard Barotrauma.Items.Components.IdCard
+---@return System.Boolean
+_G['Components']['ItemComponent'].CheckIdCardAccess = function(relatedItem, idCard) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param user? Barotrauma.Character
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param afflictionMultiplier? System.Single
+_G['Components']['ItemComponent'].ApplyStatusEffects = function(type, deltaTime, character, targetLimb, useTarget, user, worldPosition, afflictionMultiplier) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['ItemComponent'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param item Barotrauma.Item
+---@param errorMessages? System.Boolean
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'].Load = function(element, item, errorMessages) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnScaleChanged = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnInventoryChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['ItemComponent'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].Reset = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ItemComponent'].OverrideRequiredItems = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].ParseMsg = function() end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['ItemComponent'].ValidateEventData = function(data) end
+
+---`Method NonPublic Instance`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return Barotrauma.Items.Components.ItemComponent.T
+_G['Components']['ItemComponent'].ExtractEventData = function(data) end
+
+---`Method NonPublic Instance`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@param componentData Barotrauma.Items.Components.T-ref
+---@return System.Boolean
+_G['Components']['ItemComponent'].TryExtractEventData = function(data, componentData) end
+
+---`Method NonPublic Instance`
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param character Barotrauma.Character
+---@param currentObjective Barotrauma.AIObjective
+---@param itemCount System.Int32
+---@param equip System.Boolean
+---@param removeEmpty System.Boolean
+---@param spawnItemIfNotFound? System.Boolean
+---@param dropItemOnDeselected? System.Boolean
+---@return Barotrauma.AIObjectiveContainItem
+_G['Components']['ItemComponent'].AIContainItems = function(container, character, currentObjective, itemCount, equip, removeEmpty, spawnItemIfNotFound, dropItemOnDeselected) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'].GetReplacementOrThis = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['ItemComponent'].NeedsSoundUpdate = function() end
+
+---`Method Public Instance`
+_G['Components']['ItemComponent'].UpdateSounds = function() end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param user? Barotrauma.Character
+_G['Components']['ItemComponent'].PlaySound = function(type, user) end
+
+---`Method Private Instance`
+---@param itemSound Barotrauma.Items.Components.ItemSound
+---@param position Microsoft.Xna.Framework.Vector2
+_G['Components']['ItemComponent'].PlaySound = function(itemSound, position) end
+
+---`Method Public Instance`
+_G['Components']['ItemComponent'].StopLoopingSound = function() end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+_G['Components']['ItemComponent'].StopSounds = function(type) end
+
+---`Method Private Instance`
+---@param sound Barotrauma.Items.Components.ItemSound
+---@return System.Single
+_G['Components']['ItemComponent'].GetSoundVolume = function(sound) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].ShouldDrawHUD = function(character) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'].GetLinkUIToComponent = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['ItemComponent'].DrawHUD = function(spriteBatch, character) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['Components']['ItemComponent'].AddToGUIUpdateList = function(order) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemComponent'].UpdateHUD = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemComponent'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['Components']['ItemComponent'].UpdateEditing = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param editor Barotrauma.SerializableEntityEditor
+_G['Components']['ItemComponent'].CreateEditingHUD = function(editor) end
+
+---`Method Private Instance`
+---@param subElement Barotrauma.ContentXElement
+---@return System.Boolean
+_G['Components']['ItemComponent'].LoadElemProjSpecific = function(subElement) end
+
+---`Method NonPublic Instance`
+_G['Components']['ItemComponent'].ReleaseGuiFrame = function() end
+
+---`Method NonPublic Instance`
+_G['Components']['ItemComponent'].ReloadGuiFrame = function() end
+
+---`Method NonPublic Instance`
+_G['Components']['ItemComponent'].TryCreateDragHandle = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemComponent'].CreateGUI = function() end
+
+---`Method NonPublic Instance`
+---@param buffer Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+---@param waitForMidRoundSync? System.Boolean
+_G['Components']['ItemComponent'].StartDelayedCorrection = function(buffer, sendingTime, waitForMidRoundSync) end
+
+---`Method Private Instance`
+---@param buffer Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+---@param waitForMidRoundSync System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Components']['ItemComponent'].DoDelayedCorrection = function(buffer, sendingTime, waitForMidRoundSync) end
+
+---`Method NonPublic Instance`
+---@param newParent Barotrauma.RectTransform
+_G['Components']['ItemComponent'].OnGUIParentChanged = function(newParent) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemComponent'].OnResolutionChanged = function() end
+
+---`Method Private Instance`
+_G['Components']['ItemComponent'].OnResolutionChangedPrivate = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnPlayerSkillsChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param name Barotrauma.LocalizedString-ref
+---@param description Barotrauma.LocalizedString-ref
+_G['Components']['ItemComponent'].AddTooltipInfo = function(name, description) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97D85240.lua b/Meta/Types/client/_00007FFD97D85240.lua
new file mode 100644
index 0000000..1c301a7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D85240.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.Items.Components.Pickable : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field picker Barotrauma.Character
+---`Field NonPublic Instance`
+---@field allowedSlots (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Private Instance`
+---@field pickTimer System.Single
+---`Field Private Instance`
+---@field activePicker Barotrauma.Character
+---`Field Private Instance`
+---@field pickingCoroutine Barotrauma.CoroutineHandle
+---`Getter Public Instance Virtual`
+---@field IsAttached System.Boolean
+---`Getter Public Instance`
+---@field AllowedSlots (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Getter Public Instance`
+---@field PickingDone System.Boolean
+---`Getter Public Instance`
+---@field Picker Barotrauma.Character
+_G['Components']['Pickable'] = {}
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Pickable'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@overload fun(picker:Barotrauma.Character):(System.Boolean)
+---@param picker Barotrauma.Character
+---@param pickDroppedStack System.Boolean
+---@return System.Boolean
+_G['Components']['Pickable'].OnPicked = function(picker, pickDroppedStack) end
+
+---`Method Private Instance`
+---@param picker Barotrauma.Character
+---@param requiredTime System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Components']['Pickable'].WaitForPick = function(picker, requiredTime) end
+
+---`Method NonPublic Instance`
+---@param picker Barotrauma.Character
+_G['Components']['Pickable'].StopPicking = function(picker) end
+
+---`Method NonPublic Instance`
+---@param character Barotrauma.Character
+_G['Components']['Pickable'].DropConnectedWires = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Pickable'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Pickable'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Pickable'].ClientEventRead = function(msg, sendingTime) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pickable
+_G['Components']['Pickable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pickable
+_G['Components']['Pickable'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97D85F38.lua b/Meta/Types/client/_00007FFD97D85F38.lua
new file mode 100644
index 0000000..144ae4f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D85F38.lua
@@ -0,0 +1,316 @@
+---@meta
+---@class Barotrauma.Items.Components.Door : Barotrauma.Items.Components.Pickable
+---`Field Private Instance`
+---@field convexHull Barotrauma.Lights.ConvexHull
+---`Field Private Instance`
+---@field convexHull2 Barotrauma.Lights.ConvexHull
+---`Field Private Instance`
+---@field shake System.Single
+---`Field Private Instance`
+---@field shakeTimer System.Single
+---`Field Private Instance`
+---@field shakePos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lastConvexHullState System.Single
+---`Field Private Instance`
+---@field linkedGap Barotrauma.Gap
+---`Field Private Instance`
+---@field isOpen System.Boolean
+---`Field Private Instance`
+---@field openState System.Single
+---`Field Private Instance`
+---@field doorSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field weldedSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field brokenSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field scaleBrokenSprite System.Boolean
+---`Field Private Instance`
+---@field fadeBrokenSprite System.Boolean
+---`Field Private Instance`
+---@field autoOrientGap System.Boolean
+---`Field Private Instance`
+---@field isJammed System.Boolean
+---`Field Private Instance`
+---@field isStuck System.Boolean
+---`Field Private Instance`
+---@field resetPredictionTimer System.Single
+---`Field Private Instance`
+---@field toggleCooldownTimer System.Single
+---`Field Private Instance`
+---@field lastUser Barotrauma.Character
+---`Field Private Instance`
+---@field damageSoundCooldown System.Single
+---`Field Private Instance`
+---@field lastBrokenTime System.Double
+---`Field Private Instance`
+---@field doorRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field isBroken System.Boolean
+---`Field Public Instance`
+---@field OutsideSubmarineFixture FarseerPhysics.Dynamics.Fixture
+---`Field Public Instance`
+---@field CanBeWelded System.Boolean
+---`Field Private Instance`
+---@field stuck System.Single
+---`Field Private Instance`
+---@field accessDeniedTxt Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field cannotOpenText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field itemPosErrorShown System.Boolean
+---`Field Private Instance`
+---@field characterPosErrorShown (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Static`
+---@field doorList (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Door)|(Barotrauma.Items.Components.Door[])
+---`Field Private Static`
+---@field StuckReductionOnOpen System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShadowScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field DoorList (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Door)|(fun():(Barotrauma.Items.Components.Door))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsJammed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsStuck System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreSignals System.Boolean
+---`Getter Public Instance`
+---@field CanBeTraversed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Body Barotrauma.PhysicsBody
+---`Getter Private Instance`
+---@field RepairThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stuck System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OpeningSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClosingSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ToggleCoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PredictedState System.Nullable*1System*Boolean
+---`Getter Public Instance`
+---@field LinkedGap Barotrauma.Gap
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---@field IsConvexHullHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Window Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOpen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShouldBeOpen System.Boolean
+---`Getter Public Instance`
+---@field IsClosed System.Boolean
+---`Getter Public Instance`
+---@field IsFullyOpen System.Boolean
+---`Getter Public Instance`
+---@field IsFullyClosed System.Boolean
+---`Getter Public Instance`
+---@field HasWindow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasIntegratedButtons System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ToggleWhenClicked System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OpenState System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Impassable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseBetweenOutpostModules System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BotsShouldKeepOpen System.Boolean
+_G['Components']['Door'] = {}
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['Components']['Door'].GetConvexHullCorners = function(rect) end
+
+---`Method Private Instance`
+_G['Components']['Door'].UpdateConvexHulls = function() end
+
+---`Method Private Instance`
+---@param convexHull Barotrauma.Lights.ConvexHull
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['Components']['Door'].SetVertices = function(convexHull, rect) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Door'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Door'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Components']['Door'].GetLinkedGap = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Door'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['Door'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['Door'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].OnPicked = function(picker) end
+
+---`Method Private Instance`
+---@param actionType Barotrauma.ActionType
+---@param user Barotrauma.Character
+_G['Components']['Door'].ToggleState = function(actionType, user) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].Select = function(character) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param maxPerpendicularDistance? System.Single
+---@return System.Boolean
+_G['Components']['Door'].IsPositionOnWindow = function(position, maxPerpendicularDistance) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Door'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Door'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Door'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['Door'].EnableBody = function() end
+
+---`Method Private Instance`
+_G['Components']['Door'].DisableBody = function() end
+
+---`Method Public Instance`
+_G['Components']['Door'].RefreshLinkedGap = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Door'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Door'].OnScaleChanged = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Door'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Door'].CheckSubmarinesInDoorWay = function() end
+
+---`Method Private Instance`
+_G['Components']['Door'].PushCharactersAway = function() end
+
+---`Method Private Instance`
+---@param c Barotrauma.Character
+---@param body Barotrauma.PhysicsBody
+---@param dir System.Int32
+---@param doorRectSimPos Microsoft.Xna.Framework.Vector2
+---@param doorRectSimSize Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Door'].PushBodyOutOfDoorway = function(c, body, dir, doorRectSimPos, doorRectSimSize) end
+
+---`Method Private Instance`
+_G['Components']['Door'].OnFailedToOpen = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].HasAccess = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Door'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@param open System.Boolean
+---@param isNetworkMessage System.Boolean
+---@param sendNetworkMessage? System.Boolean
+_G['Components']['Door'].TrySetState = function(open, isNetworkMessage, sendNetworkMessage) end
+
+---`Method Private Instance`
+---@param open System.Boolean
+---@param isNetworkMessage System.Boolean
+---@param sendNetworkMessage System.Boolean
+---@param forcedOpen System.Boolean
+_G['Components']['Door'].SetState = function(open, isNetworkMessage, sendNetworkMessage, forcedOpen) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D86778.lua b/Meta/Types/client/_00007FFD97D86778.lua
new file mode 100644
index 0000000..93c93bf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D86778.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.SteeringPath : System.Object
+---`Field Private Instance`
+---@field nodes (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field currentIndex System.Int32
+---`Field Private Instance`
+---@field totalLength System.Nullable*1System*Single
+---`Field Private Instance`
+---@field nodeDistances (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Unreachable System.Boolean
+---`Getter Public Instance`
+---@field TotalLength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasOutdoorsNodes System.Boolean
+---`Getter Public Instance`
+---@field CurrentIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Cost System.Single
+---`Getter Public Instance`
+---@field PrevNode Barotrauma.WayPoint
+---`Getter Public Instance`
+---@field CurrentNode Barotrauma.WayPoint
+---`Getter Public Instance`
+---@field IsAtEndNode System.Boolean
+---`Getter Public Instance`
+---@field Nodes (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Getter Public Instance`
+---@field NextNode Barotrauma.WayPoint
+---`Getter Public Instance`
+---@field Finished System.Boolean
+_G['SteeringPath'] = {}
+
+---`Method Public Instance`
+---@param startIndex? System.Nullable*1System*Int32
+---@param endIndex? System.Nullable*1System*Int32
+---@return System.Single
+_G['SteeringPath'].GetLength = function(startIndex, endIndex) end
+
+---`Method Private Instance`
+_G['SteeringPath'].CalculateTotalLength = function() end
+
+---`Method Public Instance`
+---@param node Barotrauma.WayPoint
+_G['SteeringPath'].AddNode = function(node) end
+
+---`Method Public Instance`
+_G['SteeringPath'].SkipToNextNode = function() end
+
+---`Method Public Instance`
+---@param nodeIndex System.Int32
+_G['SteeringPath'].SkipToNode = function(nodeIndex) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param minSimDistance? System.Single
+---@return Barotrauma.WayPoint
+_G['SteeringPath'].CheckProgress = function(simPosition, minSimDistance) end
+
+---`Method Public Instance`
+_G['SteeringPath'].ClearPath = function() end
+
+---`Constructor Public Instance`
+---@param unreachable? System.Boolean
+---@return Barotrauma.SteeringPath
+_G['SteeringPath'] = function(unreachable) end
+
+---`Constructor Public Instance`
+---@param unreachable? System.Boolean
+---@return Barotrauma.SteeringPath
+_G['SteeringPath'].__new = function(unreachable) end
+
diff --git a/Meta/Types/client/_00007FFD97D869C0.lua b/Meta/Types/client/_00007FFD97D869C0.lua
new file mode 100644
index 0000000..68e3ecf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D869C0.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.HireManager : System.Object
+---`Field Public Instance`
+---@field PendingHires (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---`Field Public Static`
+---@field MaxAvailableCharacters System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvailableCharacters (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+_G['HireManager'] = {}
+
+---`Method Public Instance`
+---@param character Barotrauma.CharacterInfo
+_G['HireManager'].RemoveCharacter = function(character) end
+
+---`Method Public Static`
+---@overload fun(hires:(System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))):(System.Int32)
+---@param hire Barotrauma.CharacterInfo
+---@return System.Int32
+_G['HireManager'].GetSalaryFor = function(hire) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param amount System.Int32
+_G['HireManager'].GenerateCharacters = function(location, amount) end
+
+---`Method Private Instance`
+---@param faction Barotrauma.FactionPrefab
+_G['HireManager'].GenerateFactionCharacters = function(faction) end
+
+---`Method Public Instance`
+_G['HireManager'].Remove = function() end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param newName System.String
+_G['HireManager'].RenameCharacter = function(characterInfo, newName) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HireManager
+_G['HireManager'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HireManager
+_G['HireManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D87048.lua b/Meta/Types/client/_00007FFD97D87048.lua
new file mode 100644
index 0000000..fe9da67
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D87048.lua
@@ -0,0 +1,245 @@
+---@meta
+---@class Barotrauma.MedicalClinic : System.Object
+---`Field Private Instance`
+---@field afflictionRequests (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*AfflictionRequest)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*AfflictionRequest[])
+---`Field Private Instance`
+---@field pendingHealRequests (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*PendingRequest)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*PendingRequest[])
+---`Field Private Instance`
+---@field clearAllRequests (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*CallbackOnlyRequest)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*CallbackOnlyRequest[])
+---`Field Private Instance`
+---@field healAllRequests (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*HealRequest)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*HealRequest[])
+---`Field Private Instance`
+---@field addRequests (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*CallbackOnlyRequest)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*CallbackOnlyRequest[])
+---`Field Private Instance`
+---@field removeRequests (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*CallbackOnlyRequest)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*CallbackOnlyRequest[])
+---`Field Public Instance`
+---@field PendingHeals (System.Collections.Generic.List*1Barotrauma*MedicalClinic*NetCrewMember)|(Barotrauma.MedicalClinic.NetCrewMember[])
+---`Field Public Instance`
+---@field OnUpdate (System.Action)|(fun())
+---`Field Private Instance`
+---@field campaign Barotrauma.CampaignMode
+---`Field Private Instance`
+---@field charactersWithAfflictionChanges (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field processAfflictionChangesTimer System.Single
+---`Field Private Static`
+---@field requestBucket Barotrauma.LeakyBucket
+---`Field Private Static`
+---@field TestInfos (Barotrauma.CharacterInfo-arr)|(Barotrauma.CharacterInfo[])
+---`Field Private Static`
+---@field TestAfflictions (Barotrauma.NetAffliction-arr)|(Barotrauma.MedicalClinic.NetAffliction[])
+---`Field Private Static`
+---@field RateLimitMaxRequests System.Int32
+---`Field Private Static`
+---@field RateLimitExpiry System.Int32
+---`Field Private Static`
+---@field ProcessAfflictionChangesInterval System.Single
+---`Getter Private Instance`
+---@field ui Barotrauma.MedicalClinicUI
+_G['MedicalClinic'] = {}
+
+---`Method Public Instance`
+---@param info Barotrauma.CharacterInfo
+---@param onReceived (System.Action*1Barotrauma*MedicalClinic*AfflictionRequest)|(fun(obj:Barotrauma.MedicalClinic.AfflictionRequest))
+---@return System.Boolean
+_G['MedicalClinic'].RequestAfflictions = function(info, onReceived) end
+
+---`Method Public Instance`
+---@param onReceived (System.Action*1Barotrauma*MedicalClinic*PendingRequest)|(fun(obj:Barotrauma.MedicalClinic.PendingRequest))
+_G['MedicalClinic'].RequestLatestPending = function(onReceived) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['MedicalClinic'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param character Barotrauma.MedicalClinic.NetCrewMember
+---@param affliction Barotrauma.MedicalClinic.NetAffliction
+---@return System.Boolean
+_G['MedicalClinic'].IsAfflictionPending = function(character, affliction) end
+
+---`Method Private Static`
+---@param requestQueue (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*T)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*T[])
+---@param result System.Action
+---@return System.Boolean
+_G['MedicalClinic'].TryDequeue = function(requestQueue, result) end
+
+---`Method Private Static`
+---@param requestQueue (System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*T)|(Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*T[])
+---@param now System.DateTimeOffset
+---@param onTimeout (System.Action*1System*Action*2Barotrauma*MedicalClinic*T)|(fun(obj:(System.Action*1Barotrauma*MedicalClinic*T)|(fun(obj:Barotrauma.MedicalClinic.T))))
+_G['MedicalClinic'].UpdateQueue = function(requestQueue, now, onTimeout) end
+
+---`Method Private Instance`
+---@param e Barotrauma.WalletChangedEvent
+_G['MedicalClinic'].OnMoneyChanged = function(e) end
+
+---`Method Private Static`
+---@return System.DateTimeOffset
+_G['MedicalClinic'].GetTimeout = function() end
+
+---`Method Private Static`
+---@return System.Int32
+_G['MedicalClinic'].GetPing = function() end
+
+---`Method Public Instance`
+---@param onReceived (System.Action*1Barotrauma*MedicalClinic*CallbackOnlyRequest)|(fun(obj:Barotrauma.MedicalClinic.CallbackOnlyRequest))
+---@return System.Boolean
+_G['MedicalClinic'].TreatAllButtonAction = function(onReceived) end
+
+---`Method Public Instance`
+---@param onReceived (System.Action*1Barotrauma*MedicalClinic*HealRequest)|(fun(obj:Barotrauma.MedicalClinic.HealRequest))
+---@return System.Boolean
+_G['MedicalClinic'].HealAllButtonAction = function(onReceived) end
+
+---`Method Public Instance`
+---@param onReceived (System.Action*1Barotrauma*MedicalClinic*CallbackOnlyRequest)|(fun(obj:Barotrauma.MedicalClinic.CallbackOnlyRequest))
+---@return System.Boolean
+_G['MedicalClinic'].ClearAllButtonAction = function(onReceived) end
+
+---`Method Private Instance`
+_G['MedicalClinic'].ClearRequestReceived = function() end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['MedicalClinic'].HealRequestReceived = function(inc) end
+
+---`Method Public Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param onReceived (System.Action*1Barotrauma*MedicalClinic*CallbackOnlyRequest)|(fun(obj:Barotrauma.MedicalClinic.CallbackOnlyRequest))
+---@return System.Boolean
+_G['MedicalClinic'].AddPendingButtonAction = function(crewMember, onReceived) end
+
+---`Method Public Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param affliction Barotrauma.MedicalClinic.NetAffliction
+---@param onReceived (System.Action*1Barotrauma*MedicalClinic*CallbackOnlyRequest)|(fun(obj:Barotrauma.MedicalClinic.CallbackOnlyRequest))
+---@return System.Boolean
+_G['MedicalClinic'].RemovePendingButtonAction = function(crewMember, affliction, onReceived) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param flag Barotrauma.MedicalClinic.MessageFlag
+_G['MedicalClinic'].NewAdditionReceived = function(inc, flag) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param flag Barotrauma.MedicalClinic.MessageFlag
+_G['MedicalClinic'].NewRemovalReceived = function(inc, flag) end
+
+---`Method Private Static`
+---@param info Barotrauma.CharacterInfo
+_G['MedicalClinic'].SendAfflictionRequest = function(info) end
+
+---`Method Private Static`
+_G['MedicalClinic'].SendPendingRequest = function() end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['MedicalClinic'].AfflictionRequestReceived = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['MedicalClinic'].AfflictionUpdateReceived = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['MedicalClinic'].PendingRequestReceived = function(inc) end
+
+---`Method Public Static`
+_G['MedicalClinic'].SendUnsubscribeRequest = function() end
+
+---`Method Private Static`
+---@return Barotrauma.Networking.IWriteMessage
+_G['MedicalClinic'].StartSending = function() end
+
+---`Method Private Static`
+---@param netStruct Barotrauma.INetSerializableStruct
+---@param header Barotrauma.MedicalClinic.NetworkHeader
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+_G['MedicalClinic'].ClientSend = function(netStruct, header, deliveryMethod) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['MedicalClinic'].ClientRead = function(inc) end
+
+---`Method Private Static`
+---@return System.Boolean
+_G['MedicalClinic'].IsOutpostInCombat = function() end
+
+---`Method Private Instance`
+---@param force? System.Boolean
+---@param client? Barotrauma.Networking.Client
+---@return Barotrauma.MedicalClinic.HealRequestResult
+_G['MedicalClinic'].HealAllPending = function(force, client) end
+
+---`Method Private Instance`
+_G['MedicalClinic'].ClearPendingHeals = function() end
+
+---`Method Private Instance`
+_G['MedicalClinic'].AddEverythingToPending = function() end
+
+---`Method Private Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param affliction Barotrauma.MedicalClinic.NetAffliction
+_G['MedicalClinic'].RemovePendingAffliction = function(crewMember, affliction) end
+
+---`Method Private Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+_G['MedicalClinic'].InsertPendingCrewMember = function(crewMember) end
+
+---`Method Public Static`
+---@param affliction Barotrauma.Affliction
+---@return System.Boolean
+_G['MedicalClinic'].IsHealable = function(affliction) end
+
+---`Method Private Instance`
+---@param health Barotrauma.CharacterHealth
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetAffliction)|(Barotrauma.MedicalClinic.NetAffliction[])
+_G['MedicalClinic'].GetAllAfflictions = function(health) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+_G['MedicalClinic'].OnAfflictionCountChanged = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['MedicalClinic'].OnAfflictionCountChangedPrivate = function(character) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['MedicalClinic'].GetTotalCost = function() end
+
+---`Method Private Instance`
+---@param price System.Int32
+---@return System.Int32
+_G['MedicalClinic'].GetAdjustedPrice = function(price) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['MedicalClinic'].GetBalance = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+_G['MedicalClinic'].GetCrewCharacters = function() end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.MedicalClinic
+---@return Barotrauma.MedicalClinic
+_G['MedicalClinic'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.MedicalClinic
+---@return Barotrauma.MedicalClinic
+_G['MedicalClinic'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.MedicalClinic
+---@return Barotrauma.MedicalClinic
+_G['MedicalClinic'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.MedicalClinic
+---@return Barotrauma.MedicalClinic
+_G['MedicalClinic'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D87450.lua b/Meta/Types/client/_00007FFD97D87450.lua
new file mode 100644
index 0000000..b10ae9c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D87450.lua
@@ -0,0 +1,142 @@
+---@meta
+---@class Barotrauma.ReadyCheck : System.Object
+---`Field Private Instance`
+---@field lastSecond System.Int32
+---`Field Private Instance`
+---@field msgBox Barotrauma.GUIMessageBox
+---`Field Private Instance`
+---@field resultsBox Barotrauma.GUIMessageBox
+---`Field Private Instance`
+---@field endTime System.DateTime
+---`Field Private Instance`
+---@field startTime System.DateTime
+---`Field Public Instance`
+---@field Clients (System.Collections.Generic.Dictionary*1System*Byte*1Barotrauma*ReadyStatus)|({[System.Byte]:(Barotrauma.ReadyStatus)})
+---`Field Public Instance`
+---@field IsFinished System.Boolean
+---`Field Private Static`
+---@field readyCheckHeader Barotrauma.LocalizedString
+---`Field Private Static`
+---@field noButton Barotrauma.LocalizedString
+---`Field Private Static`
+---@field yesButton Barotrauma.LocalizedString
+---`Field Private Static`
+---@field closeButton Barotrauma.LocalizedString
+---`Field Public Static`
+---@field ReadyCheckCooldown System.DateTime
+---`Field Private Static`
+---@field TimerData System.String
+---`Field Private Static`
+---@field PromptData System.String
+---`Field Private Static`
+---@field ResultData System.String
+---`Field Private Static`
+---@field UserListData System.String
+---`Field Private Static`
+---@field ReadySpriteData System.String
+_G['ReadyCheck'] = {}
+
+---`Method Private Static`
+---@param name System.String
+---@return Barotrauma.LocalizedString
+_G['ReadyCheck'].ReadyCheckBody = function(name) end
+
+---`Method Private Static`
+---@param ready System.Int32
+---@param total System.Int32
+---@return Barotrauma.LocalizedString
+_G['ReadyCheck'].ReadyCheckStatus = function(ready, total) end
+
+---`Method Private Static`
+---@param seconds System.Int32
+---@return Barotrauma.LocalizedString
+_G['ReadyCheck'].ReadyCheckPleaseWait = function(seconds) end
+
+---`Method Public Static`
+---@param msgBox Barotrauma.GUIComponent
+---@return System.Boolean
+_G['ReadyCheck'].IsReadyCheck = function(msgBox) end
+
+---`Method Private Instance`
+---@param author System.String
+_G['ReadyCheck'].CreateMessageBox = function(author) end
+
+---`Method Private Instance`
+_G['ReadyCheck'].CreateResultsMessage = function() end
+
+---`Method Private Instance`
+_G['ReadyCheck'].UpdateBar = function() end
+
+---`Method Private Static`
+_G['ReadyCheck'].CloseLingeringPopups = function() end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['ReadyCheck'].ClientRead = function(inc) end
+
+---`Method Private Instance`
+---@param id System.Byte
+---@param status Barotrauma.ReadyStatus
+_G['ReadyCheck'].UpdateState = function(id, status) end
+
+---`Method Private Static`
+---@param image Barotrauma.GUIImage
+---@param status Barotrauma.ReadyStatus
+_G['ReadyCheck'].UpdateStatusIcon = function(image, status) end
+
+---`Method Private Static`
+---@param status Barotrauma.ReadyStatus
+_G['ReadyCheck'].SendState = function(status) end
+
+---`Method Public Static`
+_G['ReadyCheck'].CreateReadyCheck = function() end
+
+---`Method Private Instance`
+_G['ReadyCheck'].EndReadyCheck = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['ReadyCheck'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[])):Barotrauma.ReadyCheck
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[])):Barotrauma.ReadyCheck
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'].__new = function() end
+
+---`Constructor Private Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[])):Barotrauma.ReadyCheck
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[])):Barotrauma.ReadyCheck
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[])):Barotrauma.ReadyCheck
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[])):Barotrauma.ReadyCheck
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D87C88.lua b/Meta/Types/client/_00007FFD97D87C88.lua
new file mode 100644
index 0000000..b766ae9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D87C88.lua
@@ -0,0 +1,299 @@
+---@meta
+---@class Barotrauma.Mission : System.Object
+---`Field Private Instance`
+---@field shownMessages (System.Collections.Generic.List*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Public Instance`
+---@field Prefab Barotrauma.MissionPrefab
+---`Field Private Instance`
+---@field completed System.Boolean
+---`Field NonPublic Instance`
+---@field failed System.Boolean
+---`Field NonPublic Instance`
+---@field level Barotrauma.Level
+---`Field NonPublic Instance`
+---@field state System.Int32
+---`Field Private Instance`
+---@field completeCheckDataAction Barotrauma.CheckDataAction
+---`Field Public Instance`
+---@field Headers (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Public Instance`
+---@field Messages (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field finalReward System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field successMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field failureMessage Barotrauma.LocalizedString
+---`Field NonPublic Instance`
+---@field description Barotrauma.LocalizedString
+---`Field NonPublic Instance`
+---@field descriptionWithoutReward Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field OriginLocation Barotrauma.Location
+---`Field Public Instance`
+---@field Locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---`Field Private Instance`
+---@field delayedTriggerEvents (System.Collections.Generic.List*1Barotrauma*Mission*DelayedTriggerEvent)|(Barotrauma.Mission.DelayedTriggerEvent[])
+---`Field Public Instance`
+---@field OnMissionStateChanged (System.Action*1Barotrauma*Mission)|(fun(obj:Barotrauma.Mission))
+---`Getter Public Instance`
+---@field ShownMessages (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---`Getter Public Instance`
+---@field DisplayTargetHudIcons System.Boolean
+---`Getter Public Instance Virtual`
+---@field HudIconTargets (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+---`Getter Public Instance Abstract Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimesAttempted System.Int32
+---`Getter NonPublic Static`
+---@field IsClient System.Boolean
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field SuccessMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field FailureMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field AllowUndocking System.Boolean
+---`Getter Public Instance Virtual`
+---@field Reward System.Int32
+---`Getter Public Instance`
+---@field ReputationRewards (System.Collections.Immutable.ImmutableList*1Barotrauma*MissionPrefab*ReputationReward)|(Barotrauma.MissionPrefab.ReputationReward[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Completed System.Boolean
+---`Getter Public Instance`
+---@field Failed System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowRespawning System.Boolean
+---`Getter Public Instance Virtual`
+---@field TeamCount System.Int32
+---`Getter Public Instance Virtual`
+---@field EnemySubmarineInfo Barotrauma.SubmarineInfo
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance`
+---@field SonarIconIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Difficulty System.Nullable*1System*Int32
+_G['Mission'] = {}
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Color
+_G['Mission'].GetDifficultyColor = function() end
+
+---`Method Public Static`
+---@param difficulty System.Int32
+---@return Microsoft.Xna.Framework.Color
+_G['Mission'].GetDifficultyColor = function(difficulty) end
+
+---`Method NonPublic Instance`
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.LocalizedString
+_G['Mission'].GetRewardAmountText = function(sub) end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.RichString
+_G['Mission'].GetMissionRewardText = function(sub) end
+
+---`Method Public Instance`
+---@return Barotrauma.RichString
+_G['Mission'].GetReputationRewardText = function() end
+
+---`Method Private Instance`
+---@param header Barotrauma.LocalizedString
+---@param message Barotrauma.LocalizedString
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Mission'].ShowMessageBoxWhenRoundSummaryIsNotActive = function(header, message) end
+
+---`Method NonPublic Instance`
+---@param header Barotrauma.LocalizedString
+---@param message Barotrauma.LocalizedString
+_G['Mission'].CreateMessageBox = function(header, message) end
+
+---`Method Public Instance`
+---@return Barotrauma.Identifier
+_G['Mission'].GetOverrideMusicType = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['Mission'].ClientRead = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['Mission'].ClientReadInitial = function(msg) end
+
+---`Method Public Instance`
+---@param message Barotrauma.LocalizedString
+---@param sub Barotrauma.Submarine
+---@param replaceReward? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['Mission'].ReplaceVariablesInMissionMessage = function(message, sub, replaceReward) end
+
+---`Method Public Instance Virtual`
+---@param level Barotrauma.LevelData
+_G['Mission'].SetLevel = function(level) end
+
+---`Method Public Static`
+---@overload fun(locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), seed:System.String, requireCorrectLocationType:System.Boolean, missionTypes:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), isSinglePlayer?:System.Boolean, difficultyLevel?:System.Nullable*1System*Single):(Barotrauma.Mission)
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param rand Barotrauma.MTRandom
+---@param requireCorrectLocationType System.Boolean
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param isSinglePlayer? System.Boolean
+---@param difficultyLevel? System.Nullable*1System*Single
+---@return Barotrauma.Mission
+_G['Mission'].LoadRandom = function(locations, rand, requireCorrectLocationType, missionTypes, isSinglePlayer, difficultyLevel) end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['Mission'].GetBaseReward = function(sub) end
+
+---`Method Public Instance`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['Mission'].GetReward = function(sub) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+_G['Mission'].Start = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['Mission'].StartMissionSpecific = function(level) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Mission'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['Mission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@param missionState System.Int32
+_G['Mission'].ShowMessage = function(missionState) end
+
+---`Method Private Instance`
+---@param missionState System.Int32
+_G['Mission'].ShowMessageProjSpecific = function(missionState) end
+
+---`Method NonPublic Instance Virtual`
+---@param message Barotrauma.LocalizedString
+---@param color? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['Mission'].ModifyMessage = function(message, color) end
+
+---`Method Private Instance`
+---@param state System.Int32
+_G['Mission'].TryTriggerEvents = function(state) end
+
+---`Method Private Instance`
+---@param trigger Barotrauma.MissionPrefab.TriggerEvent
+_G['Mission'].TryTriggerEvent = function(trigger) end
+
+---`Method Private Instance`
+---@param trigger Barotrauma.MissionPrefab.TriggerEvent
+_G['Mission'].TriggerEvent = function(trigger) end
+
+---`Method Public Instance`
+_G['Mission'].End = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Boolean
+_G['Mission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['Mission'].EndMissionSpecific = function(completed) end
+
+---`Method Public Instance`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['Mission'].GetFinalReward = function(sub) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.Submarine
+_G['Mission'].CalculateFinalReward = function(sub) end
+
+---`Method Private Instance`
+_G['Mission'].GiveReward = function() end
+
+---`Method Private Instance`
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param experienceGain System.Int32
+_G['Mission'].DistributeExperienceToCrew = function(crew, experienceGain) end
+
+---`Method Public Static`
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param rewardDistribution? System.Int32
+---@return System.Int32
+_G['Mission'].GetRewardDistibutionSum = function(crew, rewardDistribution) end
+
+---`Method Public Static`
+---@param rewardDistribution System.Int32
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param reward Barotrauma.Option*1System*Int32
+---@return System.ValueTuple*1System*Int32*1System*Int32*1System*Single
+_G['Mission'].GetRewardShare = function(rewardDistribution, crew, reward) end
+
+---`Method NonPublic Instance`
+---@param change Barotrauma.LocationTypeChange
+_G['Mission'].ChangeLocationType = function(change) end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['Mission'].AdjustLevelData = function(levelData) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.HumanPrefab
+_G['Mission'].GetHumanPrefabFromElement = function(element) end
+
+---`Method NonPublic Static`
+---@param humanPrefab Barotrauma.HumanPrefab
+---@param characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---@param characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---@param submarine Barotrauma.Submarine
+---@param teamType Barotrauma.CharacterTeamType
+---@param positionToStayIn? Barotrauma.ISpatialEntity
+---@param humanPrefabRandSync? Barotrauma.Rand.RandSync
+---@return Barotrauma.Character
+_G['Mission'].CreateHuman = function(humanPrefab, characters, characterItems, submarine, teamType, positionToStayIn, humanPrefabRandSync) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.ItemPrefab
+_G['Mission'].FindItemPrefab = function(element) end
+
+---`Method NonPublic Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param cargoRoomSub Barotrauma.Submarine-ref
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Mission'].GetCargoSpawnPosition = function(itemPrefab, cargoRoomSub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Mission
+_G['Mission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Mission
+_G['Mission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D881A8.lua b/Meta/Types/client/_00007FFD97D881A8.lua
new file mode 100644
index 0000000..f0407ca
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D881A8.lua
@@ -0,0 +1,106 @@
+---@meta
+---@class Barotrauma.AbandonedOutpostMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field characterConfig System.Xml.Linq.XElement
+---`Field NonPublic Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field NonPublic Instance`
+---@field requireKill (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field NonPublic Instance`
+---@field requireRescue (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field itemTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field itemConfig System.Xml.Linq.XElement
+---`Field Private Instance`
+---@field items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field hostagesKilledMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field endTimer System.Single
+---`Field Private Instance`
+---@field allowOrderingRescuees System.Boolean
+---`Field NonPublic Instance`
+---@field wasDocked System.Boolean
+---`Field NonPublic Static`
+---@field HostagesKilledState System.Int32
+---`Field Private Static`
+---@field EndDelay System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State System.Int32
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowRespawning System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowUndocking System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Private Instance`
+---@field Targets (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+_G['AbandonedOutpostMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['AbandonedOutpostMission'].ClientReadInitial = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['AbandonedOutpostMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].InitItems = function(submarine) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].InitCharacters = function(submarine) end
+
+---`Method Private Instance`
+---@param humanPrefab Barotrauma.HumanPrefab
+---@param element System.Xml.Linq.XElement
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].LoadHuman = function(humanPrefab, element, submarine) end
+
+---`Method Private Instance`
+---@param monsterPrefab Barotrauma.CharacterPrefab
+---@param element System.Xml.Linq.XElement
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].LoadMonster = function(monsterPrefab, element, submarine) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param element System.Xml.Linq.XElement
+_G['AbandonedOutpostMission'].InitCharacter = function(character, element) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AbandonedOutpostMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AbandonedOutpostMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['AbandonedOutpostMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.AbandonedOutpostMission
+_G['AbandonedOutpostMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.AbandonedOutpostMission
+_G['AbandonedOutpostMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D88708.lua b/Meta/Types/client/_00007FFD97D88708.lua
new file mode 100644
index 0000000..9d66852
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D88708.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.EliminateTargetsMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field targetItemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field targetEnemyIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field minEnemyCount System.Int32
+---`Field Private Instance`
+---@field existingTargets (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field spawnedTargets (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field allTargets (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Public Instance`
+---@field TargetSubType Barotrauma.SubmarineType
+---`Field Public Instance`
+---@field PrioritizeThalamus System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field TargetSub Barotrauma.Submarine
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['EliminateTargetsMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['EliminateTargetsMission'].ClientReadInitial = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['EliminateTargetsMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['EliminateTargetsMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['EliminateTargetsMission'].AllTargetsEliminated = function() end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['EliminateTargetsMission'].IsItemDestroyed = function(item) end
+
+---`Method Private Static`
+---@param enemy Barotrauma.Character
+---@return System.Boolean
+_G['EliminateTargetsMission'].IsEnemyDefeated = function(enemy) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['EliminateTargetsMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['EliminateTargetsMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EliminateTargetsMission
+_G['EliminateTargetsMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EliminateTargetsMission
+_G['EliminateTargetsMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D88C30.lua b/Meta/Types/client/_00007FFD97D88C30.lua
new file mode 100644
index 0000000..3f40525
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D88C30.lua
@@ -0,0 +1,87 @@
+---@meta
+---@class Barotrauma.EndMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field bossPrefab Barotrauma.CharacterPrefab
+---`Field Private Instance`
+---@field minionPrefab Barotrauma.CharacterPrefab
+---`Field Private Instance`
+---@field spawnPointTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field bossSpawnPoint Barotrauma.WayPoint
+---`Field Private Instance`
+---@field destructibleItemTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field endCinematicSound System.String
+---`Field Private Instance`
+---@field minions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field minionCount System.Int32
+---`Field Private Instance`
+---@field minionScatter System.Single
+---`Field Private Instance`
+---@field boss Barotrauma.Character
+---`Field Private Instance`
+---@field projectilePrefab Barotrauma.ItemPrefab
+---`Field Private Instance`
+---@field projectileTimer System.Single
+---`Field Private Instance`
+---@field startCinematicDistance System.Single
+---`Field Private Instance`
+---@field endCinematicTimer System.Single
+---`Field Private Instance`
+---@field destructibleItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field NonPublic Instance`
+---@field wakeUpCinematicDelay System.Single
+---`Field NonPublic Instance`
+---@field bossWakeUpDelay System.Single
+---`Field NonPublic Instance`
+---@field cameraWaitDuration System.Single
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State System.Int32
+---`Getter Private Instance`
+---@field Phase Barotrauma.EndMission.MissionPhase
+_G['EndMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['EndMission'].ClientReadInitial = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['EndMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['EndMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+_G['EndMission'].UpdateProjSpecific = function() end
+
+---`Method Private Instance`
+_G['EndMission'].OnStateChangedProjSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['EndMission'].DetermineCompleted = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EndMission
+_G['EndMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EndMission
+_G['EndMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D89680.lua b/Meta/Types/client/_00007FFD97D89680.lua
new file mode 100644
index 0000000..a4eacbe
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D89680.lua
@@ -0,0 +1,51 @@
+---@meta
+---@class Barotrauma.BeaconMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field swarmSpawned System.Boolean
+---`Field Private Instance`
+---@field monsterSets (System.Collections.Generic.List*1Barotrauma*BeaconMission*MonsterSet)|(Barotrauma.BeaconMission.MonsterSet[])
+---`Field Private Instance`
+---@field sonarLabel Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['BeaconMission'] = {}
+
+---`Method Private Instance`
+---@param monsterElement System.Xml.Linq.XElement
+---@param set Barotrauma.BeaconMission.MonsterSet
+_G['BeaconMission'].LoadMonsters = function(monsterElement, set) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['BeaconMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['BeaconMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['BeaconMission'].EndMissionSpecific = function(completed) end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['BeaconMission'].AdjustLevelData = function(levelData) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.BeaconMission
+_G['BeaconMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.BeaconMission
+_G['BeaconMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D89A58.lua b/Meta/Types/client/_00007FFD97D89A58.lua
new file mode 100644
index 0000000..0c80b54
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D89A58.lua
@@ -0,0 +1,92 @@
+---@meta
+---@class Barotrauma.CargoMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field parentInventoryIDs (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*UInt16)|({[Barotrauma.Item]:(System.UInt16)})
+---`Field Private Instance`
+---@field inventorySlotIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32)|({[Barotrauma.Item]:(System.Int32)})
+---`Field Private Instance`
+---@field parentItemContainerIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Byte)|({[Barotrauma.Item]:(System.Byte)})
+---`Field Private Instance`
+---@field requiredDeliveryAmount System.Single
+---`Field Private Instance`
+---@field itemsToSpawn (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*ContentXElement*2Barotrauma*Items*Components*ItemContainer)|(System.ValueTuple*1Barotrauma*ContentXElement*1Barotrauma*Items*Components*ItemContainer[])
+---`Field Private Instance`
+---@field rewardPerCrate System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field calculatedReward System.Int32
+---`Field Private Instance`
+---@field maxItemCount System.Int32
+---`Field Private Instance`
+---@field currentSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field nextRoundSubInfo Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field previouslySelectedMissions (System.Collections.Generic.List*1Barotrauma*CargoMission)|(Barotrauma.CargoMission[])
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+_G['CargoMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.RichString
+_G['CargoMission'].GetMissionRewardText = function(sub) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['CargoMission'].ClientReadInitial = function(msg) end
+
+---`Method Private Instance`
+_G['CargoMission'].DetermineCargo = function() end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['CargoMission'].GetBaseReward = function(sub) end
+
+---`Method Private Instance`
+_G['CargoMission'].InitItems = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param parent Barotrauma.Item
+_G['CargoMission'].LoadItemAsChild = function(element, parent) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['CargoMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['CargoMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['CargoMission'].EndMissionSpecific = function(completed) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['CargoMission'].IsItemDelivered = function(item) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.CargoMission
+_G['CargoMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.CargoMission
+_G['CargoMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8A208.lua b/Meta/Types/client/_00007FFD97D8A208.lua
new file mode 100644
index 0000000..8c34145
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8A208.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.CombatMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field clientKills (System.Collections.Generic.Dictionary*1System*Byte*1System*Int32)|({[System.Byte]:(System.Int32)})
+---`Field Private Instance`
+---@field clientDeaths (System.Collections.Generic.Dictionary*1System*Byte*1System*Int32)|({[System.Byte]:(System.Int32)})
+---`Field Private Instance`
+---@field botKills (System.Collections.Generic.Dictionary*1System*UInt16*1System*Int32)|({[System.UInt16]:(System.Int32)})
+---`Field Private Instance`
+---@field botDeaths (System.Collections.Generic.Dictionary*1System*UInt16*1System*Int32)|({[System.UInt16]:(System.Int32)})
+---`Field Private Instance`
+---@field subs (Barotrauma.Submarine-arr)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field descriptions (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field allowRespawning System.Boolean
+---`Field Private Instance`
+---@field winCondition Barotrauma.CombatMission.WinCondition
+---`Field Private Instance`
+---@field targetSubmarine Barotrauma.Submarine
+---`Field Private Instance`
+---@field targetSubmarineSonarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field PointsPerKill System.Int32
+---`Field Public Instance`
+---@field Scores (System.Int32-arr)|(System.Int32[])
+---`Field Private Static`
+---@field teamNames (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance Virtual`
+---@field AllowRespawning System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetSubmarineType Barotrauma.TagAction.SubType
+---`Getter Public Instance`
+---@field WinScore System.Int32
+---`Getter Public Instance`
+---@field HasWinScore System.Boolean
+---`Getter Public Static`
+---@field Winner Barotrauma.CharacterTeamType
+---`Getter Public Instance Virtual`
+---@field SuccessMessage Barotrauma.LocalizedString
+_G['CombatMission'] = {}
+
+---`Method Public Static`
+---@param teamID Barotrauma.CharacterTeamType
+---@return Microsoft.Xna.Framework.Color
+_G['CombatMission'].GetTeamColor = function(teamID) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Int32
+_G['CombatMission'].GetClientKillCount = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Int32
+_G['CombatMission'].GetClientDeathCount = function(client) end
+
+---`Method Public Instance`
+---@param botInfo Barotrauma.CharacterInfo
+---@return System.Int32
+_G['CombatMission'].GetBotKillCount = function(botInfo) end
+
+---`Method Public Instance`
+---@param botInfo Barotrauma.CharacterInfo
+---@return System.Int32
+_G['CombatMission'].GetBotDeathCount = function(botInfo) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['CombatMission'].ClientRead = function(msg) end
+
+---`Method Public Static`
+---@param teamID Barotrauma.CharacterTeamType
+---@return Barotrauma.LocalizedString
+_G['CombatMission'].GetTeamName = function(teamID) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CombatMission'].IsInWinningTeam = function(character) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['CombatMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['CombatMission'].DetermineCompleted = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D8A6C0.lua b/Meta/Types/client/_00007FFD97D8A6C0.lua
new file mode 100644
index 0000000..ad5da07
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8A6C0.lua
@@ -0,0 +1,111 @@
+---@meta
+---@class Barotrauma.EscortMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field characterConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field characterStatusEffects (System.Collections.Generic.Dictionary*1Barotrauma*HumanPrefab*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.HumanPrefab]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field baseEscortedCharacters System.Int32
+---`Field Private Instance`
+---@field scalingEscortedCharacters System.Single
+---`Field Private Instance`
+---@field terroristChance System.Single
+---`Field Private Instance`
+---@field calculatedReward System.Int32
+---`Field Private Instance`
+---@field missionSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field vipCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field terroristCharacters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field terroristsShouldAct System.Boolean
+---`Field Private Instance`
+---@field terroristDistanceSquared System.Single
+---`Field Private Instance`
+---@field terroristAnnounceDialogTag System.String
+---`Field Private Static`
+---@field TerroristTeamChangeIdentifier System.String
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+_G['EscortMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['EscortMission'].ClientReadInitial = function(msg) end
+
+---`Method Private Instance`
+_G['EscortMission'].CalculateReward = function() end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['EscortMission'].GetBaseReward = function(sub) end
+
+---`Method Private Instance`
+---@param inMission? System.Boolean
+---@return System.Int32
+_G['EscortMission'].CalculateScalingEscortedCharacterCount = function(inMission) end
+
+---`Method Private Instance`
+_G['EscortMission'].InitEscort = function() end
+
+---`Method Private Instance`
+_G['EscortMission'].InitCharacters = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['EscortMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+_G['EscortMission'].TryToTriggerTerrorists = function() end
+
+---`Method Private Instance`
+---@param characterList (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return System.Boolean
+_G['EscortMission'].NonTerroristsStillAlive = function(characterList) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['EscortMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EscortMission'].Survived = function(character) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EscortMission'].IsAlive = function(character) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['EscortMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['EscortMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EscortMission
+_G['EscortMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EscortMission
+_G['EscortMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8A948.lua b/Meta/Types/client/_00007FFD97D8A948.lua
new file mode 100644
index 0000000..39605e1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8A948.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.GoToMission : Barotrauma.Mission
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+_G['GoToMission'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GoToMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['GoToMission'].DetermineCompleted = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.GoToMission
+_G['GoToMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.GoToMission
+_G['GoToMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8C410.lua b/Meta/Types/client/_00007FFD97D8C410.lua
new file mode 100644
index 0000000..f4280b6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8C410.lua
@@ -0,0 +1,103 @@
+---@meta
+---@class Barotrauma.MineralMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field resourceAmounts (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32)|({[Barotrauma.Identifier]:(System.Int32)})
+---`Field Private Instance`
+---@field spawnedResources (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field relevantLevelResources (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Item-arr)|({[Barotrauma.Identifier]:((Barotrauma.Item-arr)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field missionClusterPositions (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Microsoft*Xna*Framework*Vector2)|(System.ValueTuple*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field caves (System.Collections.Generic.HashSet*1Barotrauma*Level*Cave)|(Barotrauma.Level.Cave[])
+---`Field Private Instance`
+---@field positionType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field resourceHandoverAmount System.Single
+---`Field Public Static`
+---@field ValidPositionTypes (System.Collections.Immutable.ImmutableArray*1Barotrauma*Level*PositionType)|(Barotrauma.Level.PositionType[])
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State System.Int32
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance Virtual`
+---@field SuccessMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field FailureMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+_G['MineralMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['MineralMission'].ClientReadInitial = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['MineralMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['MineralMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['MineralMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['MineralMission'].EndMissionSpecific = function(completed) end
+
+---`Method Private Instance`
+_G['MineralMission'].FindRelevantLevelResources = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['MineralMission'].EnoughHaveBeenCollected = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['MineralMission'].HasBeenCollected = function(item) end
+
+---`Method Private Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return System.Boolean
+_G['MineralMission'].AnyAreUncollected = function(items) end
+
+---`Method Private Instance`
+_G['MineralMission'].CalculateMissionClusterPositions = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param message Barotrauma.LocalizedString
+---@param color? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['MineralMission'].ModifyMessage = function(message, color) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D8E128.lua b/Meta/Types/client/_00007FFD97D8E128.lua
new file mode 100644
index 0000000..d415bd2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8E128.lua
@@ -0,0 +1,593 @@
+---@meta
+---@class Barotrauma.Level : Barotrauma.Entity
+---`Field Private Instance`
+---@field renderer Barotrauma.LevelRenderer
+---`Field Private Instance`
+---@field backgroundCreatureManager Barotrauma.BackgroundCreatureManager
+---`Field Private Instance`
+---@field cellGrid (System.Collections.Generic.List)|((System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])[])
+---`Field Private Instance`
+---@field cells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---`Field Public Instance`
+---@field AbyssIslands (System.Collections.Generic.List*1Barotrauma*Level*AbyssIsland)|(Barotrauma.Level.AbyssIsland[])
+---`Field Public Instance`
+---@field siteCoordsX (System.Collections.Generic.List*1System*Double)|(System.Double[])
+---`Field Public Instance`
+---@field siteCoordsY (System.Collections.Generic.List*1System*Double)|(System.Double[])
+---`Field Public Instance`
+---@field distanceField (System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Point*2System*Double)|(System.ValueTuple*1Microsoft*Xna*Framework*Point*1System*Double[])
+---`Field Private Instance`
+---@field startPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field endPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field borders Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field bottomPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Point)|(Microsoft.Xna.Framework.Point[])
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field startExitPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field endExitPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field beaconSonar Barotrauma.Items.Components.Sonar
+---`Field Private Instance`
+---@field preSelectedStartOutpost Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field preSelectedEndOutpost Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field LevelData Barotrauma.LevelData
+---`Field Private Instance`
+---@field equalityCheckValues (System.Collections.Generic.Dictionary*1Barotrauma*Level*LevelGenStage*1System*Int32)|({[Barotrauma.Level.LevelGenStage]:(System.Int32)})
+---`Field Private Instance`
+---@field isRandomHashSet System.Boolean
+---`Field Private Instance`
+---@field _randomHash System.Int32
+---`Field Private Instance`
+---@field previousSeed System.String
+---`Field Private Instance`
+---@field tempCells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---`Field Private Instance`
+---@field positionHistory (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Vector2)|({[System.String]:((System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[]))})
+---`Field Private Instance`
+---@field blockedRects (System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Rectangle)|({[Barotrauma.Submarine]:((System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[]))})
+---`Field Private Static`
+---@field loaded Barotrauma.Level
+---`Field Public Static`
+---@field ForcedDifficulty System.Nullable*1System*Single
+---`Field Private Static`
+---@field nextPathPointId System.Int32
+---`Field Public Static`
+---@field MaxEntityDepth System.Int32
+---`Field Public Static`
+---@field ShaftHeight System.Single
+---`Field Public Static`
+---@field OutsideBoundsCurrentMargin System.Single
+---`Field Public Static`
+---@field OutsideBoundsCurrentMarginExponential System.Single
+---`Field Public Static`
+---@field OutsideBoundsCurrentHardLimit System.Single
+---`Field Public Static`
+---@field MaxSubmarineWidth System.Int32
+---`Field Public Static`
+---@field ExitDistance System.Single
+---`Field Public Static`
+---@field GridCellSize System.Int32
+---`Field Private Static`
+---@field NetworkUpdateInterval System.Single
+---`Field Public Static`
+---@field DefaultRealWorldCrushDepth System.Single
+---`Getter Public Instance`
+---@field BackgroundCreatureManager Barotrauma.BackgroundCreatureManager
+---`Getter Public Instance`
+---@field Renderer Barotrauma.LevelRenderer
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Loaded Barotrauma.Level
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AbyssArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field AbyssStart System.Int32
+---`Getter Public Instance`
+---@field AbyssEnd System.Int32
+---`Getter Public Instance`
+---@field StartPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field StartExitPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field EndPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field EndExitPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BottomPos System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SeaFloorTopPos System.Int32
+---`Getter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---@field RealWorldCrushDepth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SeaFloor Barotrauma.LevelWall
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Ruins (System.Collections.Generic.List*1Barotrauma*RuinGeneration*Ruin)|(Barotrauma.RuinGeneration.Ruin[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Wrecks (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BeaconStation Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExtraWalls (System.Collections.Generic.List*1Barotrauma*LevelWall)|(Barotrauma.LevelWall[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnsyncedExtraWalls (System.Collections.Generic.List*1Barotrauma*LevelWall)|(Barotrauma.LevelWall[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tunnels (System.Collections.Generic.List*1Barotrauma*Level*Tunnel)|(Barotrauma.Level.Tunnel[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Caves (System.Collections.Generic.List*1Barotrauma*Level*Cave)|(Barotrauma.Level.Cave[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PositionsOfInterest (System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition)|(Barotrauma.Level.InterestingPosition[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartOutpost Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndOutpost Barotrauma.Submarine
+---`Getter Public Instance`
+---@field EqualityCheckValues (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Level*LevelGenStage*1System*Int32)|({[Barotrauma.Level.LevelGenStage]:(System.Int32)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EntitiesBeforeGenerate (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EntityCountBeforeGenerate System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EntityCountAfterGenerate System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TopBarrier FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BottomBarrier FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LevelObjectManager Barotrauma.LevelObjectManager
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Generating System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Mirrored System.Boolean
+---`Getter Public Instance`
+---@field Seed System.String
+---`Getter Public Instance`
+---@field Difficulty System.Single
+---`Getter Public Instance`
+---@field Type Barotrauma.LevelData.LevelType
+---`Getter Public Instance`
+---@field IsEndBiome System.Boolean
+---`Getter Public Static`
+---@field IsLoadedOutpost System.Boolean
+---`Getter Public Static`
+---@field IsLoadedFriendlyOutpost System.Boolean
+---`Getter Public Instance`
+---@field GenerationParams Barotrauma.LevelGenerationParams
+---`Getter Public Instance`
+---@field BackgroundTextureColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field BackgroundColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field WallColor Microsoft.Xna.Framework.Color
+---`Getter Private Instance`
+---@field RandomHash System.Int32
+---`Getter Public Instance`
+---@field PathPoints (System.Collections.Generic.List*1Barotrauma*Level*PathPoint)|(Barotrauma.Level.PathPoint[])
+---`Getter Public Instance`
+---@field AbyssResources (System.Collections.Generic.List*1Barotrauma*Level*ClusterLocation)|(Barotrauma.Level.ClusterLocation[])
+_G['Level'] = {}
+
+---`Method Private Instance`
+_G['Level'].GenerateVoronoiSites = function() end
+
+---`Method Private Instance`
+_G['Level'].ResetRandomSeed = function() end
+
+---`Method Private Instance`
+---@param startPosition Microsoft.Xna.Framework.Point
+---@param endPosition Microsoft.Xna.Framework.Point
+---@param pathBorders Microsoft.Xna.Framework.Rectangle
+---@param parentTunnel Barotrauma.Level.Tunnel
+---@param variance System.Single
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Point)|(Microsoft.Xna.Framework.Point[])
+_G['Level'].GeneratePathNodes = function(startPosition, endPosition, pathBorders, parentTunnel, variance) end
+
+---`Method Private Instance`
+---@param holeProbability System.Single
+---@param limits Microsoft.Xna.Framework.Rectangle
+---@param submarineSize System.Int32
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].CreateHoles = function(holeProbability, limits, submarineSize) end
+
+---`Method Private Instance`
+---@param pathCells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---@param minWidth System.Single
+_G['Level'].EnlargePath = function(pathCells, minWidth) end
+
+---`Method Private Instance`
+---@param tunnel Barotrauma.Level.Tunnel
+---@param parentTunnel Barotrauma.Level.Tunnel
+_G['Level'].GenerateWaypoints = function(tunnel, parentTunnel) end
+
+---`Method Private Instance`
+---@overload fun(tunnel:Barotrauma.Level.Tunnel, parentTunnel:Barotrauma.Level.Tunnel)
+---@param wp1 Barotrauma.WayPoint
+---@param wp2 Barotrauma.WayPoint
+---@param interval System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['Level'].ConnectWaypoints = function(wp1, wp2, interval) end
+
+---`Method Private Static`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2, otherTunnel:Barotrauma.Level.Tunnel):(Barotrauma.WayPoint)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param waypoints (System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint)|(fun():(Barotrauma.WayPoint))
+---@param filter? (System.Func*1Barotrauma*WayPoint*1System*Boolean)|(fun(arg:Barotrauma.WayPoint):(System.Boolean))
+---@return Barotrauma.WayPoint
+_G['Level'].FindClosestWayPoint = function(worldPosition, waypoints, filter) end
+
+---`Method Private Instance`
+---@param emptyCells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---@param minDistance System.Single
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetTooCloseCells = function(emptyCells, minDistance) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param minDistance System.Single
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetTooCloseCells = function(position, minDistance) end
+
+---`Method Private Instance`
+_G['Level'].GenerateAbyssPositions = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateAbyssArea = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateAbyssGeometry = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateSeaFloorPositions = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateSeaFloor = function() end
+
+---`Method Private Instance`
+---@param parentTunnel Barotrauma.Level.Tunnel
+_G['Level'].GenerateCaves = function(parentTunnel) end
+
+---`Method Private Instance`
+---@param caveParams Barotrauma.CaveGenerationParams
+---@param parentTunnel Barotrauma.Level.Tunnel
+---@param cavePos Microsoft.Xna.Framework.Point
+---@param caveSize Microsoft.Xna.Framework.Point
+_G['Level'].GenerateCave = function(caveParams, parentTunnel, cavePos, caveSize) end
+
+---`Method Private Instance`
+---@param ruinPos Microsoft.Xna.Framework.Point
+---@param mirror System.Boolean
+---@param requireMissionReadyRuin System.Boolean
+_G['Level'].GenerateRuin = function(ruinPos, mirror, requireMissionReadyRuin) end
+
+---`Method Private Instance`
+---@param ruin Barotrauma.RuinGeneration.Ruin
+_G['Level'].GenerateRuinWayPoints = function(ruin) end
+
+---`Method Private Instance`
+---@param minDistance System.Double
+---@param asCloseAsPossible System.Boolean
+---@param limits? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Microsoft.Xna.Framework.Point
+_G['Level'].FindPosAwayFromMainPath = function(minDistance, asCloseAsPossible, limits) end
+
+---`Method Private Instance`
+---@param ruinPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Point)|(Microsoft.Xna.Framework.Point[])
+_G['Level'].CalculateTunnelDistanceField = function(ruinPositions) end
+
+---`Method Private Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param tunnel Barotrauma.Level.Tunnel
+---@return System.Double
+_G['Level'].GetDistToTunnel = function(position, tunnel) end
+
+---`Method Private Instance`
+---@overload fun(edges:(System.Collections.Generic.IEnumerable*1Voronoi2*GraphEdge)|(fun():(Voronoi2.GraphEdge)), position:Microsoft.Xna.Framework.Vector2, health?:System.Nullable*1System*Single):(Barotrauma.DestructibleLevelWall)
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param position Microsoft.Xna.Framework.Vector2
+---@param health? System.Nullable*1System*Single
+---@return Barotrauma.DestructibleLevelWall
+_G['Level'].CreateIceChunk = function(vertices, position, health) end
+
+---`Method Private Instance`
+---@param usedSpireEdges (System.Collections.Generic.List*1Voronoi2*GraphEdge)|(Voronoi2.GraphEdge[])
+---@return Barotrauma.DestructibleLevelWall
+_G['Level'].CreateIceSpire = function(usedSpireEdges) end
+
+---`Method Private Instance`
+_G['Level'].GenerateItems = function() end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@param requiredAmount System.Int32
+---@param positionType Barotrauma.Level.PositionType
+---@param targetCaves? (System.Collections.Generic.IEnumerable*1Barotrauma*Level*Cave)|(fun():(Barotrauma.Level.Cave))
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Level'].GenerateMissionResources = function(prefab, requiredAmount, positionType, targetCaves) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Level*ClusterLocation)|(Barotrauma.Level.ClusterLocation[])
+_G['Level'].GetAllValidClusterLocations = function() end
+
+---`Method Private Instance`
+---@param resourcePrefab Barotrauma.ItemPrefab
+---@param resourceCount System.Int32
+---@param location Barotrauma.Level.ClusterLocation
+---@param placedResources System.Collections.Generic.List
+---@param edgeLength? System.Nullable*1System*Single
+---@param maxResourceOverlap? System.Single
+_G['Level'].PlaceResources = function(resourcePrefab, resourceCount, location, placedResources, edgeLength, maxResourceOverlap) end
+
+---`Method Public Instance`
+---@param spawnPosType Barotrauma.Level.PositionType
+---@param randomSpread System.Single
+---@param minDistFromSubs System.Single
+---@param offsetFromWall? System.Single
+---@param filter? (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---@return Microsoft.Xna.Framework.Vector2
+_G['Level'].GetRandomItemPos = function(spawnPosType, randomSpread, minDistFromSubs, offsetFromWall, filter) end
+
+---`Method Public Instance`
+---@param useSyncedRand System.Boolean
+---@param positionType Barotrauma.Level.PositionType
+---@param minDistFromSubs System.Single
+---@param position Barotrauma.InterestingPosition-ref
+---@param awayPoint Microsoft.Xna.Framework.Vector2
+---@param minDistFromPoint System.Single
+---@param filter? (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---@return System.Boolean
+_G['Level'].TryGetInterestingPositionAwayFromPoint = function(useSyncedRand, positionType, minDistFromSubs, position, awayPoint, minDistFromPoint, filter) end
+
+---`Method Public Instance`
+---@overload fun(useSyncedRand:System.Boolean, positionType:Barotrauma.Level.PositionType, minDistFromSubs:System.Single, position:Barotrauma.InterestingPosition-ref, filter?:(System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean)), suppressWarning?:System.Boolean):(System.Boolean)
+---@param useSyncedRand System.Boolean
+---@param positionType Barotrauma.Level.PositionType
+---@param minDistFromSubs System.Single
+---@param position Barotrauma.InterestingPosition-ref
+---@param awayPoint Microsoft.Xna.Framework.Vector2
+---@param minDistFromPoint? System.Single
+---@param filter? (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---@param suppressWarning? System.Boolean
+---@return System.Boolean
+_G['Level'].TryGetInterestingPosition = function(useSyncedRand, positionType, minDistFromSubs, position, awayPoint, minDistFromPoint, filter, suppressWarning) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Level'].IsPositionInsideWall = function(worldPosition) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Level'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param xPosition System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['Level'].GetBottomPosition = function(xPosition) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetAllCells = function() end
+
+---`Method Public Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@param searchDepth? System.Int32
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetCells = function(worldPos, searchDepth) end
+
+---`Method Public Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@return Voronoi2.VoronoiCell
+_G['Level'].GetClosestCell = function(worldPos) end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Point
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].CreatePathToClosestTunnel = function(pos) end
+
+---`Method Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, minDist:System.Single):(System.Boolean)
+---@param position Microsoft.Xna.Framework.Point
+---@param minDist System.Single
+---@return System.Boolean
+_G['Level'].IsCloseToStart = function(position, minDist) end
+
+---`Method Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, minDist:System.Single):(System.Boolean)
+---@param position Microsoft.Xna.Framework.Point
+---@param minDist System.Single
+---@return System.Boolean
+_G['Level'].IsCloseToEnd = function(position, minDist) end
+
+---`Method Private Instance`
+---@param subName System.String
+---@param contentFile Barotrauma.ContentFile
+---@param type Barotrauma.SubmarineType
+---@param thalamusSpawn? Barotrauma.LevelData.ThalamusSpawn
+---@param spawnInTheMiddle? System.Boolean
+---@return Barotrauma.Submarine
+_G['Level'].SpawnSubOnPath = function(subName, contentFile, type, thalamusSpawn, spawnInTheMiddle) end
+
+---`Method Private Instance`
+_G['Level'].CreateWrecks = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Level'].HasStartOutpost = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Level'].HasEndOutpost = function() end
+
+---`Method Private Instance`
+_G['Level'].CreateOutposts = function() end
+
+---`Method Private Instance`
+_G['Level'].CreateBeaconStation = function() end
+
+---`Method Public Instance`
+_G['Level'].PrepareBeaconStation = function() end
+
+---`Method Public Instance`
+---@param disconnectWireProbability System.Single
+_G['Level'].DisconnectBeaconStationWires = function(disconnectWireProbability) end
+
+---`Method Public Instance`
+---@param breakDeviceProbability System.Single
+_G['Level'].DamageBeaconStationDevices = function(breakDeviceProbability) end
+
+---`Method Public Instance`
+---@param damageWallProbability System.Single
+_G['Level'].DamageBeaconStationWalls = function(damageWallProbability) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Level'].CheckBeaconActive = function() end
+
+---`Method Private Instance`
+---@param parentSub Barotrauma.Submarine
+_G['Level'].SetLinkedSubCrushDepth = function(parentSub) end
+
+---`Method Private Static`
+---@return System.Boolean
+_G['Level'].IsModeStartOutpostCompatible = function() end
+
+---`Method Public Instance`
+_G['Level'].SpawnCorpses = function() end
+
+---`Method Public Instance`
+_G['Level'].SpawnNPCs = function() end
+
+---`Method Public Instance`
+---@param worldPositionY System.Single
+---@return System.Single
+_G['Level'].GetRealWorldDepth = function(worldPositionY) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Level'].IsPositionAboveLevel = function(worldPosition) end
+
+---`Method Public Instance`
+---@param newStartLocation Barotrauma.Location
+_G['Level'].DebugSetStartLocation = function(newStartLocation) end
+
+---`Method Public Instance`
+---@param newEndLocation Barotrauma.Location
+_G['Level'].DebugSetEndLocation = function(newEndLocation) end
+
+---`Method Public Instance Virtual`
+_G['Level'].Remove = function() end
+
+---`Method Public Instance`
+_G['Level'].ReloadTextures = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Level'].DrawDebugOverlay = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Level'].DrawBack = function(graphics, spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Level'].DrawFront = function(spriteBatch, cam) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Level'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param stage Barotrauma.Level.LevelGenStage
+_G['Level'].GenerateEqualityCheckValue = function(stage) end
+
+---`Method Private Instance`
+---@param stage Barotrauma.Level.LevelGenStage
+---@param value System.Int32
+_G['Level'].SetEqualityCheckValue = function(stage, value) end
+
+---`Method Private Instance`
+_G['Level'].ClearEqualityCheckValues = function() end
+
+---`Method Public Instance`
+---@param minDifficulty System.Single
+---@param maxDifficulty System.Single
+---@return System.Boolean
+_G['Level'].IsAllowedDifficulty = function(minDifficulty, maxDifficulty) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Level'].ShouldSpawnCrewInsideOutpost = function() end
+
+---`Method Public Static`
+---@param levelData Barotrauma.LevelData
+---@param mirror System.Boolean
+---@param startLocation Barotrauma.Location
+---@param endLocation Barotrauma.Location
+---@param startOutpost? Barotrauma.SubmarineInfo
+---@param endOutpost? Barotrauma.SubmarineInfo
+---@return Barotrauma.Level
+_G['Level'].Generate = function(levelData, mirror, startLocation, endLocation, startOutpost, endOutpost) end
+
+---`Method Private Instance`
+---@param mirror System.Boolean
+---@param startLocation Barotrauma.Location
+---@param endLocation Barotrauma.Location
+_G['Level'].Generate = function(mirror, startLocation, endLocation) end
+
+---`Constructor Private Instance`
+---@param levelData Barotrauma.LevelData
+---@return Barotrauma.Level
+_G['Level'] = function(levelData) end
+
+---`Constructor Private Instance`
+---@param levelData Barotrauma.LevelData
+---@return Barotrauma.Level
+_G['Level'].__new = function(levelData) end
+
diff --git a/Meta/Types/client/_00007FFD97D8E3F8.lua b/Meta/Types/client/_00007FFD97D8E3F8.lua
new file mode 100644
index 0000000..eba944f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8E3F8.lua
@@ -0,0 +1,67 @@
+---@meta
+---@class Barotrauma.MonsterMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field monsterPrefabs (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point)|(System.ValueTuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point[])
+---`Field Private Instance`
+---@field monsters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field sonarPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field tempSonarPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field maxSonarMarkerDistance System.Single
+---`Field Private Instance`
+---@field spawnPosType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field spawnPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['MonsterMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['MonsterMission'].ClientReadInitial = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['MonsterMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+---@param monsters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['MonsterMission'].InitializeMonsters = function(monsters) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['MonsterMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['MonsterMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['MonsterMission'].EndMissionSpecific = function(completed) end
+
+---`Method Public Static`
+---@param enemy Barotrauma.Character
+---@return System.Boolean
+_G['MonsterMission'].IsEliminated = function(enemy) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.MonsterMission
+_G['MonsterMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.MonsterMission
+_G['MonsterMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8E808.lua b/Meta/Types/client/_00007FFD97D8E808.lua
new file mode 100644
index 0000000..f2a6c85
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8E808.lua
@@ -0,0 +1,82 @@
+---@meta
+---@class Barotrauma.NestMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field statusEffectOnApproach (System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*StatusEffect)|({[Barotrauma.Item]:(Barotrauma.StatusEffect)})
+---`Field Private Instance`
+---@field monsterPrefabs (System.Collections.Generic.HashSet*1System*Tuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point)|(System.Tuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point[])
+---`Field Private Instance`
+---@field itemSpawnRadius System.Single
+---`Field Private Instance`
+---@field approachItemsRadius System.Single
+---`Field Private Instance`
+---@field nestObjectRadius System.Single
+---`Field Private Instance`
+---@field monsterSpawnRadius System.Single
+---`Field Private Instance`
+---@field nestObjectAmount System.Int32
+---`Field Private Instance`
+---@field requireDelivery System.Boolean
+---`Field Private Instance`
+---@field spawnPositionType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field nestPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field selectedCave Barotrauma.Level.Cave
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State System.Int32
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['NestMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['NestMission'].ClientReadInitial = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['NestMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+---@param level Barotrauma.Level
+---@param cave Barotrauma.Level.Cave
+_G['NestMission'].SpawnNestObjects = function(level, cave) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['NestMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['NestMission'].AllItemsDestroyedOrRetrieved = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['NestMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['NestMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.NestMission
+_G['NestMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.NestMission
+_G['NestMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8ED28.lua b/Meta/Types/client/_00007FFD97D8ED28.lua
new file mode 100644
index 0000000..63d1442
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8ED28.lua
@@ -0,0 +1,147 @@
+---@meta
+---@class Barotrauma.PirateMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field submarineTypeConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field characterConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field characterTypeConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field addedMissionDifficultyPerPlayer System.Single
+---`Field Private Instance`
+---@field missionDifficulty System.Single
+---`Field Private Instance`
+---@field alternateReward System.Int32
+---`Field Private Instance`
+---@field factionIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field enemySub Barotrauma.Submarine
+---`Field Private Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field characterStatusEffects (System.Collections.Generic.Dictionary*1Barotrauma*HumanPrefab*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.HumanPrefab]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field pirateSightingUpdateFrequency System.Single
+---`Field Private Instance`
+---@field pirateSightingUpdateTimer System.Single
+---`Field Private Instance`
+---@field lastSighting System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field levelData Barotrauma.LevelData
+---`Field Private Instance`
+---@field outsideOfSonarRange System.Boolean
+---`Field Private Instance`
+---@field patrolPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field submarineInfo Barotrauma.SubmarineInfo
+---`Field Private Static`
+---@field RandomnessModifier System.Single
+---`Field Private Static`
+---@field ShipRandomnessModifier System.Single
+---`Field Private Static`
+---@field MaxDifficulty System.Single
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance Virtual`
+---@field TeamCount System.Int32
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance Virtual`
+---@field EnemySubmarineInfo Barotrauma.SubmarineInfo
+_G['PirateMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['PirateMission'].ClientReadInitial = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['PirateMission'].GetBaseReward = function(sub) end
+
+---`Method Public Instance Virtual`
+---@param level Barotrauma.LevelData
+_G['PirateMission'].SetLevel = function(level) end
+
+---`Method Private Static`
+---@param preferredDifficulty System.Single
+---@param levelDifficulty System.Single
+---@param randomnessModifier System.Single
+---@param rand System.Random
+---@return System.Single
+_G['PirateMission'].GetDifficultyModifiedValue = function(preferredDifficulty, levelDifficulty, randomnessModifier, rand) end
+
+---`Method Private Static`
+---@param minAmount System.Int32
+---@param maxAmount System.Int32
+---@param levelDifficulty System.Single
+---@param rand System.Random
+---@return System.Int32
+_G['PirateMission'].GetDifficultyModifiedAmount = function(minAmount, maxAmount, levelDifficulty, rand) end
+
+---`Method Private Instance`
+---@param levelDifficulty System.Single
+---@param randomnessModifier System.Single
+---@return Barotrauma.SubmarineInfo
+_G['PirateMission'].GetRandomDifficultyModifiedSubmarine = function(levelDifficulty, randomnessModifier) end
+
+---`Method Private Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@param levelDifficulty System.Single
+---@param randomnessModifier System.Single
+---@return System.Xml.Linq.XElement
+_G['PirateMission'].GetRandomDifficultyModifiedElement = function(parentElement, levelDifficulty, randomnessModifier) end
+
+---`Method Private Instance`
+---@param preferredSpawnPos Microsoft.Xna.Framework.Vector2-ref
+_G['PirateMission'].CreateMissionPositions = function(preferredSpawnPos) end
+
+---`Method Private Instance`
+_G['PirateMission'].InitPirateShip = function() end
+
+---`Method Private Instance`
+_G['PirateMission'].InitPirates = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['PirateMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['PirateMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['PirateMission'].CheckWinState = function() end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['PirateMission'].DeadOrCaptured = function(character) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['PirateMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['PirateMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.PirateMission
+_G['PirateMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.PirateMission
+_G['PirateMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8F120.lua b/Meta/Types/client/_00007FFD97D8F120.lua
new file mode 100644
index 0000000..796b77c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8F120.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class Barotrauma.SalvageMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*SalvageMission*Target)|(Barotrauma.SalvageMission.Target[])
+---`Field Private Instance`
+---@field requiredDeliveryAmount System.Single
+---`Field Private Instance`
+---@field partiallyRetrievedMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field allRetrievedMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field rng Barotrauma.MTRandom
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Public Instance`
+---@field AnyTargetNeedsToBeRetrievedToSub System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['SalvageMission'] = {}
+
+---`Method Private Instance`
+_G['SalvageMission'].TryShowRetrievedMessage = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['SalvageMission'].ClientReadInitial = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['SalvageMission'].ClientRead = function(msg) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentTarget Barotrauma.SalvageMission.Target
+_G['SalvageMission'].LoadTarget = function(element, parentTarget) end
+
+---`Method Private Instance`
+---@param targetElement Barotrauma.ContentXElement
+---@return System.Int32
+_G['SalvageMission'].GetAmount = function(targetElement) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['SalvageMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['SalvageMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['SalvageMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['SalvageMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.SalvageMission
+_G['SalvageMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.SalvageMission
+_G['SalvageMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8F5D0.lua b/Meta/Types/client/_00007FFD97D8F5D0.lua
new file mode 100644
index 0000000..e0968f3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8F5D0.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.ScanMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field startingItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field scanners (System.Collections.Generic.List*1Barotrauma*Items*Components*Scanner)|(Barotrauma.Items.Components.Scanner[])
+---`Field Private Instance`
+---@field parentInventoryIDs (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*UInt16)|({[Barotrauma.Item]:(System.UInt16)})
+---`Field Private Instance`
+---@field inventorySlotIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32)|({[Barotrauma.Item]:(System.Int32)})
+---`Field Private Instance`
+---@field parentItemContainerIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Byte)|({[Barotrauma.Item]:(System.Byte)})
+---`Field Private Instance`
+---@field targetsToScan System.Int32
+---`Field Private Instance`
+---@field scanTargets (System.Collections.Generic.Dictionary*1Barotrauma*WayPoint*1System*Boolean)|({[Barotrauma.WayPoint]:(System.Boolean)})
+---`Field Private Instance`
+---@field newTargetsScanned (System.Collections.Generic.HashSet*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field minTargetDistance System.Single
+---`Getter Public Instance Virtual`
+---@field HudIconTargets (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+---`Getter Public Instance Virtual`
+---@field DisplayAsCompleted System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisplayAsFailed System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field TargetRuin Barotrauma.RuinGeneration.Ruin
+---`Getter Private Instance`
+---@field AllTargetsScanned System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['ScanMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['ScanMission'].ClientReadInitial = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['ScanMission'].ClientRead = function(msg) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['ScanMission'].ClientReadScanTargetStatus = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['ScanMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+_G['ScanMission'].Reset = function() end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.Item
+_G['ScanMission'].LoadItem = function(element, parent) end
+
+---`Method Private Instance`
+_G['ScanMission'].GetScanners = function() end
+
+---`Method Private Instance`
+---@param scanner Barotrauma.Items.Components.Scanner
+_G['ScanMission'].OnScanStarted = function(scanner) end
+
+---`Method Private Instance`
+---@param scanner Barotrauma.Items.Components.Scanner
+_G['ScanMission'].OnScanCompleted = function(scanner) end
+
+---`Method Private Static`
+---@param scanner Barotrauma.Items.Components.Scanner
+---@param scanStatus System.Collections.Generic.KeyValuePair*1Barotrauma*WayPoint*1System*Boolean
+---@param scanRadiusSquared System.Single
+---@return System.Boolean
+_G['ScanMission'].IsValidScanPosition = function(scanner, scanStatus, scanRadiusSquared) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['ScanMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['ScanMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['ScanMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.ScanMission
+_G['ScanMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.ScanMission
+_G['ScanMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97D8F8A0.lua b/Meta/Types/client/_00007FFD97D8F8A0.lua
new file mode 100644
index 0000000..b1edd36
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D8F8A0.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.Level.InterestingPosition : System.ValueType
+---`Field Public Instance`
+---@field Position Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field PositionType Barotrauma.Level.PositionType
+---`Field Public Instance`
+---@field IsValid System.Boolean
+---`Field Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Field Public Instance`
+---@field Ruin Barotrauma.RuinGeneration.Ruin
+---`Field Public Instance`
+---@field Cave Barotrauma.Level.Cave
+_G['Level']['InterestingPosition'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Level']['InterestingPosition'].IsEnclosedArea = function() end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, submarine?:Barotrauma.Submarine, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, ruin:Barotrauma.RuinGeneration.Ruin, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@param position Microsoft.Xna.Framework.Point
+---@param positionType Barotrauma.Level.PositionType
+---@param cave Barotrauma.Level.Cave
+---@param isValid? System.Boolean
+---@return Barotrauma.Level.InterestingPosition
+_G['Level']['InterestingPosition'] = function(position, positionType, cave, isValid) end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, submarine?:Barotrauma.Submarine, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, ruin:Barotrauma.RuinGeneration.Ruin, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@param position Microsoft.Xna.Framework.Point
+---@param positionType Barotrauma.Level.PositionType
+---@param cave Barotrauma.Level.Cave
+---@param isValid? System.Boolean
+---@return Barotrauma.Level.InterestingPosition
+_G['Level']['InterestingPosition'].__new = function(position, positionType, cave, isValid) end
+
diff --git a/Meta/Types/client/_00007FFD97D91920.lua b/Meta/Types/client/_00007FFD97D91920.lua
new file mode 100644
index 0000000..10be4d6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D91920.lua
@@ -0,0 +1,388 @@
+---@meta
+---@class Barotrauma.LevelGenerationParams : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field minWidth System.Int32
+---`Field Private Instance`
+---@field maxWidth System.Int32
+---`Field Private Instance`
+---@field height System.Int32
+---`Field Private Instance`
+---@field voronoiSiteInterval Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field voronoiSiteVariance Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field mainPathNodeIntervalRange Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field caveCount System.Int32
+---`Field Private Instance`
+---@field bottomHoleProbability System.Single
+---`Field Private Instance`
+---@field seaFloorBaseDepth System.Int32
+---`Field Private Instance`
+---@field seaFloorVariance System.Int32
+---`Field Private Instance`
+---@field cellSubdivisionLength System.Int32
+---`Field Private Instance`
+---@field cellRoundingAmount System.Single
+---`Field Private Instance`
+---@field cellIrregularity System.Single
+---`Field Private Instance`
+---@field mountainCountMin System.Int32
+---`Field Private Instance`
+---@field mountainCountMax System.Int32
+---`Field Private Instance`
+---@field mountainHeightMin System.Int32
+---`Field Private Instance`
+---@field mountainHeightMax System.Int32
+---`Field Private Instance`
+---@field waterParticleScale System.Single
+---`Field Private Instance`
+---@field initialDepthMin System.Int32
+---`Field Private Instance`
+---@field initialDepthMax System.Int32
+---`Field Public Instance`
+---@field AllowedBiomeIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field AnyBiomeAllowed System.Boolean
+---`Field Private Instance`
+---@field startPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field endPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field forceOutpostPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field waterParticleVelocity Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field LevelParams (Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams)|(fun():(Barotrauma.LevelGenerationParams))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field OldIdentifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Type Barotrauma.LevelData.LevelType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsPvPLevel System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Commonness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TransitionFromPreviousBiome System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxLevelDifficulty System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StartPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EndPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceOutpostPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CreateHoleNextToEnd System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BottomHoleProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinWidth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxWidth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Height System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InitialDepthMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InitialDepthMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NoLevelGeometry System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoronoiSiteInterval Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoronoiSiteVariance Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CellSubdivisionLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CellRoundingAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CellIrregularity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinTunnelRadius System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SideTunnelCount Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SideTunnelVariance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinSideTunnelRadius Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainPathNodeIntervalRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainPathVariance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelObjectAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackgroundCreatureAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaveCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResourceIntervalRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaveResourceIntervalRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResourceClusterSizeRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResourceSpawnChance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaveResourceSpawnChance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FloatingIceChunkCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IslandCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IceSpireCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CreateHoleToAbyss System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandSizeMin Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandSizeMax Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandCaveProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssResourceClustersMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssResourceClustersMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeaFloorDepth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeaFloorVariance System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainCountMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainCountMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainHeightMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainHeightMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RuinCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinRuinCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxRuinCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RuinSpawnProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinWreckCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxWreckCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinCorpseCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxCorpseCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HuskProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ThalamusProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckHullFloodingChance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckFloodingHullMinWaterPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckFloodingHullMaxWaterPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceBeaconStation System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterParticleScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterParticleVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallTextureSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeTextureWidth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlashInterval Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlashColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeExpandOutwardsAmount System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeExpandInwardsAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AmbientLightColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackgroundTextureColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackgroundColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WallColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterParticleColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayNoiseLoopInOutpostLevel System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterAmbienceVolume System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundTopSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DestructibleWallSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DestructibleWallEdgeSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallSpriteDestroyed Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterParticles Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FlashSound Barotrauma.Sounds.Sound
+_G['LevelGenerationParams'] = {}
+
+---`Method Public Static`
+_G['LevelGenerationParams'].CheckValidity = function() end
+
+---`Method Public Static`
+---@param seed System.String
+---@param type Barotrauma.LevelData.LevelType
+---@param difficulty System.Single
+---@param biomeId? Barotrauma.Identifier
+---@param pvpOnly? System.Boolean
+---@param biomeTransition? System.Boolean
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'].GetRandom = function(seed, type, difficulty, biomeId, pvpOnly, biomeTransition) end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParams'].Dispose = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['LevelGenerationParams'].UseRandomRuinCount = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['LevelGenerationParams'].GetMaxRuinCount = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D91DC0.lua b/Meta/Types/client/_00007FFD97D91DC0.lua
new file mode 100644
index 0000000..532b42d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D91DC0.lua
@@ -0,0 +1,165 @@
+---@meta
+---@class Barotrauma.LevelObjectManager : Barotrauma.Entity
+---`Field Private Instance`
+---@field visibleObjectsBack (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field visibleObjectsMid (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field visibleObjectsFront (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field NextRefreshTime System.Double
+---`Field Private Instance`
+---@field currentGridIndices Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field ForceRefreshVisibleObjects System.Boolean
+---`Field Private Instance`
+---@field objects (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field updateableObjects (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field objectGrid (System.Collections.Generic.List)|((System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])[])
+---`Field Private Static`
+---@field objectsInRange (System.Collections.Generic.HashSet*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Static`
+---@field MaxVisibleObjects System.Int32
+---`Field Private Static`
+---@field GridSize System.Int32
+---`Field Private Static`
+---@field ParallaxStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GlobalForceDecreaseTimer System.Single
+_G['LevelObjectManager'] = {}
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*LevelObject)|(fun():(Barotrauma.LevelObject))
+_G['LevelObjectManager'].GetVisibleObjects = function() end
+
+---`Method Private Instance`
+---@param currentIndices Microsoft.Xna.Framework.Rectangle
+---@param zoom System.Single
+_G['LevelObjectManager'].RefreshVisibleObjects = function(currentIndices, zoom) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['LevelObjectManager'].DrawObjectsBack = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['LevelObjectManager'].DrawObjectsMid = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['LevelObjectManager'].DrawObjectsFront = function(spriteBatch, cam) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param objectList (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+_G['LevelObjectManager'].DrawObjects = function(spriteBatch, cam, objectList) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['LevelObjectManager'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@param amount System.Int32
+_G['LevelObjectManager'].PlaceObjects = function(level, amount) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@param cave Barotrauma.Level.Cave
+---@param nestPosition Microsoft.Xna.Framework.Vector2
+---@param nestRadius System.Single
+---@param objectAmount System.Int32
+_G['LevelObjectManager'].PlaceNestObjects = function(level, cave, nestPosition, nestRadius, objectAmount) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.LevelObjectPrefab
+---@param spawnPosition Barotrauma.LevelObjectManager.SpawnPosition
+---@param level Barotrauma.Level
+---@param parentCave? Barotrauma.Level.Cave
+_G['LevelObjectManager'].PlaceObject = function(prefab, spawnPosition, level, parentCave) end
+
+---`Method Private Instance`
+---@param newObject Barotrauma.LevelObject
+---@param level Barotrauma.Level
+_G['LevelObjectManager'].AddObject = function(newObject, level) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Point
+_G['LevelObjectManager'].GetGridIndices = function(worldPosition) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1Barotrauma*LevelObject)|(fun():(Barotrauma.LevelObject)))
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*LevelObject)|(fun():(Barotrauma.LevelObject))
+_G['LevelObjectManager'].GetAllObjects = function(worldPosition, radius) end
+
+---`Method Private Static`
+---@param cells (System.Collections.Generic.IEnumerable*1Voronoi2*VoronoiCell)|(fun():(Voronoi2.VoronoiCell))
+---@param spawnPosType Barotrauma.LevelObjectPrefab.SpawnPosType
+---@return (System.Collections.Generic.List*1Barotrauma*LevelObjectManager*SpawnPosition)|(Barotrauma.LevelObjectManager.SpawnPosition[])
+_G['LevelObjectManager'].GetAvailableSpawnPositions = function(cells, spawnPosType) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['LevelObjectManager'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['LevelObjectManager'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@param triggeredObject Barotrauma.LevelObject
+---@param trigger Barotrauma.LevelTrigger
+---@param triggerer Barotrauma.Entity
+_G['LevelObjectManager'].OnObjectTriggered = function(triggeredObject, trigger, triggerer) end
+
+---`Method Private Static`
+---@overload fun(level:Barotrauma.Level, availablePrefabs:(System.Collections.Generic.IList*1Barotrauma*LevelObjectPrefab)|(Barotrauma.LevelObjectPrefab[])):(Barotrauma.LevelObjectPrefab)
+---@param caveParams Barotrauma.CaveGenerationParams
+---@param availablePrefabs (System.Collections.Generic.IList*1Barotrauma*LevelObjectPrefab)|(Barotrauma.LevelObjectPrefab[])
+---@param requireCaveSpecificOverride System.Boolean
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectManager'].GetRandomPrefab = function(caveParams, availablePrefabs, requireCaveSpecificOverride) end
+
+---`Method Public Instance Virtual`
+_G['LevelObjectManager'].Remove = function() end
+
+---`Method Private Instance`
+_G['LevelObjectManager'].RemoveProjSpecific = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['LevelObjectManager'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D92678.lua b/Meta/Types/client/_00007FFD97D92678.lua
new file mode 100644
index 0000000..71654bd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D92678.lua
@@ -0,0 +1,171 @@
+---@meta
+---@class Barotrauma.LevelObject : System.Object
+---`Field Public Instance`
+---@field SwingTimer System.Single
+---`Field Public Instance`
+---@field ScaleOscillateTimer System.Single
+---`Field Public Instance`
+---@field CurrentSwingAmount System.Single
+---`Field Public Instance`
+---@field CurrentScaleOscillation Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field CurrentRotation System.Single
+---`Field Private Instance`
+---@field spriteDeformations (System.Collections.Generic.List*1Barotrauma*SpriteDeformations*SpriteDeformation)|(Barotrauma.SpriteDeformations.SpriteDeformation[])
+---`Field Public Instance`
+---@field Prefab Barotrauma.LevelObjectPrefab
+---`Field Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector3
+---`Field Public Instance`
+---@field NetworkUpdateTimer System.Single
+---`Field Public Instance`
+---@field Scale System.Single
+---`Field Public Instance`
+---@field Rotation System.Single
+---`Field Private Instance`
+---@field spriteIndex System.Int32
+---`Field NonPublic Instance`
+---@field tookDamage System.Boolean
+---`Field Public Instance`
+---@field ActivePrefab Barotrauma.LevelObjectPrefab
+---`Field Public Instance`
+---@field ParentCave Barotrauma.Level.Cave
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LightSources (Barotrauma.Lights.LightSource-arr)|(Barotrauma.Lights.LightSource[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LightSourceTriggers (Barotrauma.LevelTrigger-arr)|(Barotrauma.LevelTrigger[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticleEmitters (Barotrauma.Particles.ParticleEmitter-arr)|(Barotrauma.Particles.ParticleEmitter[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticleEmitterTriggers (Barotrauma.LevelTrigger-arr)|(Barotrauma.LevelTrigger[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sounds (Barotrauma.RoundSound-arr)|(Barotrauma.RoundSound[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SoundChannels (Barotrauma.Sounds.SoundChannel-arr)|(Barotrauma.Sounds.SoundChannel[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SoundTriggers (Barotrauma.LevelTrigger-arr)|(Barotrauma.LevelTrigger[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentSpriteDeformation (Microsoft.Xna.Framework.Vector2[,])|(Microsoft.Xna.Framework.Vector2[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VisibleOnSonar System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SonarRadius System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanBeVisible System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Triggers (System.Collections.Generic.List*1Barotrauma*LevelTrigger)|(Barotrauma.LevelTrigger[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsNetworkSyncing System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NeedsUpdate System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['LevelObject'] = {}
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['LevelObject'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['LevelObject'].UpdateDeformations = function(deltaTime) end
+
+---`Method Private Instance`
+---@param positionalDeformation Barotrauma.SpriteDeformations.PositionalDeformation
+---@param deltaTime System.Single
+_G['LevelObject'].UpdatePositionalDeformation = function(positionalDeformation, deltaTime) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['LevelObject'].ClientRead = function(msg) end
+
+---`Method Private Instance`
+_G['LevelObject'].InitProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['LevelObject'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Public Instance`
+---@param damage System.Single
+---@param deltaTime System.Single
+---@param attacker Barotrauma.Entity
+---@param isNetworkEvent? System.Boolean
+_G['LevelObject'].AddDamage = function(damage, deltaTime, attacker, isNetworkEvent) end
+
+---`Method Public Instance`
+---@param localPosition Microsoft.Xna.Framework.Vector2
+---@param swingState? System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['LevelObject'].LocalToWorld = function(localPosition, swingState) end
+
+---`Method Public Instance`
+_G['LevelObject'].Remove = function() end
+
+---`Method Private Instance`
+_G['LevelObject'].RemoveProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LevelObject'].ToString = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['LevelObject'].ServerWrite = function(msg, c) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.LevelObjectPrefab
+---@param position Microsoft.Xna.Framework.Vector3
+---@param scale System.Single
+---@param rotation? System.Single
+---@return Barotrauma.LevelObject
+_G['LevelObject'] = function(prefab, position, scale, rotation) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.LevelObjectPrefab
+---@param position Microsoft.Xna.Framework.Vector3
+---@param scale System.Single
+---@param rotation? System.Single
+---@return Barotrauma.LevelObject
+_G['LevelObject'].__new = function(prefab, position, scale, rotation) end
+
diff --git a/Meta/Types/client/_00007FFD97D932D0.lua b/Meta/Types/client/_00007FFD97D932D0.lua
new file mode 100644
index 0000000..63d79ce
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D932D0.lua
@@ -0,0 +1,247 @@
+---@meta
+---@class Barotrauma.LevelTrigger : System.Object
+---`Field Public Instance`
+---@field OnTriggered (System.Action*1Barotrauma*LevelTrigger*1Barotrauma*Entity)|(fun(arg1:Barotrauma.LevelTrigger, arg2:Barotrauma.Entity))
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Private Instance`
+---@field attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+---`Field Private Instance`
+---@field cameraShake System.Single
+---`Field Private Instance`
+---@field unrotatedForce Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field forceFluctuationTimer System.Single
+---`Field Private Instance`
+---@field currentForceFluctuation System.Single
+---`Field Private Instance`
+---@field triggerers (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field triggeredBy Barotrauma.LevelTrigger.TriggererType
+---`Field Private Instance`
+---@field triggerSpeciesOrGroup Barotrauma.Identifier
+---`Field Private Instance`
+---@field conditionals Barotrauma.PropertyConditional.LogicalComparison
+---`Field Private Instance`
+---@field randomTriggerInterval System.Single
+---`Field Private Instance`
+---@field randomTriggerProbability System.Single
+---`Field Private Instance`
+---@field randomTriggerTimer System.Single
+---`Field Private Instance`
+---@field triggeredTimer System.Single
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field allowedOtherTriggerTags (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field stayTriggeredDelay System.Single
+---`Field Public Instance`
+---@field ParentTrigger Barotrauma.LevelTrigger
+---`Field Private Instance`
+---@field worldPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field forceMode Barotrauma.LevelTrigger.TriggerForceMode
+---`Field Private Instance`
+---@field triggeredOnce System.Boolean
+---`Field Private Instance`
+---@field triggerOnce System.Boolean
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Static`
+---@field triggerersToRemove (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Getter Public Instance`
+---@field StatusEffects (System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect)|(fun():(Barotrauma.StatusEffect))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TriggererPosition (System.Collections.Generic.Dictionary*1Barotrauma*Entity*1Microsoft*Xna*Framework*Vector2)|({[Barotrauma.Entity]:(Microsoft.Xna.Framework.Vector2)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TriggerOthersDistance System.Single
+---`Getter Public Instance`
+---@field Triggerers (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+---`Getter Public Instance`
+---@field IsTriggered System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Force Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceFalloff System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GlobalForceDecreaseInterval System.Single
+---`Getter Public Instance`
+---@field ForceMode Barotrauma.LevelTrigger.TriggerForceMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceVelocityLimit System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ColliderRadius System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseNetworkSyncing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsNetworkSyncing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InfectIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InfectionChance System.Single
+_G['LevelTrigger'] = {}
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['LevelTrigger'].ClientRead = function(msg) end
+
+---`Method Public Static`
+---@param triggeredBy Barotrauma.LevelTrigger.TriggererType
+---@return FarseerPhysics.Dynamics.Category
+_G['LevelTrigger'].GetCollisionCategories = function(triggeredBy) end
+
+---`Method Private Instance`
+_G['LevelTrigger'].CalculateDirectionalForce = function() end
+
+---`Method Public Static`
+---@param statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+_G['LevelTrigger'].LoadStatusEffect = function(statusEffects, element, parentDebugName) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@param triggerOnce System.Boolean
+---@param attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+_G['LevelTrigger'].LoadAttack = function(element, parentDebugName, triggerOnce, attacks) end
+
+---`Method Private Instance`
+---@param fixtureA FarseerPhysics.Dynamics.Fixture
+---@param fixtureB FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['LevelTrigger'].PhysicsBody_OnCollision = function(fixtureA, fixtureB, contact) end
+
+---`Method Public Static`
+---@param entity Barotrauma.Entity
+---@param triggeredBy Barotrauma.LevelTrigger.TriggererType
+---@param triggerSpeciesOrGroup Barotrauma.Identifier
+---@param conditionals Barotrauma.PropertyConditional.LogicalComparison
+---@param mustBeOnSpecificSub? System.ValueTuple*1System*Boolean*1Barotrauma*Submarine
+---@param mustBeOutside? System.Boolean
+---@return System.Boolean
+_G['LevelTrigger'].IsTriggeredByEntity = function(entity, triggeredBy, triggerSpeciesOrGroup, conditionals, mustBeOnSpecificSub, mustBeOutside) end
+
+---`Method Private Instance`
+---@param fixtureA FarseerPhysics.Dynamics.Fixture
+---@param fixtureB FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+_G['LevelTrigger'].PhysicsBody_OnSeparation = function(fixtureA, fixtureB, contact) end
+
+---`Method Public Static`
+---@param triggerBody Barotrauma.PhysicsBody
+---@param separatingFixture FarseerPhysics.Dynamics.Fixture
+---@param separatingEntity Barotrauma.Entity
+---@return System.Boolean
+_G['LevelTrigger'].CheckContactsForOtherFixtures = function(triggerBody, separatingFixture, separatingEntity) end
+
+---`Method Public Static`
+---@param triggerBody Barotrauma.PhysicsBody
+---@param targetEntity Barotrauma.Entity
+---@return System.Boolean
+_G['LevelTrigger'].CheckContactsForEntity = function(triggerBody, targetEntity) end
+
+---`Method Public Static`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@return Barotrauma.Entity
+_G['LevelTrigger'].GetEntity = function(fixture) end
+
+---`Method Public Instance`
+---@param otherTrigger Barotrauma.LevelTrigger
+---@param triggerer Barotrauma.Entity
+_G['LevelTrigger'].OtherTriggered = function(otherTrigger, triggerer) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['LevelTrigger'].Update = function(deltaTime) end
+
+---`Method Public Static`
+---@param physicsBody Barotrauma.PhysicsBody
+---@param triggerers (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+_G['LevelTrigger'].RemoveInActiveTriggerers = function(physicsBody, triggerers) end
+
+---`Method Public Static`
+---@param statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param triggerer Barotrauma.Entity
+---@param deltaTime System.Single
+---@param targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param targetItem? Barotrauma.Item
+_G['LevelTrigger'].ApplyStatusEffects = function(statusEffects, worldPosition, triggerer, deltaTime, targets, targetItem) end
+
+---`Method Public Static`
+---@overload fun(attacks:(System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[]), damageable:Barotrauma.IDamageable, worldPosition:Microsoft.Xna.Framework.Vector2, deltaTime:System.Single)
+---@param attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+_G['LevelTrigger'].ApplyAttacks = function(attacks, worldPosition, deltaTime) end
+
+---`Method Private Instance`
+---@param body Barotrauma.PhysicsBody
+_G['LevelTrigger'].ApplyForce = function(body) end
+
+---`Method Public Static`
+---@param triggererBody Barotrauma.PhysicsBody
+---@param triggerBody Barotrauma.PhysicsBody
+---@param colliderRadius System.Single
+---@return System.Single
+_G['LevelTrigger'].GetDistanceFactor = function(triggererBody, triggerBody, colliderRadius) end
+
+---`Method Public Instance`
+---@overload fun(viewPosition:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@return Microsoft.Xna.Framework.Vector2
+_G['LevelTrigger'].GetWaterFlowVelocity = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['LevelTrigger'].ServerWrite = function(msg, c) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D936E0.lua b/Meta/Types/client/_00007FFD97D936E0.lua
new file mode 100644
index 0000000..36a574f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D936E0.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class Barotrauma.LevelWall : System.Object
+---`Field NonPublic Instance`
+---@field level Barotrauma.Level
+---`Field Private Instance`
+---@field triangles (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+---`Field Private Instance`
+---@field color Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field moveState System.Single
+---`Field Private Instance`
+---@field moveLength System.Single
+---`Field Private Instance`
+---@field moveAmount Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field wallDamageOnTouch System.Single
+---`Field Public Instance`
+---@field MoveSpeed System.Single
+---`Field Private Instance`
+---@field originalPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VertexBuffer Barotrauma.LevelWallVertexBuffer
+---`Getter Public Instance`
+---@field WallBuffer Microsoft.Xna.Framework.Graphics.VertexBuffer
+---`Getter Public Instance`
+---@field WallEdgeBuffer Microsoft.Xna.Framework.Graphics.VertexBuffer
+---`Getter Public Instance Virtual`
+---@field Alpha System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Cells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Body FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WallDamageOnTouch System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveState System.Single
+_G['LevelWall'] = {}
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Matrix
+_G['LevelWall'].GetTransform = function() end
+
+---`Method Public Instance`
+---@param wallVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallEdgeVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param edgeTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param color Microsoft.Xna.Framework.Color
+_G['LevelWall'].SetWallVertices = function(wallVertices, wallEdgeVertices, wallTexture, edgeTexture, color) end
+
+---`Method Public Instance`
+_G['LevelWall'].GenerateVertices = function() end
+
+---`Method Public Instance`
+---@param worldView Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['LevelWall'].IsVisible = function(worldView) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['LevelWall'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['LevelWall'].IsPointInside = function(point) end
+
+---`Method Public Instance Virtual`
+_G['LevelWall'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[]), color:Microsoft.Xna.Framework.Color, level:Barotrauma.Level, giftWrap?:System.Boolean, createBody?:System.Boolean):Barotrauma.LevelWall
+---@param edgePositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param extendAmount Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@return Barotrauma.LevelWall
+_G['LevelWall'] = function(edgePositions, extendAmount, color, level) end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[]), color:Microsoft.Xna.Framework.Color, level:Barotrauma.Level, giftWrap?:System.Boolean, createBody?:System.Boolean):Barotrauma.LevelWall
+---@param edgePositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param extendAmount Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@return Barotrauma.LevelWall
+_G['LevelWall'].__new = function(edgePositions, extendAmount, color, level) end
+
diff --git a/Meta/Types/client/_00007FFD97D93A70.lua b/Meta/Types/client/_00007FFD97D93A70.lua
new file mode 100644
index 0000000..9c29be1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D93A70.lua
@@ -0,0 +1,81 @@
+---@meta
+---@class Barotrauma.DestructibleLevelWall : Barotrauma.LevelWall
+---`Field Public Instance`
+---@field NetworkUpdatePending System.Boolean
+---`Getter Public Instance Virtual`
+---@field Alpha System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Damage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Destroyed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadeOutDuration System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadeOutTimer System.Single
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+_G['DestructibleLevelWall'] = {}
+
+---`Method Public Instance`
+---@param damage System.Single
+_G['DestructibleLevelWall'].SetDamage = function(damage) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['DestructibleLevelWall'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param damage System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['DestructibleLevelWall'].AddDamage = function(damage, worldPosition) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['DestructibleLevelWall'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Private Instance`
+---@param damage System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['DestructibleLevelWall'].AddDamageProjSpecific = function(damage, worldPosition) end
+
+---`Method Private Instance`
+_G['DestructibleLevelWall'].CreateFragments = function() end
+
+---`Method Public Instance`
+_G['DestructibleLevelWall'].Destroy = function() end
+
+---`Constructor Public Instance`
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@param health? System.Nullable*1System*Single
+---@param giftWrap? System.Boolean
+---@return Barotrauma.DestructibleLevelWall
+_G['DestructibleLevelWall'] = function(vertices, color, level, health, giftWrap) end
+
+---`Constructor Public Instance`
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@param health? System.Nullable*1System*Single
+---@param giftWrap? System.Boolean
+---@return Barotrauma.DestructibleLevelWall
+_G['DestructibleLevelWall'].__new = function(vertices, color, level, health, giftWrap) end
+
diff --git a/Meta/Types/client/_00007FFD97D93CD0.lua b/Meta/Types/client/_00007FFD97D93CD0.lua
new file mode 100644
index 0000000..6d46eb5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D93CD0.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.LevelWallVertexBuffer : System.Object
+---`Field Public Instance`
+---@field WallEdgeBuffer Microsoft.Xna.Framework.Graphics.VertexBuffer
+---`Field Public Instance`
+---@field WallBuffer Microsoft.Xna.Framework.Graphics.VertexBuffer
+---`Field Public Instance`
+---@field WallTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Public Instance`
+---@field EdgeTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field wallVertices (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---`Field Private Instance`
+---@field wallEdgeVertices (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsDisposed System.Boolean
+_G['LevelWallVertexBuffer'] = {}
+
+---`Method Public Instance`
+---@param wallVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallEdgeVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param color Microsoft.Xna.Framework.Color
+_G['LevelWallVertexBuffer'].Append = function(wallVertices, wallEdgeVertices, color) end
+
+---`Method Public Instance Virtual`
+_G['LevelWallVertexBuffer'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param wallVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallEdgeVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param edgeTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param color Microsoft.Xna.Framework.Color
+---@return Barotrauma.LevelWallVertexBuffer
+_G['LevelWallVertexBuffer'] = function(wallVertices, wallEdgeVertices, wallTexture, edgeTexture, color) end
+
+---`Constructor Public Instance`
+---@param wallVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallEdgeVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param edgeTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param color Microsoft.Xna.Framework.Color
+---@return Barotrauma.LevelWallVertexBuffer
+_G['LevelWallVertexBuffer'].__new = function(wallVertices, wallEdgeVertices, wallTexture, edgeTexture, color) end
+
diff --git a/Meta/Types/client/_00007FFD97D940A0.lua b/Meta/Types/client/_00007FFD97D940A0.lua
new file mode 100644
index 0000000..34d295d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D940A0.lua
@@ -0,0 +1,98 @@
+---@meta
+---@class Barotrauma.LevelRenderer : System.Object
+---`Field Private Instance`
+---@field waterParticleOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field waterParticleVelocity Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field flashCooldown System.Single
+---`Field Private Instance`
+---@field flashTimer System.Single
+---`Field Private Instance`
+---@field cullNone Microsoft.Xna.Framework.Graphics.RasterizerState
+---`Field Private Instance`
+---@field level Barotrauma.Level
+---`Field Private Instance`
+---@field vertexBuffers (System.Collections.Generic.List*1Barotrauma*LevelWallVertexBuffer)|(Barotrauma.LevelWallVertexBuffer[])
+---`Field Private Instance`
+---@field chromaticAberrationStrength System.Single
+---`Field Private Static`
+---@field wallEdgeEffect Microsoft.Xna.Framework.Graphics.BasicEffect
+---`Field Private Static`
+---@field wallCenterEffect Microsoft.Xna.Framework.Graphics.BasicEffect
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FlashColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ChromaticAberrationStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollapseEffectStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollapseEffectOrigin Microsoft.Xna.Framework.Vector2
+_G['LevelRenderer'] = {}
+
+---`Method Public Instance`
+_G['LevelRenderer'].ReloadTextures = function() end
+
+---`Method Public Instance`
+_G['LevelRenderer'].Flash = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['LevelRenderer'].Update = function(deltaTime, cam) end
+
+---`Method Public Static`
+---@param vertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param color Microsoft.Xna.Framework.Color
+---@return (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+_G['LevelRenderer'].GetColoredVertices = function(vertices, color) end
+
+---`Method Public Instance`
+---@param wallVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallEdgeVertices (Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionTexture[])
+---@param wallTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param edgeTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param color Microsoft.Xna.Framework.Color
+_G['LevelRenderer'].SetVertices = function(wallVertices, wallEdgeVertices, wallTexture, edgeTexture, color) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param backgroundSpriteManager? Barotrauma.LevelObjectManager
+---@param backgroundCreatureManager? Barotrauma.BackgroundCreatureManager
+---@param particleManager? Barotrauma.Particles.ParticleManager
+_G['LevelRenderer'].DrawBackground = function(spriteBatch, cam, backgroundSpriteManager, backgroundCreatureManager, particleManager) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param backgroundSpriteManager? Barotrauma.LevelObjectManager
+_G['LevelRenderer'].DrawForeground = function(spriteBatch, cam, backgroundSpriteManager) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['LevelRenderer'].DrawDebugOverlay = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param cam Barotrauma.Camera
+_G['LevelRenderer'].RenderWalls = function(graphicsDevice, cam) end
+
+---`Method Public Instance Virtual`
+_G['LevelRenderer'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param level Barotrauma.Level
+---@return Barotrauma.LevelRenderer
+_G['LevelRenderer'] = function(level) end
+
+---`Constructor Public Instance`
+---@param level Barotrauma.Level
+---@return Barotrauma.LevelRenderer
+_G['LevelRenderer'].__new = function(level) end
+
diff --git a/Meta/Types/client/_00007FFD97D94990.lua b/Meta/Types/client/_00007FFD97D94990.lua
new file mode 100644
index 0000000..4c8a4f2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D94990.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.Biome : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field OldIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field IsEndBiome System.Boolean
+---`Field Public Instance`
+---@field EndBiomeLocationCount System.Int32
+---`Field Public Instance`
+---@field MinDifficulty System.Single
+---`Field Private Instance`
+---@field maxDifficulty System.Single
+---`Field Public Instance`
+---@field AllowedZones (System.Collections.Immutable.ImmutableHashSet*1System*Int32)|(System.Int32[])
+---`Field Private Instance`
+---@field submarineAvailability System.Nullable*1Barotrauma*Biome*SubmarineAvailability
+---`Field Private Instance`
+---@field submarineAvailabilityOverrides (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Biome*SubmarineAvailability)|(Barotrauma.Biome.SubmarineAvailability[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*Biome)|(fun():(Barotrauma.Biome))
+---`Getter Public Instance`
+---@field ActualMaxDifficulty System.Single
+---`Getter Public Instance`
+---@field AdjustedMaxDifficulty System.Single
+_G['Biome'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Identifier
+_G['Biome'].ParseIdentifier = function(element) end
+
+---`Method Public Instance`
+---@param subClass Barotrauma.SubmarineClass
+---@param locationType Barotrauma.Identifier
+---@return System.Int32
+_G['Biome'].HighestSubmarineTierAvailable = function(subClass, locationType) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param locationType Barotrauma.Identifier
+---@return System.Boolean
+_G['Biome'].IsSubmarineAvailable = function(info, locationType) end
+
+---`Method Public Instance Virtual`
+_G['Biome'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D96088.lua b/Meta/Types/client/_00007FFD97D96088.lua
new file mode 100644
index 0000000..a2637ad
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D96088.lua
@@ -0,0 +1,395 @@
+---@meta
+---@class Barotrauma.Map : System.Object
+---`Field Private Instance`
+---@field mapAnimQueue (System.Collections.Generic.Queue*1Barotrauma*Map*MapAnim)|(fun():(Barotrauma.Map.MapAnim))
+---`Field Public Instance`
+---@field DrawOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field drawOffsetNoise Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field currLocationIndicatorPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field zoom System.Single
+---`Field Private Instance`
+---@field targetZoom System.Single
+---`Field Private Instance`
+---@field borders Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field mapTiles (Barotrauma.Sprite[,])|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field tileDiscovered (System.Boolean[,])|(System.Boolean[])
+---`Field Private Instance`
+---@field connectionHighlightState System.Single
+---`Field Private Instance`
+---@field tooltip System.Nullable*1System*ValueTuple*2Microsoft*Xna*Framework*Rectangle*2Barotrauma*RichString
+---`Field Private Instance`
+---@field pendingSubInfo Barotrauma.SubmarineInfo.PendingSubInfo
+---`Field Private Instance`
+---@field beaconStationActiveText Barotrauma.RichString
+---`Field Private Instance`
+---@field beaconStationInactiveText Barotrauma.RichString
+---`Field Private Instance`
+---@field locationInfoOverlay Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field editor Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field mapNotifications (System.Collections.Generic.List*1Barotrauma*Map*MapNotification)|(Barotrauma.Map.MapNotification[])
+---`Field Private Instance`
+---@field hudVisibility System.Single
+---`Field Private Instance`
+---@field cameraNoiseStrength System.Single
+---`Field Public Instance`
+---@field AllowDebugTeleport System.Boolean
+---`Field Private Instance`
+---@field generationParams Barotrauma.MapGenerationParams
+---`Field Private Instance`
+---@field furthestDiscoveredLocation Barotrauma.Location
+---`Field Public Instance`
+---@field OnLocationSelected (System.Action*1Barotrauma*Location*1Barotrauma*LocationConnection)|(fun(arg1:Barotrauma.Location, arg2:Barotrauma.LocationConnection))
+---`Field Public Instance`
+---@field OnMissionsSelected (System.Action*1Barotrauma*LocationConnection*1System*Collections*Generic*IEnumerable*2Barotrauma*Mission)|(fun(arg1:Barotrauma.LocationConnection, arg2:(System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))))
+---`Field Public Instance`
+---@field OnLocationChanged Barotrauma.NamedEvent*1Barotrauma*Map*LocationChangeInfo
+---`Field Private Instance`
+---@field endLocations (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Field Private Instance`
+---@field locationsDiscovered (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Field Private Instance`
+---@field locationsVisited (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Field Public Instance`
+---@field Radiation Barotrauma.Radiation
+---`Field Private Instance`
+---@field trackedLocationDiscoveryAndVisitOrder System.Boolean
+---`Field Private Static`
+---@field noiseOverlay Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HighlightedLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Width System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Height System.Int32
+---`Getter Public Instance`
+---@field EndLocations (System.Collections.Generic.IReadOnlyList*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentLocation Barotrauma.Location
+---`Getter Public Instance`
+---@field CurrentLocationIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedLocation Barotrauma.Location
+---`Getter Public Instance`
+---@field SelectedLocationIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedConnection Barotrauma.LocationConnection
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Seed System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Locations (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*LocationConnection)|(Barotrauma.LocationConnection[])
+_G['Map'] = {}
+
+---`Method Private Instance`
+_G['Map'].CreateEditor = function() end
+
+---`Method Private Instance`
+---@param prevLocation Barotrauma.Location
+---@param newLocation Barotrauma.Location
+_G['Map'].LocationChanged = function(prevLocation, newLocation) end
+
+---`Method Private Instance`
+---@param location Barotrauma.Location
+---@param removeFromAdjacentLocations? System.Boolean
+_G['Map'].RemoveFogOfWar = function(location, removeFromAdjacentLocations) end
+
+---`Method Private Instance`
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['Map'].IsInFogOfWar = function(location) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['Map'].DrawNotifications = function(spriteBatch, container) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param mapContainer Barotrauma.GUICustomComponent
+_G['Map'].UpdateNotifications = function(deltaTime, mapContainer) end
+
+---`Method Private Instance`
+---@param location Barotrauma.Location
+_G['Map'].CreateLocationInfoOverlay = function(location) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param deltaTime System.Single
+---@param mapContainer Barotrauma.GUICustomComponent
+_G['Map'].Update = function(campaign, deltaTime, mapContainer) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param mapContainer Barotrauma.GUICustomComponent
+_G['Map'].Draw = function(campaign, spriteBatch, mapContainer) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param strength System.Single
+_G['Map'].DrawNoise = function(spriteBatch, rect, strength) end
+
+---`Method Private Static`
+---@return System.Single
+_G['Map'].GetPerlinNoise = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param connection Barotrauma.LocationConnection
+---@param viewArea Microsoft.Xna.Framework.Rectangle
+---@param viewOffset Microsoft.Xna.Framework.Vector2
+---@param currentDisplayLocation Barotrauma.Location
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Map'].DrawConnection = function(spriteBatch, connection, viewArea, viewOffset, currentDisplayLocation, overrideColor) end
+
+---`Method Private Instance`
+---@param tooltipPos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Map'].IsPreferredTooltip = function(tooltipPos) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['Map'].DrawDecorativeHUD = function(spriteBatch, rect) end
+
+---`Method Private Instance`
+---@param anim Barotrauma.Map.MapAnim
+---@param deltaTime System.Single
+_G['Map'].UpdateMapAnim = function(anim, deltaTime) end
+
+---`Method Public Instance`
+_G['Map'].ResetPendingSub = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+_G['Map'].GetSelectedMissionIndices = function() end
+
+---`Method Private Instance`
+_G['Map'].InitProjectSpecific = function() end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Map'].Generate = function(campaign) end
+
+---`Method Private Instance`
+_G['Map'].GenerateAllLocationConnectionVisuals = function() end
+
+---`Method Private Instance`
+---@param connection Barotrauma.LocationConnection
+_G['Map'].GenerateLocationConnectionVisuals = function(connection) end
+
+---`Method Public Instance`
+---@param xPos System.Single
+---@return System.Int32
+_G['Map'].GetZoneIndex = function(xPos) end
+
+---`Method Public Instance`
+---@overload fun(mapPos:Microsoft.Xna.Framework.Vector2):(Barotrauma.Biome)
+---@param xPos System.Single
+---@return Barotrauma.Biome
+_G['Map'].GetBiome = function(xPos) end
+
+---`Method Private Instance`
+---@param rand System.Random
+_G['Map'].AssignBiomes = function(rand) end
+
+---`Method Private Instance`
+---@return Barotrauma.Location
+_G['Map'].GetPreviousToEndLocation = function() end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param location Barotrauma.Location
+_G['Map'].ForceLocationTypeToNone = function(campaign, location) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Map'].CreateEndLocation = function(campaign) end
+
+---`Method Private Instance`
+_G['Map'].AssignEndLocationLevelData = function() end
+
+---`Method Private Instance`
+---@param seeds (System.Collections.Generic.List*1Barotrauma*LocationConnection)|(Barotrauma.LocationConnection[])
+_G['Map'].ExpandBiomes = function(seeds) end
+
+---`Method Public Instance`
+_G['Map'].MoveToNextLocation = function() end
+
+---`Method Public Instance`
+---@param index System.Int32
+_G['Map'].SetLocation = function(index) end
+
+---`Method Public Instance`
+---@overload fun(index:System.Int32)
+---@param location Barotrauma.Location
+_G['Map'].SelectLocation = function(location) end
+
+---`Method Public Instance`
+---@param missionIndices (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+_G['Map'].SelectMission = function(missionIndices) end
+
+---`Method Public Instance`
+---@param preferUndiscovered System.Boolean
+_G['Map'].SelectRandomLocation = function(preferUndiscovered) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param transitionType Barotrauma.CampaignMode.TransitionType
+---@param roundDuration System.Single
+_G['Map'].ProgressWorld = function(campaign, transitionType, roundDuration) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Map'].ProgressWorld = function(campaign) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['Map'].ProgressLocationTypeChanges = function(campaign, location) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param location Barotrauma.Location
+---@param change Barotrauma.LocationTypeChange
+---@return System.Boolean
+_G['Map'].ChangeLocationType = function(campaign, location, change) end
+
+---`Method Public Static`
+---@param startLocation Barotrauma.Location
+---@param maxDistance System.Int32
+---@param criteria (System.Func*1Barotrauma*Location*1System*Boolean)|(fun(arg:Barotrauma.Location):(System.Boolean))
+---@param connectionCriteria? (System.Func*1Barotrauma*LocationConnection*1System*Boolean)|(fun(arg:Barotrauma.LocationConnection):(System.Boolean))
+---@return System.Boolean
+_G['Map'].LocationOrConnectionWithinDistance = function(startLocation, maxDistance, criteria, connectionCriteria) end
+
+---`Method Public Static`
+---@param startLocation Barotrauma.Location
+---@param maxDistance System.Int32
+---@param criteria (System.Func*1Barotrauma*Location*1System*Boolean)|(fun(arg:Barotrauma.Location):(System.Boolean))
+---@param connectionCriteria? (System.Func*1Barotrauma*LocationConnection*1System*Boolean)|(fun(arg:Barotrauma.LocationConnection):(System.Boolean))
+---@return System.Int32
+_G['Map'].GetDistanceToClosestLocationOrConnection = function(startLocation, maxDistance, criteria, connectionCriteria) end
+
+---`Method Private Instance`
+---@param location Barotrauma.Location
+---@param prevName Barotrauma.LocalizedString
+---@param change Barotrauma.LocationTypeChange
+_G['Map'].ChangeLocationTypeProjSpecific = function(location, prevName, change) end
+
+---`Method Private Instance`
+_G['Map'].ClearAnimQueue = function() end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param checkTalents? System.Boolean
+_G['Map'].Discover = function(location, checkTalents) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+_G['Map'].Visit = function(location) end
+
+---`Method Public Instance`
+_G['Map'].ClearLocationHistory = function() end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Nullable*1System*Int32
+_G['Map'].GetDiscoveryIndex = function(location) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param includeLocationsWithoutOutpost? System.Boolean
+---@return System.Nullable*1System*Int32
+_G['Map'].GetVisitIndex = function(location, includeLocationsWithoutOutpost) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['Map'].IsDiscovered = function(location) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['Map'].IsVisited = function(location) end
+
+---`Method Private Instance`
+---@param location Barotrauma.Location
+_G['Map'].RemoveFogOfWarProjSpecific = function(location) end
+
+---`Method Public Static`
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Map
+_G['Map'].Load = function(campaign, element) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@param showNotifications System.Boolean
+_G['Map'].LoadState = function(campaign, element, showNotifications) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Map'].Save = function(element) end
+
+---`Method Public Instance`
+_G['Map'].Remove = function() end
+
+---`Method Private Instance`
+_G['Map'].RemoveProjSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'] = function(campaign, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'].__new = function(campaign, seed) end
+
+---`Constructor Private Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'] = function(campaign, seed) end
+
+---`Constructor Private Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'].__new = function(campaign, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D97340.lua b/Meta/Types/client/_00007FFD97D97340.lua
new file mode 100644
index 0000000..e6161b4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D97340.lua
@@ -0,0 +1,294 @@
+---@meta
+---@class Barotrauma.SubmarineInfo : System.Object
+---`Field Public Instance`
+---@field PreviewImage Barotrauma.Sprite
+---`Field Private Instance`
+---@field hashTask System.Threading.Tasks.Task
+---`Field Private Instance`
+---@field hash Barotrauma.Md5Hash
+---`Field Public Instance`
+---@field LastModifiedTime System.DateTime
+---`Field Public Instance`
+---@field RecommendedCrewSizeMin System.Int32
+---`Field Public Instance`
+---@field RecommendedCrewSizeMax System.Int32
+---`Field Public Instance`
+---@field RecommendedCrewExperience Barotrauma.SubmarineInfo.CrewExperienceLevel
+---`Field Public Instance`
+---@field RequiredContentPackages (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field SubmarineClass Barotrauma.SubmarineClass
+---`Field Private Instance`
+---@field requiredContentPackagesInstalled System.Nullable*1System*Boolean
+---`Field Private Instance`
+---@field subsLeftBehind System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field LeftBehindDockingPortIDs (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Public Instance`
+---@field BlockedDockingPortIDs (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Public Instance`
+---@field OutpostGenerationParams Barotrauma.OutpostGenerationParams
+---`Field Public Instance`
+---@field OutpostNPCs (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Character)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[]))})
+---`Field Private Static`
+---@field savedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Public Static`
+---@field HighestTier System.Int32
+---`Getter Public Static`
+---@field SavedSubmarines (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tags Barotrauma.SubmarineTag
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tier System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EqualityCheckVal System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Price System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InitialSuppliesSpawned System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NoItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LowFuel System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GameVersion System.Version
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Type Barotrauma.SubmarineType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsManuallyOutfitted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutpostModuleInfo Barotrauma.OutpostModuleInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BeaconStationInfo Barotrauma.BeaconStationInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckInfo Barotrauma.WreckInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnemySubmarineInfo Barotrauma.EnemySubmarineInfo
+---`Getter Public Instance`
+---@field GetExtraSubmarineInfo Barotrauma.ExtraSubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutpostTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field IsOutpost System.Boolean
+---`Getter Public Instance`
+---@field IsWreck System.Boolean
+---`Getter Public Instance`
+---@field IsBeacon System.Boolean
+---`Getter Public Instance`
+---@field IsEnemySubmarine System.Boolean
+---`Getter Public Instance`
+---@field IsPlayer System.Boolean
+---`Getter Public Instance`
+---@field IsRuin System.Boolean
+---`Getter Public Instance`
+---@field ShouldBeRuin System.Boolean
+---`Getter Public Instance`
+---@field IsCampaignCompatible System.Boolean
+---`Getter Public Instance`
+---@field IsCampaignCompatibleIgnoreClass System.Boolean
+---`Getter Public Instance`
+---@field AllowPreviewImage System.Boolean
+---`Getter Public Instance`
+---@field MD5Hash Barotrauma.Md5Hash
+---`Getter Public Instance`
+---@field CalculatingHash System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Dimensions Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CargoCapacity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FilePath System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SubmarineElement System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsFileCorrupted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequiredContentPackagesInstalled System.Boolean
+---`Getter Public Instance`
+---@field SubsLeftBehind System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LeftBehindSubDockingPortOccupied System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LayersHiddenByDefault (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['SubmarineInfo'] = {}
+
+---`Method Public Instance`
+---@param realWorldCrushDepth System.Single-ref
+---@return System.Boolean
+_G['SubmarineInfo'].IsCrushDepthDefinedInStructures = function(realWorldCrushDepth) end
+
+---`Method Public Instance`
+---@param npc Barotrauma.Character
+---@param idOrTag Barotrauma.Identifier
+_G['SubmarineInfo'].AddOutpostNPCIdentifierOrTag = function(npc, idOrTag) end
+
+---`Method Public Instance`
+---@param filePath System.String
+---@param previewImage? System.IO.MemoryStream
+_G['SubmarineInfo'].SaveAs = function(filePath, previewImage) end
+
+---`Method Public Static`
+---@param subInfo Barotrauma.SubmarineInfo
+_G['SubmarineInfo'].AddToSavedSubs = function(subInfo) end
+
+---`Method Public Static`
+---@param filePath System.String
+_G['SubmarineInfo'].RemoveSavedSub = function(filePath) end
+
+---`Method Public Static`
+---@param filePath System.String
+_G['SubmarineInfo'].RefreshSavedSub = function(filePath) end
+
+---`Method Public Static`
+_G['SubmarineInfo'].RefreshSavedSubs = function() end
+
+---`Method Public Static`
+---@overload fun(file:System.String):(System.Xml.Linq.XDocument)
+---@param file System.String
+---@param exception System.Exception-ref
+---@return System.Xml.Linq.XDocument
+_G['SubmarineInfo'].OpenFile = function(file, exception) end
+
+---`Method Public Instance`
+---@param location? Barotrauma.Location
+---@param characterList? (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---@return System.Int32
+_G['SubmarineInfo'].GetPrice = function(location, characterList) end
+
+---`Method Public Static`
+---@param price System.Int32
+---@return System.Int32
+_G['SubmarineInfo'].GetDefaultTier = function(price) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+_G['SubmarineInfo'].CreatePreviewWindow = function(parent) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIListBox
+---@param font Barotrauma.GUIFont
+---@param includeTitle? System.Boolean
+---@param includeClass? System.Boolean
+---@param includeDescription? System.Boolean
+---@param includeCrushDepth? System.Boolean
+_G['SubmarineInfo'].CreateSpecsWindow = function(parent, font, includeTitle, includeClass, includeDescription, includeCrushDepth) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['SubmarineInfo'].GetSubCrushDepth = function() end
+
+---`Method Public Static`
+---@param subInfo Barotrauma.SubmarineInfo
+---@param pendingSubInfo Barotrauma.PendingSubInfo-ref
+---@return System.Single
+_G['SubmarineInfo'].GetSubCrushDepth = function(subInfo, pendingSubInfo) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['SubmarineInfo'].ToString = function() end
+
+---`Method Public Instance`
+_G['SubmarineInfo'].Reload = function() end
+
+---`Method Private Instance`
+_G['SubmarineInfo'].Init = function() end
+
+---`Method Private Instance`
+_G['SubmarineInfo'].InitProjectSpecific = function() end
+
+---`Method Public Instance Virtual`
+_G['SubmarineInfo'].Dispose = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['SubmarineInfo'].IsVanillaSubmarine = function() end
+
+---`Method Public Instance`
+---@param doc System.Xml.Linq.XDocument
+_G['SubmarineInfo'].StartHashDocTask = function(doc) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.SubmarineTag
+---@return System.Boolean
+_G['SubmarineInfo'].HasTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.SubmarineTag
+_G['SubmarineInfo'].AddTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.SubmarineTag
+_G['SubmarineInfo'].RemoveTag = function(tag) end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+_G['SubmarineInfo'].CheckSubsLeftBehind = function(element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'] = function(original) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'].__new = function(original) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'] = function(original) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'].__new = function(original) end
+
diff --git a/Meta/Types/client/_00007FFD97D97718.lua b/Meta/Types/client/_00007FFD97D97718.lua
new file mode 100644
index 0000000..604e7a8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D97718.lua
@@ -0,0 +1,97 @@
+---@meta
+---@class Barotrauma.Radiation : System.Object
+---`Field Private Instance`
+---@field sheet Barotrauma.SpriteSheet
+---`Field Private Instance`
+---@field isHovingOver System.Boolean
+---`Field Public Instance`
+---@field Map Barotrauma.Map
+---`Field Public Instance`
+---@field Params Barotrauma.RadiationParams
+---`Field Private Instance`
+---@field radiationAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field radiationTimer System.Single
+---`Field Private Instance`
+---@field increasedAmount System.Single
+---`Field Private Instance`
+---@field lastIncrease System.Single
+---`Field Private Static`
+---@field radiationTooltip Barotrauma.LocalizedString
+---`Field Private Static`
+---@field spriteIndex System.Single
+---`Getter Private Instance`
+---@field maxFrames System.Int32
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Amount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['Radiation'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Microsoft.Xna.Framework.Rectangle
+---@param zoom System.Single
+_G['Radiation'].Draw = function(spriteBatch, container, zoom) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Radiation'].DrawFront = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Radiation'].MapUpdate = function(deltaTime) end
+
+---`Method Public Instance`
+---@param steps? System.Single
+_G['Radiation'].OnStep = function(steps) end
+
+---`Method Public Instance`
+---@param amount System.Single
+_G['Radiation'].IncreaseRadiation = function(amount) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Radiation'].UpdateRadiation = function(deltaTime) end
+
+---`Method Public Instance`
+---@overload fun(location:Barotrauma.Location):(System.Boolean)
+---@param pos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Radiation'].Contains = function(pos) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['Radiation'].IsEntityRadiated = function(entity) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['Radiation'].Save = function() end
+
+---`Constructor Public Instance`
+---@overload fun(map:Barotrauma.Map, radiationParams:Barotrauma.RadiationParams, element?:System.Xml.Linq.XElement):Barotrauma.Radiation
+---@return Barotrauma.Radiation
+_G['Radiation'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(map:Barotrauma.Map, radiationParams:Barotrauma.RadiationParams, element?:System.Xml.Linq.XElement):Barotrauma.Radiation
+---@return Barotrauma.Radiation
+_G['Radiation'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(map:Barotrauma.Map, radiationParams:Barotrauma.RadiationParams, element?:System.Xml.Linq.XElement):Barotrauma.Radiation
+---@return Barotrauma.Radiation
+_G['Radiation'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(map:Barotrauma.Map, radiationParams:Barotrauma.RadiationParams, element?:System.Xml.Linq.XElement):Barotrauma.Radiation
+---@return Barotrauma.Radiation
+_G['Radiation'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D97B10.lua b/Meta/Types/client/_00007FFD97D97B10.lua
new file mode 100644
index 0000000..a139413
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D97B10.lua
@@ -0,0 +1,87 @@
+---@meta
+---@class Barotrauma.PriceInfo : System.Object
+---`Field Private Instance`
+---@field minReputation (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Static`
+---@field DefaultAmount System.Int32
+---`Field Private Static`
+---@field DefaultMaxAvailabilityRelativeToMin System.Single
+---`Getter Public Instance`
+---@field Price System.Int32
+---`Getter Public Instance`
+---@field CanBeBought System.Boolean
+---`Getter Public Instance`
+---@field MinAvailableAmount System.Int32
+---`Getter Public Instance`
+---@field MaxAvailableAmount System.Int32
+---`Getter Public Instance`
+---@field CanBeSpecial System.Boolean
+---`Getter Public Instance`
+---@field MinLevelDifficulty System.Int32
+---`Getter Public Instance`
+---@field BuyingPriceMultiplier System.Single
+---`Getter Public Instance`
+---@field DisplayNonEmpty System.Boolean
+---`Getter Public Instance`
+---@field StoreIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field RequiresUnlock System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequiredFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---@field MinReputation (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+_G['PriceInfo'] = {}
+
+---`Method Private Instance`
+---@param priceInfoElement System.Xml.Linq.XElement
+_G['PriceInfo'].LoadReputationRestrictions = function(priceInfoElement) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param defaultPrice Barotrauma.PriceInfo-ref
+---@return (System.Collections.Generic.List*1Barotrauma*PriceInfo)|(Barotrauma.PriceInfo[])
+_G['PriceInfo'].CreatePriceInfos = function(element, defaultPrice) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param defaultValue System.Int32
+---@return System.Int32
+_G['PriceInfo'].GetMinAmount = function(element, defaultValue) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param defaultValue System.Int32
+---@return System.Int32
+_G['PriceInfo'].GetMaxAmount = function(element, defaultValue) end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement):Barotrauma.PriceInfo
+---@param price System.Int32
+---@param canBeBought System.Boolean
+---@param minAmount? System.Int32
+---@param maxAmount? System.Int32
+---@param canBeSpecial? System.Boolean
+---@param minLevelDifficulty? System.Int32
+---@param buyingPriceMultiplier? System.Single
+---@param displayNonEmpty? System.Boolean
+---@param requiresUnlock? System.Boolean
+---@param storeIdentifier? System.String
+---@return Barotrauma.PriceInfo
+_G['PriceInfo'] = function(price, canBeBought, minAmount, maxAmount, canBeSpecial, minLevelDifficulty, buyingPriceMultiplier, displayNonEmpty, requiresUnlock, storeIdentifier) end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement):Barotrauma.PriceInfo
+---@param price System.Int32
+---@param canBeBought System.Boolean
+---@param minAmount? System.Int32
+---@param maxAmount? System.Int32
+---@param canBeSpecial? System.Boolean
+---@param minLevelDifficulty? System.Int32
+---@param buyingPriceMultiplier? System.Single
+---@param displayNonEmpty? System.Boolean
+---@param requiresUnlock? System.Boolean
+---@param storeIdentifier? System.String
+---@return Barotrauma.PriceInfo
+_G['PriceInfo'].__new = function(price, canBeBought, minAmount, maxAmount, canBeSpecial, minLevelDifficulty, buyingPriceMultiplier, displayNonEmpty, requiresUnlock, storeIdentifier) end
+
diff --git a/Meta/Types/client/_00007FFD97D99140.lua b/Meta/Types/client/_00007FFD97D99140.lua
new file mode 100644
index 0000000..7b0d9a9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D99140.lua
@@ -0,0 +1,379 @@
+---@meta
+---@class Barotrauma.Location : System.Object
+---`Field Public Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*LocationConnection)|(Barotrauma.LocationConnection[])
+---`Field Private Instance`
+---@field nameFormatIndex System.Int32
+---`Field Private Instance`
+---@field nameIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field rawName System.String
+---`Field Private Instance`
+---@field addInitialMissionsForType Barotrauma.LocationType
+---`Field Public Instance`
+---@field ProximityTimer (System.Collections.Generic.Dictionary*1Barotrauma*LocationTypeChange*Requirement*1System*Int32)|({[Barotrauma.LocationTypeChange.Requirement]:(System.Int32)})
+---`Field Public Instance`
+---@field PendingLocationTypeChange System.Nullable*1System*ValueTuple*2Barotrauma*LocationTypeChange*2System*Int32*2Barotrauma*MissionPrefab
+---`Field Public Instance`
+---@field LocationTypeChangeCooldown System.Int32
+---`Field Public Instance`
+---@field DisallowLocationTypeChanges System.Boolean
+---`Field Private Instance`
+---@field takenItems (System.Collections.Generic.List*1Barotrauma*Location*TakenItem)|(Barotrauma.Location.TakenItem[])
+---`Field Private Instance`
+---@field killedCharacterIdentifiers (System.Collections.Generic.HashSet*1System*Int32)|(System.Int32[])
+---`Field Private Instance`
+---@field availableMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Private Instance`
+---@field selectedMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Private Instance`
+---@field priceMultiplier System.Single
+---`Field Private Instance`
+---@field mechanicalpriceMultiplier System.Single
+---`Field Public Instance`
+---@field LastTypeChangeMessage System.String
+---`Field Public Instance`
+---@field TimeSinceLastTypeChange System.Int32
+---`Field Public Instance`
+---@field IsGateBetweenBiomes System.Boolean
+---`Field Private Instance`
+---@field loadedMissions (System.Collections.Generic.List*1Barotrauma*Location*LoadedMission)|(Barotrauma.Location.LoadedMission[])
+---`Field Public Instance`
+---@field HireManager Barotrauma.HireManager
+---`Field Private Static`
+---@field SpecialsUpdateInterval System.Int32
+---`Field Private Static`
+---@field MechanicalMaxDiscountPercentage System.Single
+---`Field Private Static`
+---@field HealMaxDiscountPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field NameIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field NameFormatIndex System.Int32
+---`Getter Public Instance`
+---@field Discovered System.Boolean
+---`Getter Public Instance`
+---@field Visited System.Boolean
+---`Getter Public Instance`
+---@field LocationTypeChangesBlocked System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Biome Barotrauma.Biome
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MapPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Type Barotrauma.LocationType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OriginalType Barotrauma.LocationType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelData Barotrauma.LevelData
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PortraitId System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Faction Barotrauma.Faction
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SecondaryFaction Barotrauma.Faction
+---`Getter Public Instance`
+---@field Reputation Barotrauma.Reputation
+---`Getter Public Instance`
+---@field IsFactionHostile System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TurnsInRadiation System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stores (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Location*StoreInfo)|({[Barotrauma.Identifier]:(Barotrauma.Location.StoreInfo)})
+---`Getter Private Instance`
+---@field StoreMaxReputationModifier System.Single
+---`Getter Private Instance`
+---@field StoreSellPriceModifier System.Single
+---`Getter Private Instance`
+---@field DailySpecialPriceModifier System.Single
+---`Getter Private Instance`
+---@field RequestGoodPriceModifier System.Single
+---`Getter Public Instance`
+---@field StoreInitialBalance System.Int32
+---`Getter Private Instance`
+---@field StorePriceModifierRange System.Int32
+---`Getter Public Instance`
+---@field DailySpecialsCount System.Int32
+---`Getter Public Instance`
+---@field RequestedGoodsCount System.Int32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field StepsSinceSpecialsUpdated System.Int32
+---`Getter Public Instance`
+---@field StoreIdentifiers (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field TakenItems (System.Collections.Generic.IEnumerable*1Barotrauma*Location*TakenItem)|(fun():(Barotrauma.Location.TakenItem))
+---`Getter Public Instance`
+---@field KilledCharacterIdentifiers (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+---`Getter Public Instance`
+---@field AvailableMissions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field SelectedMissions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PriceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MechanicalPriceMultiplier System.Single
+_G['Location'] = {}
+
+---`Method Public Instance`
+---@param characters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['Location'].RegisterKilledCharacters = function(characters) end
+
+---`Method Public Instance`
+_G['Location'].RemoveTakenItems = function() end
+
+---`Method Public Instance`
+---@param cost System.Int32
+---@return System.Int32
+_G['Location'].GetAdjustedMechanicalCost = function(cost) end
+
+---`Method Public Instance`
+---@param cost System.Int32
+---@return System.Int32
+_G['Location'].GetAdjustedHealCost = function(cost) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.Location.StoreInfo
+_G['Location'].GetStore = function(identifier) end
+
+---`Method Public Instance`
+---@param force? System.Boolean
+_G['Location'].CreateStores = function(force) end
+
+---`Method Public Instance`
+_G['Location'].UpdateStores = function() end
+
+---`Method Public Instance`
+_G['Location'].UpdateSpecials = function() end
+
+---`Method Private Instance`
+_G['Location'].UpdateStoreIdentifiers = function() end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+_G['Location'].AddNewStore = function(identifier) end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+_G['Location'].AddStock = function(items) end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['Location'].RemoveStock = function(items) end
+
+---`Method Public Static`
+---@return System.Int32
+_G['Location'].GetExtraSpecialSalesCount = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].CanHaveSubsForSale = function() end
+
+---`Method Public Instance`
+---@param submarineClass? Barotrauma.SubmarineClass
+---@return System.Int32
+_G['Location'].HighestSubmarineTierAvailable = function(submarineClass) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@return System.Boolean
+_G['Location'].IsSubmarineAvailable = function(info) end
+
+---`Method Private Instance`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@return System.Boolean
+_G['Location'].CanHaveCampaignInteraction = function(interactionType) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Location'].Reset = function(campaign) end
+
+---`Method Public Instance`
+---@param map Barotrauma.Map
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Location'].Save = function(map, parentElement) end
+
+---`Method Public Instance`
+_G['Location'].Remove = function() end
+
+---`Method Public Instance`
+_G['Location'].RemoveProjSpecific = function() end
+
+---`Method Public Instance`
+---@param mission Barotrauma.Mission
+_G['Location'].SelectMission = function(mission) end
+
+---`Method Public Instance`
+---@param mission Barotrauma.Mission
+_G['Location'].DeselectMission = function(mission) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+_G['Location'].GetSelectedMissionIndices = function() end
+
+---`Method Public Instance`
+---@param missionIndices (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+_G['Location'].SetSelectedMissionIndices = function(missionIndices) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Location'].ToString = function() end
+
+---`Method Public Instance`
+---@param locationElement System.Xml.Linq.XElement
+_G['Location'].LoadLocationTypeChange = function(locationElement) end
+
+---`Method Public Instance`
+---@param locationElement System.Xml.Linq.XElement
+_G['Location'].LoadMissions = function(locationElement) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param zone System.Nullable*1System*Int32
+---@param rand System.Random
+---@param requireOutpost System.Boolean
+---@param forceLocationType? Barotrauma.LocationType
+---@param existingLocations? (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+---@return Barotrauma.Location
+_G['Location'].CreateRandom = function(position, zone, rand, requireOutpost, forceLocationType, existingLocations) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param newType Barotrauma.LocationType
+---@param createStores? System.Boolean
+_G['Location'].ChangeType = function(campaign, newType, createStores) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Location'].TryAssignFactionBasedOnLocationType = function(campaign) end
+
+---`Method Public Instance`
+---@param randSync? Barotrauma.Rand.RandSync
+_G['Location'].UnlockInitialMissions = function(randSync) end
+
+---`Method Public Instance`
+---@overload fun(missionPrefab:Barotrauma.MissionPrefab, connection:Barotrauma.LocationConnection)
+---@param missionPrefab Barotrauma.MissionPrefab
+_G['Location'].UnlockMission = function(missionPrefab) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param invokingContentPackage? Barotrauma.ContentPackage
+---@return Barotrauma.Mission
+_G['Location'].UnlockMissionByIdentifier = function(identifier, invokingContentPackage) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param random? System.Random
+---@param invokingContentPackage? Barotrauma.ContentPackage
+---@return Barotrauma.Mission
+_G['Location'].UnlockMissionByTag = function(tag, random, invokingContentPackage) end
+
+---`Method Private Instance`
+---@param mission Barotrauma.Mission
+_G['Location'].AddMission = function(mission) end
+
+---`Method Private Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, connection:Barotrauma.LocationConnection-ref):(Barotrauma.Mission)
+---@overload fun(prefab:Barotrauma.MissionPrefab, connection:Barotrauma.LocationConnection):(Barotrauma.Mission)
+---@param prefab Barotrauma.MissionPrefab
+---@return Barotrauma.Mission
+_G['Location'].InstantiateMission = function(prefab) end
+
+---`Method Public Instance`
+---@param map Barotrauma.Map
+_G['Location'].InstantiateLoadedMissions = function(map) end
+
+---`Method Public Instance`
+_G['Location'].ClearMissions = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].HasOutpost = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].IsCriticallyRadiated = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocationType
+_G['Location'].GetLocationType = function() end
+
+---`Method Public Instance`
+---@param connection Barotrauma.LocationConnection
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+_G['Location'].GetMissionsInConnection = function(connection) end
+
+---`Method Public Instance`
+---@param character Barotrauma.CharacterInfo
+_G['Location'].RemoveHireableCharacter = function(character) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))
+_G['Location'].GetHireableCharacters = function() end
+
+---`Method Public Instance`
+---@param hireableCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))
+_G['Location'].ForceHireableCharacters = function(hireableCharacters) end
+
+---`Method Private Instance`
+---@param type Barotrauma.LocationType
+---@param rand System.Random
+---@param existingLocations (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+_G['Location'].CreateRandomName = function(type, rand, existingLocations) end
+
+---`Method Public Static`
+---@overload fun(locationTypeIdentifier:Barotrauma.Identifier, nameFormatIndex:System.Int32, nameId:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@param type Barotrauma.LocationType
+---@param nameFormatIndex System.Int32
+---@param nameId Barotrauma.Identifier
+---@return Barotrauma.LocalizedString
+_G['Location'].GetName = function(type, nameFormatIndex, nameId) end
+
+---`Method Public Instance`
+---@param nameId Barotrauma.Identifier
+_G['Location'].ForceName = function(nameId) end
+
+---`Method Public Instance`
+---@param locationElement System.Xml.Linq.XElement
+_G['Location'].LoadStores = function(locationElement) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].IsRadiated = function() end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Location'].RegisterTakenItems = function(items) end
+
+---`Constructor Public Instance`
+---@overload fun(mapPosition:Microsoft.Xna.Framework.Vector2, zone:System.Nullable*1System*Int32, rand:System.Random, requireOutpost?:System.Boolean, forceLocationType?:Barotrauma.LocationType, existingLocations?:(System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))):Barotrauma.Location
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Location
+_G['Location'] = function(campaign, element) end
+
+---`Constructor Public Instance`
+---@overload fun(mapPosition:Microsoft.Xna.Framework.Vector2, zone:System.Nullable*1System*Int32, rand:System.Random, requireOutpost?:System.Boolean, forceLocationType?:Barotrauma.LocationType, existingLocations?:(System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))):Barotrauma.Location
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Location
+_G['Location'].__new = function(campaign, element) end
+
diff --git a/Meta/Types/client/_00007FFD97D99330.lua b/Meta/Types/client/_00007FFD97D99330.lua
new file mode 100644
index 0000000..88c24f0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D99330.lua
@@ -0,0 +1,52 @@
+---@meta
+---@class Barotrauma.LocationTypeChange : System.Object
+---`Field Public Instance`
+---@field CurrentType Barotrauma.Identifier
+---`Field Public Instance`
+---@field ChangeToType Barotrauma.Identifier
+---`Field Public Instance`
+---@field Probability System.Single
+---`Field Public Instance`
+---@field RequireDiscovered System.Boolean
+---`Field Public Instance`
+---@field Requirements (System.Collections.Generic.List*1Barotrauma*LocationTypeChange*Requirement)|(Barotrauma.LocationTypeChange.Requirement[])
+---`Field Private Instance`
+---@field requireChangeMessages System.Boolean
+---`Field Private Instance`
+---@field messageTag System.String
+---`Field Public Instance`
+---@field DisallowedAdjacentLocations (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field DisallowedProximity System.Int32
+---`Field Public Instance`
+---@field CooldownAfterChange System.Int32
+---`Field Public Instance`
+---@field RequiredDurationRange Microsoft.Xna.Framework.Point
+_G['LocationTypeChange'] = {}
+
+---`Method Public Instance`
+---@param faction Barotrauma.Faction
+---@return (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+_G['LocationTypeChange'].GetMessages = function(faction) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Single
+_G['LocationTypeChange'].DetermineProbability = function(location) end
+
+---`Constructor Public Instance`
+---@param currentType Barotrauma.Identifier
+---@param element Barotrauma.ContentXElement
+---@param requireChangeMessages System.Boolean
+---@param defaultProbability? System.Single
+---@return Barotrauma.LocationTypeChange
+_G['LocationTypeChange'] = function(currentType, element, requireChangeMessages, defaultProbability) end
+
+---`Constructor Public Instance`
+---@param currentType Barotrauma.Identifier
+---@param element Barotrauma.ContentXElement
+---@param requireChangeMessages System.Boolean
+---@param defaultProbability? System.Single
+---@return Barotrauma.LocationTypeChange
+_G['LocationTypeChange'].__new = function(currentType, element, requireChangeMessages, defaultProbability) end
+
diff --git a/Meta/Types/client/_00007FFD97D99958.lua b/Meta/Types/client/_00007FFD97D99958.lua
new file mode 100644
index 0000000..c05b395
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D99958.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.LocationConnection : System.Object
+---`Field Public Instance`
+---@field Biome Barotrauma.Biome
+---`Field Public Instance`
+---@field Difficulty System.Single
+---`Field Public Instance`
+---@field CrackSegments (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+---`Field Public Instance`
+---@field Passed System.Boolean
+---`Field Public Instance`
+---@field Locked System.Boolean
+---`Field Private Instance`
+---@field availableMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelData Barotrauma.LevelData
+---`Getter Public Instance`
+---@field CenterPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Length System.Single
+---`Getter Public Instance`
+---@field AvailableMissions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+_G['LocationConnection'] = {}
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return Barotrauma.Location
+_G['LocationConnection'].OtherLocation = function(location) end
+
+---`Constructor Public Instance`
+---@param location1 Barotrauma.Location
+---@param location2 Barotrauma.Location
+---@return Barotrauma.LocationConnection
+_G['LocationConnection'] = function(location1, location2) end
+
+---`Constructor Public Instance`
+---@param location1 Barotrauma.Location
+---@param location2 Barotrauma.Location
+---@return Barotrauma.LocationConnection
+_G['LocationConnection'].__new = function(location1, location2) end
+
diff --git a/Meta/Types/client/_00007FFD97D9A3B0.lua b/Meta/Types/client/_00007FFD97D9A3B0.lua
new file mode 100644
index 0000000..b911169
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9A3B0.lua
@@ -0,0 +1,346 @@
+---@meta
+---@class Barotrauma.EventManager : System.Object
+---`Field Private Instance`
+---@field intensityGraph Barotrauma.Graph
+---`Field Private Instance`
+---@field targetIntensityGraph Barotrauma.Graph
+---`Field Private Instance`
+---@field monsterStrengthGraph Barotrauma.Graph
+---`Field Private Instance`
+---@field lastIntensityUpdate System.Single
+---`Field Private Instance`
+---@field pinnedPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field isDragging System.Boolean
+---`Field Private Instance`
+---@field isGraphSelected System.Boolean
+---`Field Private Instance`
+---@field debugPositions (System.Collections.Generic.List*1Barotrauma*EventManager*DebugLine)|(Barotrauma.EventManager.DebugLine[])
+---`Field Private Instance`
+---@field level Barotrauma.Level
+---`Field Private Instance`
+---@field preloadedSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field currentIntensity System.Single
+---`Field Private Instance`
+---@field targetIntensity System.Single
+---`Field Private Instance`
+---@field musicIntensity System.Single
+---`Field Private Instance`
+---@field eventThreshold System.Single
+---`Field Private Instance`
+---@field eventCoolDown System.Single
+---`Field Private Instance`
+---@field intensityUpdateTimer System.Single
+---`Field Private Instance`
+---@field pathFinder Barotrauma.PathFinder
+---`Field Private Instance`
+---@field totalPathLength System.Single
+---`Field Private Instance`
+---@field calculateDistanceTraveledTimer System.Single
+---`Field Private Instance`
+---@field distanceTraveled System.Single
+---`Field Private Instance`
+---@field avgCrewHealth System.Single
+---`Field Private Instance`
+---@field avgHullIntegrity System.Single
+---`Field Private Instance`
+---@field floodingAmount System.Single
+---`Field Private Instance`
+---@field fireAmount System.Single
+---`Field Private Instance`
+---@field enemyDanger System.Single
+---`Field Private Instance`
+---@field monsterStrength System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthMain System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthRuins System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthWrecks System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthCaves System.Single
+---`Field Private Instance`
+---@field roundDuration System.Single
+---`Field Private Instance`
+---@field isCrewAway System.Boolean
+---`Field Private Instance`
+---@field crewAwayResetTimer System.Single
+---`Field Private Instance`
+---@field crewAwayDuration System.Single
+---`Field Private Instance`
+---@field pendingEventSets (System.Collections.Generic.List*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---`Field Private Instance`
+---@field selectedEvents (System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Collections*Generic*List*2Barotrauma*Event)|({[Barotrauma.EventSet]:((System.Collections.Generic.List*1Barotrauma*Event)|(Barotrauma.Event[]))})
+---`Field Private Instance`
+---@field activeEvents (System.Collections.Generic.List*1Barotrauma*Event)|(Barotrauma.Event[])
+---`Field Private Instance`
+---@field finishedEvents (System.Collections.Generic.HashSet*1Barotrauma*Event)|(Barotrauma.Event[])
+---`Field Private Instance`
+---@field nonRepeatableEvents (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field settings Barotrauma.EventManagerSettings
+---`Field Private Instance`
+---@field isClient System.Boolean
+---`Field Public Instance`
+---@field QueuedEvents (System.Collections.Generic.Queue*1Barotrauma*Event)|(fun():(Barotrauma.Event))
+---`Field Public Instance`
+---@field QueuedEventsForNextRound (System.Collections.Generic.Queue*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Field Private Instance`
+---@field timeStamps (System.Collections.Generic.List*1Barotrauma*EventManager*TimeStamp)|(Barotrauma.EventManager.TimeStamp[])
+---`Field Public Instance`
+---@field EventLog Barotrauma.EventLog
+---`Field Public Instance`
+---@field Enabled System.Boolean
+---`Field Private Instance`
+---@field random Barotrauma.MTRandom
+---`Field Private Instance`
+---@field eventsInitialized System.Boolean
+---`Field Private Static`
+---@field intensityGraphUpdateInterval System.Single
+---`Field Private Static`
+---@field IntensityUpdateInterval System.Single
+---`Field Private Static`
+---@field CalculateDistanceTraveledInterval System.Single
+---`Field Private Static`
+---@field MaxEventHistory System.Int32
+---`Field Private Static`
+---@field CrewAwayResetDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PinnedEvent Barotrauma.Event
+---`Getter Public Instance`
+---@field CurrentIntensity System.Single
+---`Getter Public Instance`
+---@field MusicIntensity System.Single
+---`Getter Public Instance`
+---@field ActiveEvents (System.Collections.Generic.IEnumerable*1Barotrauma*Event)|(fun():(Barotrauma.Event))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomSeed System.Int32
+_G['EventManager'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['EventManager'].DebugDraw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param y System.Single
+_G['EventManager'].DebugDrawHUD = function(spriteBatch, y) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['EventManager'].DrawPinnedEvent = function(spriteBatch) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param scriptedEvent Barotrauma.ScriptedEvent
+_G['EventManager'].DrawEventTargetTags = function(spriteBatch, scriptedEvent) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param ev Barotrauma.Event
+---@param parentRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['EventManager'].DrawEvent = function(spriteBatch, ev, parentRect) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param scriptedEvent Barotrauma.ScriptedEvent
+---@param parentRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['EventManager'].DrawScriptedEvent = function(spriteBatch, scriptedEvent, parentRect) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param artifactEvent Barotrauma.ArtifactEvent
+---@param parentRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['EventManager'].DrawArtifactEvent = function(spriteBatch, artifactEvent, parentRect) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param monsterEvent Barotrauma.MonsterEvent
+---@param parentRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['EventManager'].DrawMonsterEvent = function(spriteBatch, monsterEvent, parentRect) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param event Barotrauma.Event
+---@param text System.String
+---@param parentRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param drawPoints? (System.Collections.Generic.List*1Barotrauma*EventManager*DebugLine)|(Barotrauma.EventManager.DebugLine[])
+---@return Microsoft.Xna.Framework.Rectangle
+_G['EventManager'].DrawInfoRectangle = function(spriteBatch, event, text, parentRect, drawPoints) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['EventManager'].ClientRead = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['EventManager'].ApplyNetworkMessageWhenRoundLoaded = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['EventManager'].ClientApplyNetworkMessage = function(msg) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.GameClient
+---@param msg Barotrauma.Networking.IReadMessage
+_G['EventManager'].ClientReadEventLog = function(client, msg) end
+
+---`Method Private Static`
+---@param client Barotrauma.Networking.GameClient
+---@param msg Barotrauma.Networking.IReadMessage
+_G['EventManager'].ClientReadEventObjective = function(client, msg) end
+
+---`Method Public Instance`
+---@param e Barotrauma.Event
+_G['EventManager'].AddTimeStamp = function(e) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+_G['EventManager'].StartRound = function(level) end
+
+---`Method Public Instance`
+---@param newEvent Barotrauma.Event
+_G['EventManager'].ActivateEvent = function(newEvent) end
+
+---`Method Public Instance`
+_G['EventManager'].ClearEvents = function() end
+
+---`Method Private Instance`
+_G['EventManager'].SelectSettings = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['EventManager'].GetFilesToPreload = function() end
+
+---`Method Public Instance`
+---@param contentFiles (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['EventManager'].PreloadContent = function(contentFiles) end
+
+---`Method Public Instance`
+_G['EventManager'].TriggerOnEndRoundActions = function() end
+
+---`Method Public Instance`
+_G['EventManager'].EndRound = function() end
+
+---`Method Public Instance`
+---@param registerFinishedOnly? System.Boolean
+_G['EventManager'].RegisterEventHistory = function(registerFinishedOnly) end
+
+---`Method Public Instance`
+_G['EventManager'].SkipEventCooldown = function() end
+
+---`Method Private Instance`
+---@param eventPrefab Barotrauma.EventPrefab
+---@param baseCommonness System.Single
+---@return System.Single
+_G['EventManager'].CalculateCommonness = function(eventPrefab, baseCommonness) end
+
+---`Method Private Instance`
+---@param eventSet Barotrauma.EventSet
+_G['EventManager'].CreateEvents = function(eventSet) end
+
+---`Method Private Instance`
+---@param eventSets (System.Collections.Generic.IReadOnlyList*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---@param requireCampaignSet? System.Nullable*1System*Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*EventSet)|(fun():(Barotrauma.EventSet))
+_G['EventManager'].GetAllowedEventSets = function(eventSets, requireCampaignSet) end
+
+---`Method Private Instance`
+---@param eventSets (System.Collections.Generic.IReadOnlyList*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---@param requireCampaignSet? System.Nullable*1System*Boolean
+---@param random? System.Random
+---@return Barotrauma.EventSet
+_G['EventManager'].SelectRandomEvents = function(eventSets, requireCampaignSet, random) end
+
+---`Method Public Static`
+---@param e Barotrauma.EventPrefab
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsSuitable = function(e, level) end
+
+---`Method Public Static`
+---@param e Barotrauma.EventPrefab
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsLevelSuitable = function(e, level) end
+
+---`Method Private Static`
+---@param factionId Barotrauma.Identifier
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsFactionSuitable = function(factionId, level) end
+
+---`Method Private Static`
+---@param eventSet Barotrauma.EventSet
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsValidForLevel = function(eventSet, level) end
+
+---`Method Private Instance`
+---@param eventSet Barotrauma.EventSet
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['EventManager'].IsValidForLocation = function(eventSet, location) end
+
+---`Method Private Instance`
+---@return Barotrauma.Location
+_G['EventManager'].GetEventLocation = function() end
+
+---`Method Private Instance`
+---@param eventSet Barotrauma.EventSet
+---@return System.Boolean
+_G['EventManager'].CanStartEventSet = function(eventSet) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['EventManager'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+_G['EventManager'].EntitySpawned = function(entity) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EventManager'].CalculateCurrentIntensity = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['EventManager'].CalculateDistanceTraveled = function() end
+
+---`Method Public Static`
+---@return Barotrauma.ISpatialEntity
+_G['EventManager'].GetRefEntity = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['EventManager'].IsCrewAway = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EventManager'].IsCharacterAway = function(character) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['EventManager'].Load = function(element) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['EventManager'].Save = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EventManager
+_G['EventManager'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EventManager
+_G['EventManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D9A788.lua b/Meta/Types/client/_00007FFD97D9A788.lua
new file mode 100644
index 0000000..4f7cb76
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9A788.lua
@@ -0,0 +1,94 @@
+---@meta
+---@class Barotrauma.EventPrefab : Barotrauma.Prefab
+---`Field Public Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field EventType System.Type
+---`Field Private Instance`
+---@field tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Probability System.Single
+---`Field Public Instance`
+---@field TriggerEventCooldown System.Boolean
+---`Field Public Instance`
+---@field Commonness System.Single
+---`Field Public Instance`
+---@field BiomeIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field RequiredLayer Barotrauma.Identifier
+---`Field Public Instance`
+---@field RequiredSpawnPointTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field UnlockPathEvent System.Boolean
+---`Field Public Instance`
+---@field UnlockPathTooltip System.String
+---`Field Public Instance`
+---@field UnlockPathReputation System.Int32
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventPrefab)|(fun():(Barotrauma.EventPrefab))
+---`Getter Public Instance`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['EventPrefab'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.RandomEventsFile
+---@param fallbackIdentifier? Barotrauma.Identifier
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].Create = function(element, file, fallbackIdentifier) end
+
+---`Method Public Instance`
+---@param seed System.Int32
+---@param instance Barotrauma.T-ref
+---@return System.Boolean
+_G['EventPrefab'].TryCreateInstance = function(seed, instance) end
+
+---`Method Public Instance`
+---@param seed System.Int32
+---@return Barotrauma.Event
+_G['EventPrefab'].CreateInstance = function(seed) end
+
+---`Method Public Instance Virtual`
+_G['EventPrefab'].Dispose = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['EventPrefab'].ToString = function() end
+
+---`Method Public Static`
+---@param biomeIdentifier Barotrauma.Identifier
+---@param faction Barotrauma.Faction
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].GetUnlockPathEvent = function(biomeIdentifier, faction) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@param tag Barotrauma.Identifier
+---@param source Barotrauma.ContentPackage
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].FindEventPrefab = function(identifier, tag, source) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D9AA38.lua b/Meta/Types/client/_00007FFD97D9AA38.lua
new file mode 100644
index 0000000..a161b72
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9AA38.lua
@@ -0,0 +1,69 @@
+---@meta
+---@class Barotrauma.Event : System.Object
+---`Field Private Instance`
+---@field Finished (System.Action)|(fun())
+---`Field NonPublic Instance`
+---@field isFinished System.Boolean
+---`Field Public Instance`
+---@field RandomSeed System.Int32
+---`Field NonPublic Instance`
+---@field prefab Barotrauma.EventPrefab
+---`Field Public Instance`
+---@field SpawnPosFilter (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---`Getter Public Instance`
+---@field Prefab Barotrauma.EventPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParentSet Barotrauma.EventSet
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Initialized System.Boolean
+---`Getter Public Instance`
+---@field IsFinished System.Boolean
+---`Getter Public Instance Virtual`
+---@field DebugDrawPos Microsoft.Xna.Framework.Vector2
+_G['Event'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Event'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['Event'].GetFilesToPreload = function() end
+
+---`Method Public Instance`
+---@param parentSet? Barotrauma.EventSet
+_G['Event'].Init = function(parentSet) end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet? Barotrauma.EventSet
+_G['Event'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Event'].GetDebugInfo = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['Event'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['Event'].Finish = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['Event'].LevelMeetsRequirements = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.Event
+_G['Event'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.Event
+_G['Event'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D9C848.lua b/Meta/Types/client/_00007FFD97D9C848.lua
new file mode 100644
index 0000000..ea42eee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9C848.lua
@@ -0,0 +1,155 @@
+---@meta
+---@class Barotrauma.EventSet : Barotrauma.Prefab
+---`Field Public Instance`
+---@field IsCampaignSet System.Boolean
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Single
+---`Field Public Instance`
+---@field BiomeIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field LevelType Barotrauma.LevelData.LevelType
+---`Field Public Instance`
+---@field RequiredLayer Barotrauma.Identifier
+---`Field Public Instance`
+---@field RequiredSpawnPointTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field LocationTypeIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Field Public Instance`
+---@field ChooseRandom System.Boolean
+---`Field Private Instance`
+---@field eventCount System.Int32
+---`Field Public Instance`
+---@field SubSetCount System.Int32
+---`Field Private Instance`
+---@field overrideEventCount (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32)|({[Barotrauma.Identifier]:(System.Int32)})
+---`Field Public Instance`
+---@field Exhaustible System.Boolean
+---`Field Public Instance`
+---@field MinDistanceTraveled System.Single
+---`Field Public Instance`
+---@field MinMissionTime System.Single
+---`Field Public Instance`
+---@field MinIntensity System.Single
+---`Field Public Instance`
+---@field MaxIntensity System.Single
+---`Field Public Instance`
+---@field AllowAtStart System.Boolean
+---`Field Public Instance`
+---@field IgnoreCoolDown System.Boolean
+---`Field Public Instance`
+---@field TriggerEventCooldown System.Boolean
+---`Field Public Instance`
+---@field IgnoreIntensity System.Boolean
+---`Field Public Instance`
+---@field PerRuin System.Boolean
+---`Field Public Instance`
+---@field PerCave System.Boolean
+---`Field Public Instance`
+---@field PerWreck System.Boolean
+---`Field Public Instance`
+---@field DisableInHuntingGrounds System.Boolean
+---`Field Public Instance`
+---@field OncePerLevel System.Boolean
+---`Field Public Instance`
+---@field DelayWhenCrewAway System.Boolean
+---`Field Public Instance`
+---@field Additive System.Boolean
+---`Field Public Instance`
+---@field SelectAlways System.Boolean
+---`Field Public Instance`
+---@field DefaultCommonness System.Single
+---`Field Public Instance`
+---@field OverrideCommonness (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Public Instance`
+---@field ResetTime System.Single
+---`Field Public Instance`
+---@field ForceAtDiscoveredNr System.Int32
+---`Field Public Instance`
+---@field ForceAtVisitedNr System.Int32
+---`Field Public Instance`
+---@field CampaignTutorialOnly System.Boolean
+---`Field Public Instance`
+---@field EventPrefabs (System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet*SubEventPrefab)|(Barotrauma.EventSet.SubEventPrefab[])
+---`Field Public Instance`
+---@field ChildSets (System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventSet)|(fun():(Barotrauma.EventSet))
+_G['EventSet'] = {}
+
+---`Method Public Static`
+---@param identifier System.String
+---@return Barotrauma.Sprite
+_G['EventSet'].GetEventSprite = function(identifier) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.List*1Barotrauma*EventPrefab)|(Barotrauma.EventPrefab[])
+_G['EventSet'].GetAllEventPrefabs = function() end
+
+---`Method Public Static`
+---@param list (System.Collections.Generic.List*1Barotrauma*EventPrefab)|(Barotrauma.EventPrefab[])
+---@param set Barotrauma.EventSet
+_G['EventSet'].AddSetEventPrefabsToList = function(list, set) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.EventPrefab
+_G['EventSet'].GetEventPrefab = function(identifier) end
+
+---`Method Private Static`
+---@param parent Barotrauma.EventSet
+---@param element System.Xml.Linq.XElement
+---@param file Barotrauma.RandomEventsFile
+---@return Barotrauma.Identifier
+_G['EventSet'].DetermineIdentifier = function(parent, element, file) end
+
+---`Method Public Instance`
+_G['EventSet'].CheckLocationTypeErrors = function() end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Single
+_G['EventSet'].GetCommonness = function(level) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Int32
+_G['EventSet'].GetEventCount = function(level) end
+
+---`Method Public Static`
+---@param simulatedRoundCount? System.Int32
+---@param filter? (System.Func*1Barotrauma*MonsterEvent*1System*Boolean)|(fun(arg:Barotrauma.MonsterEvent):(System.Boolean))
+---@param fullLog? System.Boolean
+---@return (System.Collections.Generic.List*1System*String)|(System.String[])
+_G['EventSet'].GetDebugStatistics = function(simulatedRoundCount, filter, fullLog) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['EventSet'].ToString = function() end
+
+---`Method Public Instance Virtual`
+_G['EventSet'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D9DA00.lua b/Meta/Types/client/_00007FFD97D9DA00.lua
new file mode 100644
index 0000000..eea1391
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9DA00.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.ArtifactEvent : Barotrauma.Event
+---`Field Private Instance`
+---@field itemPrefab Barotrauma.ItemPrefab
+---`Field Private Instance`
+---@field item Barotrauma.Item
+---`Field Private Instance`
+---@field state System.Int32
+---`Field Private Instance`
+---@field spawnPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field spawnPending System.Boolean
+---`Getter Public Instance`
+---@field SpawnPending System.Boolean
+---`Getter Public Instance`
+---@field State System.Int32
+---`Getter Public Instance`
+---@field Item Barotrauma.Item
+---`Getter Public Instance`
+---@field SpawnPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DebugDrawPos Microsoft.Xna.Framework.Vector2
+_G['ArtifactEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ArtifactEvent'].ToString = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet Barotrauma.EventSet
+_G['ArtifactEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ArtifactEvent'].GetDebugInfo = function() end
+
+---`Method Private Instance`
+_G['ArtifactEvent'].SpawnItem = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['ArtifactEvent'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ArtifactEvent
+_G['ArtifactEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ArtifactEvent
+_G['ArtifactEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D9DE48.lua b/Meta/Types/client/_00007FFD97D9DE48.lua
new file mode 100644
index 0000000..d0a3e3a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9DE48.lua
@@ -0,0 +1,99 @@
+---@meta
+---@class Barotrauma.MonsterEvent : Barotrauma.Event
+---`Field Public Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Field Public Instance`
+---@field MinAmount System.Int32
+---`Field Public Instance`
+---@field MaxAmount System.Int32
+---`Field Private Instance`
+---@field monsters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Public Instance`
+---@field SpawnDistance System.Single
+---`Field Private Instance`
+---@field scatter System.Single
+---`Field Private Instance`
+---@field offset System.Single
+---`Field Private Instance`
+---@field delayBetweenSpawns System.Single
+---`Field Private Instance`
+---@field resetTime System.Single
+---`Field Private Instance`
+---@field resetTimer System.Single
+---`Field Private Instance`
+---@field spawnPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field disallowed System.Boolean
+---`Field Public Instance`
+---@field SpawnPosType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field spawnPointTag System.String
+---`Field Private Instance`
+---@field spawnPending System.Boolean
+---`Field Private Instance`
+---@field spawnReady System.Boolean
+---`Field Public Instance`
+---@field MaxAmountPerLevel System.Int32
+---`Field Private Instance`
+---@field overridePlayDeadProbability System.Nullable*1System*Single
+---`Field Private Instance`
+---@field chosenPosition Barotrauma.Level.InterestingPosition
+---`Getter Public Instance`
+---@field Monsters (System.Collections.Generic.IReadOnlyList*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Getter Public Instance`
+---@field SpawnPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---@field SpawnPending System.Boolean
+---`Getter Public Instance Virtual`
+---@field DebugDrawPos Microsoft.Xna.Framework.Vector2
+_G['MonsterEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['MonsterEvent'].ToString = function() end
+
+---`Method Private Static`
+---@return Barotrauma.Submarine
+_G['MonsterEvent'].GetReferenceSub = function() end
+
+---`Method Public Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['MonsterEvent'].GetFilesToPreload = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet Barotrauma.EventSet
+_G['MonsterEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['MonsterEvent'].GetDebugInfo = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition)|(Barotrauma.Level.InterestingPosition[])
+_G['MonsterEvent'].GetAvailableSpawnPositions = function() end
+
+---`Method Private Instance`
+---@param affectSubImmediately System.Boolean
+_G['MonsterEvent'].FindSpawnPosition = function(affectSubImmediately) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+---@return System.Single
+_G['MonsterEvent'].GetMinDistanceToSub = function(submarine) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['MonsterEvent'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MonsterEvent
+_G['MonsterEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MonsterEvent
+_G['MonsterEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D9E2B0.lua b/Meta/Types/client/_00007FFD97D9E2B0.lua
new file mode 100644
index 0000000..8f2a0f8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9E2B0.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.ScriptedEvent : Barotrauma.Event
+---`Field Private Instance`
+---@field targetPredicates (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*ScriptedEvent*TargetPredicate)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*ScriptedEvent*TargetPredicate)|(Barotrauma.ScriptedEvent.TargetPredicate[]))})
+---`Field Private Instance`
+---@field cachedTargets (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Entity)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[]))})
+---`Field Private Instance`
+---@field initialAmounts (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32)|({[Barotrauma.Identifier]:(System.Int32)})
+---`Field Private Instance`
+---@field newEntitySpawned System.Boolean
+---`Field Private Instance`
+---@field prevPlayerCount System.Int32
+---`Field Private Instance`
+---@field prevBotCount System.Int32
+---`Field Private Instance`
+---@field prevControlled Barotrauma.Character
+---`Field Public Instance`
+---@field OnRoundEndAction Barotrauma.OnRoundEndAction
+---`Field Private Instance`
+---@field requiredDestinationTypes (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequireBeaconStation System.Boolean
+---`Field Public Instance`
+---@field RequiredDestinationFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentActionIndex System.Int32
+---`Getter Public Instance`
+---@field Actions (System.Collections.Generic.List*1Barotrauma*EventAction)|(Barotrauma.EventAction[])
+---`Getter Public Instance`
+---@field Targets (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Entity)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[]))})
+---`Getter NonPublic Instance Virtual`
+---@field NonActionChildElementNames (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['ScriptedEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ScriptedEvent'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ScriptedEvent'].GetDebugInfo = function() end
+
+---`Method Public Instance Virtual`
+---@param tag System.String
+---@return System.String
+_G['ScriptedEvent'].GetTextForReplacementElement = function(tag) end
+
+---`Method Public Instance Virtual`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['ScriptedEvent'].ReplaceVariablesInEventText = function(str) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*ValueTuple*2System*Int32*2Barotrauma*EventAction)|(System.ValueTuple*1System*Int32*1Barotrauma*EventAction[])
+_G['ScriptedEvent'].GetAllActions = function() end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param target Barotrauma.Entity
+_G['ScriptedEvent'].AddTarget = function(tag, target) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param entityType Barotrauma.ScriptedEvent.TargetPredicate.EntityType
+---@param predicate (System.Predicate*1Barotrauma*Entity)|(fun(obj:Barotrauma.Entity):(System.Boolean))
+_G['ScriptedEvent'].AddTargetPredicate = function(tag, entityType, predicate) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Int32
+_G['ScriptedEvent'].GetInitialTargetCount = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+_G['ScriptedEvent'].GetTargets = function(tag) end
+
+---`Method Public Instance`
+---@param originalEntity Barotrauma.Entity
+---@param newEntity Barotrauma.Entity
+_G['ScriptedEvent'].InheritTags = function(originalEntity, newEntity) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+_G['ScriptedEvent'].RemoveTag = function(tag) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['ScriptedEvent'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['ScriptedEvent'].NeedsToRefreshCachedTargets = function() end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+_G['ScriptedEvent'].EntitySpawned = function(entity) end
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['ScriptedEvent'].LevelMeetsRequirements = function() end
+
+---`Method Public Instance Virtual`
+_G['ScriptedEvent'].Finish = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ScriptedEvent
+_G['ScriptedEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ScriptedEvent
+_G['ScriptedEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D9E510.lua b/Meta/Types/client/_00007FFD97D9E510.lua
new file mode 100644
index 0000000..4533696
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9E510.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.MalfunctionEvent : Barotrauma.Event
+---`Field Private Instance`
+---@field targetItemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field targetItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field minItemAmount System.Int32
+---`Field Private Instance`
+---@field maxItemAmount System.Int32
+---`Field Private Instance`
+---@field decreaseConditionAmount System.Single
+---`Field Private Instance`
+---@field duration System.Single
+---`Field Private Instance`
+---@field timer System.Single
+_G['MalfunctionEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['MalfunctionEvent'].ToString = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet Barotrauma.EventSet
+_G['MalfunctionEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['MalfunctionEvent'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MalfunctionEvent
+_G['MalfunctionEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MalfunctionEvent
+_G['MalfunctionEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97D9E888.lua b/Meta/Types/client/_00007FFD97D9E888.lua
new file mode 100644
index 0000000..e201b0a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9E888.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.EntitySpawner : Barotrauma.Entity
+---`Field Public Instance`
+---@field receivedEvents (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Entity*2System*Boolean)|(System.ValueTuple*1Barotrauma*Entity*1System*Boolean[])
+---`Field Private Instance`
+---@field spawnOrRemoveQueue (System.Collections.Generic.Queue*1Barotrauma*Either*2Barotrauma*EntitySpawner*IEntitySpawnInfo*2Barotrauma*Entity)|(fun():(Barotrauma.Either*1Barotrauma*EntitySpawner*IEntitySpawnInfo*1Barotrauma*Entity))
+_G['EntitySpawner'] = {}
+
+---`Method Public Instance Virtual`
+---@param message Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['EntitySpawner'].ClientEventRead = function(message, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['EntitySpawner'].ToString = function() end
+
+---`Method Public Instance`
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, worldPosition:Microsoft.Xna.Framework.Vector2, condition?:System.Nullable*1System*Single, quality?:System.Nullable*1System*Int32, onSpawned?:(System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item)))
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, sub:Barotrauma.Submarine, condition?:System.Nullable*1System*Single, quality?:System.Nullable*1System*Int32, onSpawned?:(System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item)))
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param inventory Barotrauma.Inventory
+---@param condition? System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@param onSpawned? (System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item))
+---@param spawnIfInventoryFull? System.Boolean
+---@param ignoreLimbSlots? System.Boolean
+---@param slot? Barotrauma.InvSlotType
+_G['EntitySpawner'].AddItemToSpawnQueue = function(itemPrefab, inventory, condition, quality, onSpawned, spawnIfInventoryFull, ignoreLimbSlots, slot) end
+
+---`Method Public Instance`
+---@overload fun(speciesName:Barotrauma.Identifier, worldPosition:Microsoft.Xna.Framework.Vector2, onSpawn?:(System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character)))
+---@overload fun(speciesName:Barotrauma.Identifier, position:Microsoft.Xna.Framework.Vector2, sub:Barotrauma.Submarine, onSpawn?:(System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character)))
+---@param speciesName Barotrauma.Identifier
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param characterInfo Barotrauma.CharacterInfo
+---@param onSpawn? (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+_G['EntitySpawner'].AddCharacterToSpawnQueue = function(speciesName, worldPosition, characterInfo, onSpawn) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+_G['EntitySpawner'].AddEntityToRemoveQueue = function(entity) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['EntitySpawner'].AddItemToRemoveQueue = function(item) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EntitySpawner*IEntitySpawnInfo)|(fun(obj:Barotrauma.EntitySpawner.IEntitySpawnInfo):(System.Boolean))
+---@return System.Boolean
+_G['EntitySpawner'].IsInSpawnQueue = function(predicate) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EntitySpawner*IEntitySpawnInfo)|(fun(obj:Barotrauma.EntitySpawner.IEntitySpawnInfo):(System.Boolean))
+---@return System.Int32
+_G['EntitySpawner'].CountSpawnQueue = function(predicate) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['EntitySpawner'].IsInRemoveQueue = function(entity) end
+
+---`Method Public Instance`
+---@param createNetworkEvents? System.Boolean
+_G['EntitySpawner'].Update = function(createNetworkEvents) end
+
+---`Method Public Instance`
+_G['EntitySpawner'].Reset = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EntitySpawner
+_G['EntitySpawner'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EntitySpawner
+_G['EntitySpawner'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D9EB78.lua b/Meta/Types/client/_00007FFD97D9EB78.lua
new file mode 100644
index 0000000..38fdb39
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9EB78.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.EntityGrid : System.Object
+---`Field Private Instance`
+---@field allEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Instance`
+---@field entities (System.Collections.Generic.List)|((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])[])
+---`Field Private Instance`
+---@field limits Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field cellSize System.Single
+---`Field Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---@field WorldRect Microsoft.Xna.Framework.Rectangle
+_G['EntityGrid'] = {}
+
+---`Method Private Instance`
+_G['EntityGrid'].InitializeGrid = function() end
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+_G['EntityGrid'].InsertEntity = function(entity) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+_G['EntityGrid'].RemoveEntity = function(entity) end
+
+---`Method Public Instance`
+_G['EntityGrid'].Clear = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['EntityGrid'].GetAllEntities = function() end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['EntityGrid'].GetEntities = function(position) end
+
+---`Method Public Instance`
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle):(Microsoft.Xna.Framework.Rectangle)
+---@param position Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Point
+_G['EntityGrid'].GetIndices = function(position) end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, cellSize:System.Single):Barotrauma.EntityGrid
+---@param worldRect Microsoft.Xna.Framework.Rectangle
+---@param cellSize System.Single
+---@return Barotrauma.EntityGrid
+_G['EntityGrid'] = function(worldRect, cellSize) end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, cellSize:System.Single):Barotrauma.EntityGrid
+---@param worldRect Microsoft.Xna.Framework.Rectangle
+---@param cellSize System.Single
+---@return Barotrauma.EntityGrid
+_G['EntityGrid'].__new = function(worldRect, cellSize) end
+
diff --git a/Meta/Types/client/_00007FFD97D9F138.lua b/Meta/Types/client/_00007FFD97D9F138.lua
new file mode 100644
index 0000000..731cb6c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9F138.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.CoreEntityPrefab : Barotrauma.MapEntityPrefab
+---`Field Private Instance`
+---@field constructor System.Reflection.ConstructorInfo
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CoreEntityPrefab)|(fun():(Barotrauma.CoreEntityPrefab))
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field HullPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GapPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field WayPointPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SpawnPointPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+_G['CoreEntityPrefab'] = {}
+
+---`Method Public Static`
+_G['CoreEntityPrefab'].InitCorePrefabs = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['CoreEntityPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance Virtual`
+_G['CoreEntityPrefab'].Dispose = function() end
+
+---`Constructor Private Instance`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97D9FC88.lua b/Meta/Types/client/_00007FFD97D9FC88.lua
new file mode 100644
index 0000000..34b63ca
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97D9FC88.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab}, {[System.String]:Barotrauma.ItemPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*ItemPrefab*1System*Boolean)|(fun(arg1:Barotrauma.ItemPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*ItemPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*ItemPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.ItemPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.ItemPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.ItemPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab):(System.Boolean))
+---@return Barotrauma.ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*ItemPrefab*1System*Boolean)|(fun(arg1:Barotrauma.ItemPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*ItemPrefab*1System*Boolean)|(fun(arg1:Barotrauma.ItemPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA0548.lua b/Meta/Types/client/_00007FFD97DA0548.lua
new file mode 100644
index 0000000..f9a831b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA0548.lua
@@ -0,0 +1,113 @@
+---@meta
+---@class Barotrauma.JobPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field JobItems (System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*JobPrefab*JobItem)|({[System.Int32]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem)|(Barotrauma.JobPrefab.JobItem[]))})
+---`Field Public Instance`
+---@field Skills (System.Collections.Generic.List*1Barotrauma*SkillPrefab)|(Barotrauma.SkillPrefab[])
+---`Field Public Instance`
+---@field AutonomousObjectives (System.Collections.Generic.List*1Barotrauma*AutonomousObjective)|(Barotrauma.AutonomousObjective[])
+---`Field Public Instance`
+---@field AppropriateOrders (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field IconSmall Barotrauma.Sprite
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*JobPrefab)|(fun():(Barotrauma.JobPrefab))
+---`Field Private Static`
+---@field _itemRepairPriorities (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Getter Public Static`
+---@field ItemRepairPriorities (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UIColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdleBehavior Barotrauma.AIObjectiveIdle.BehaviorType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OnlyJobSpecificDialog System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InitialCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAlways System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxNumber System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinNumber System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinKarma System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PriceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VitalityModifier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HiddenJob System.Boolean
+---`Getter Public Instance`
+---@field PrimarySkill Barotrauma.SkillPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Element Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Variants System.Int32
+_G['JobPrefab'] = {}
+
+---`Method Public Instance`
+---@param isPvP System.Boolean
+---@param buttonContainer Barotrauma.GUIComponent-ref
+---@return Barotrauma.GUIButton
+_G['JobPrefab'].CreateInfoFrame = function(isPvP, buttonContainer) end
+
+---`Method Public Instance`
+---@param team Barotrauma.CharacterTeamType
+---@param isPvPMode System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Sprite)|(fun():(Barotrauma.Sprite))
+_G['JobPrefab'].GetJobOutfitSprites = function(team, isPvPMode) end
+
+---`Method Public Instance Virtual`
+_G['JobPrefab'].Dispose = function() end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].Get = function(identifier) end
+
+---`Method Public Static`
+---@param sync Barotrauma.Rand.RandSync
+---@param predicate? (System.Func*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg:Barotrauma.JobPrefab):(System.Boolean))
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].Random = function(sync, predicate) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA05E8.lua b/Meta/Types/client/_00007FFD97DA05E8.lua
new file mode 100644
index 0000000..9cde5bc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA05E8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*JobPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.JobPrefab}, {[System.String]:Barotrauma.JobPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg1:Barotrauma.JobPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*JobPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*JobPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.JobPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.JobPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*JobPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.JobPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.JobPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.JobPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab):(System.Boolean))
+---@return Barotrauma.JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*JobPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*JobPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*JobPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*JobPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg1:Barotrauma.JobPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg1:Barotrauma.JobPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA0B78.lua b/Meta/Types/client/_00007FFD97DA0B78.lua
new file mode 100644
index 0000000..3396c5a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA0B78.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.CharacterPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field originalElement Barotrauma.ContentXElement
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab)|(fun():(Barotrauma.CharacterPrefab))
+---`Field Public Static`
+---@field HumanSpeciesName Barotrauma.Identifier
+---`Field Public Static`
+---@field HumanGroup Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field VariantOf Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ParentPrefab Barotrauma.CharacterPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasCharacterInfo System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Group Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CharacterInfoPrefab Barotrauma.CharacterInfoPrefab
+---`Getter Public Static`
+---@field ConfigElements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---`Getter Public Static`
+---@field HumanConfigFile Barotrauma.CharacterFile
+---`Getter Public Static`
+---@field HumanPrefab Barotrauma.CharacterPrefab
+_G['CharacterPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['CharacterPrefab'].Dispose = function() end
+
+---`Method Public Instance`
+---@param speciesName Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['CharacterPrefab'].GetBaseCharacterSpeciesName = function(speciesName) end
+
+---`Method Public Instance`
+---@param speciesNameOrGroup Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterPrefab'].MatchesSpeciesNameOrGroup = function(speciesNameOrGroup) end
+
+---`Method Public Instance Virtual`
+---@param parent Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].InheritFrom = function(parent) end
+
+---`Method Private Instance`
+_G['CharacterPrefab'].ParseConfigElement = function() end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].FindBySpeciesName = function(speciesName) end
+
+---`Method Public Static`
+---@param filePath System.String
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].FindByFilePath = function(filePath) end
+
+---`Method Public Static`
+---@param predicate (System.Predicate*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab):(System.Boolean))
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].Find = function(predicate) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param file Barotrauma.CharacterFile
+---@return Barotrauma.Identifier
+_G['CharacterPrefab'].ParseName = function(element, file) end
+
+---`Method Public Static`
+---@param mainElement System.Xml.Linq.XElement
+---@param file Barotrauma.CharacterFile
+---@param name Barotrauma.Identifier-ref
+---@return System.Boolean
+_G['CharacterPrefab'].CheckSpeciesName = function(mainElement, file, name) end
+
+---`Constructor Public Instance`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA0CC8.lua b/Meta/Types/client/_00007FFD97DA0CC8.lua
new file mode 100644
index 0000000..9355c4d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA0CC8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.CharacterPrefab}, {[System.String]:Barotrauma.CharacterPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*CharacterPrefab*1System*Boolean)|(fun(arg1:Barotrauma.CharacterPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*CharacterPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.CharacterPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.CharacterPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.CharacterPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.CharacterPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab):(System.Boolean))
+---@return Barotrauma.CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*CharacterPrefab*1System*Boolean)|(fun(arg1:Barotrauma.CharacterPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*CharacterPrefab*1System*Boolean)|(fun(arg1:Barotrauma.CharacterPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA0F00.lua b/Meta/Types/client/_00007FFD97DA0F00.lua
new file mode 100644
index 0000000..b7e0875
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA0F00.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.HumanPrefab}, {[System.String]:Barotrauma.HumanPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*HumanPrefab*1System*Boolean)|(fun(arg1:Barotrauma.HumanPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*HumanPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*HumanPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.HumanPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.HumanPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.HumanPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.HumanPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.HumanPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab):(System.Boolean))
+---@return Barotrauma.HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.HumanPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.HumanPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*HumanPrefab*1System*Boolean)|(fun(arg1:Barotrauma.HumanPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*HumanPrefab*1System*Boolean)|(fun(arg1:Barotrauma.HumanPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA1790.lua b/Meta/Types/client/_00007FFD97DA1790.lua
new file mode 100644
index 0000000..2112eea
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA1790.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.LimbType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftHand Barotrauma.LimbType
+---`Field Public Static`
+---@field RightHand Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftArm Barotrauma.LimbType
+---`Field Public Static`
+---@field RightArm Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftForearm Barotrauma.LimbType
+---`Field Public Static`
+---@field RightForearm Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftLeg Barotrauma.LimbType
+---`Field Public Static`
+---@field RightLeg Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftFoot Barotrauma.LimbType
+---`Field Public Static`
+---@field RightFoot Barotrauma.LimbType
+---`Field Public Static`
+---@field Head Barotrauma.LimbType
+---`Field Public Static`
+---@field Torso Barotrauma.LimbType
+---`Field Public Static`
+---@field Tail Barotrauma.LimbType
+---`Field Public Static`
+---@field Legs Barotrauma.LimbType
+---`Field Public Static`
+---@field RightThigh Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftThigh Barotrauma.LimbType
+---`Field Public Static`
+---@field Waist Barotrauma.LimbType
+---`Field Public Static`
+---@field Jaw Barotrauma.LimbType
+_G['LimbType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DA1948.lua b/Meta/Types/client/_00007FFD97DA1948.lua
new file mode 100644
index 0000000..feb17ae
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA1948.lua
@@ -0,0 +1,218 @@
+---@meta
+---@class Barotrauma.AfflictionPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field configElement Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field CauseOfDeathDescription Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SelfCauseOfDeathDescription Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field defaultDescription Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Descriptions (System.Collections.Immutable.ImmutableList*1Barotrauma*AfflictionPrefab*Description)|(Barotrauma.AfflictionPrefab.Description[])
+---`Field Public Instance`
+---@field AfflictionType Barotrauma.Identifier
+---`Field Public Instance`
+---@field LimbSpecific System.Boolean
+---`Field Public Instance`
+---@field IndicatorLimb Barotrauma.LimbType
+---`Field Public Instance`
+---@field TranslationIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field IsBuff System.Boolean
+---`Field Public Instance`
+---@field AffectMachines System.Boolean
+---`Field Public Instance`
+---@field HealableInMedicalClinic System.Boolean
+---`Field Public Instance`
+---@field HealCostMultiplier System.Single
+---`Field Public Instance`
+---@field BaseHealCost System.Int32
+---`Field Public Instance`
+---@field ShowBarInHealthMenu System.Boolean
+---`Field Public Instance`
+---@field HideIconAfterDelay System.Boolean
+---`Field Public Instance`
+---@field ActivationThreshold System.Single
+---`Field Public Instance`
+---@field ShowIconThreshold System.Single
+---`Field Public Instance`
+---@field ShowIconToOthersThreshold System.Single
+---`Field Public Instance`
+---@field MaxStrength System.Single
+---`Field Public Instance`
+---@field GrainBurst System.Single
+---`Field Public Instance`
+---@field ShowInHealthScannerThreshold System.Single
+---`Field Public Instance`
+---@field TreatmentThreshold System.Single
+---`Field Public Instance`
+---@field IgnoreTreatmentIfAfflictedBy (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Duration System.Single
+---`Field Public Instance`
+---@field KarmaChangeOnApplied System.Single
+---`Field Public Instance`
+---@field BurnOverlayAlpha System.Single
+---`Field Public Instance`
+---@field DamageOverlayAlpha System.Single
+---`Field Public Instance`
+---@field AchievementOnReceived Barotrauma.Identifier
+---`Field Public Instance`
+---@field AchievementOnRemoved Barotrauma.Identifier
+---`Field Public Instance`
+---@field IconColors (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Public Instance`
+---@field AfflictionOverlayAlphaIsLinear System.Boolean
+---`Field Public Instance`
+---@field ResetBetweenRounds System.Boolean
+---`Field Public Instance`
+---@field DamageParticles System.Boolean
+---`Field Public Instance`
+---@field MedicalSkillGain System.Single
+---`Field Public Instance`
+---@field WeaponsSkillGain System.Single
+---`Field Private Instance`
+---@field effects (System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*Effect)|(Barotrauma.AfflictionPrefab.Effect[])
+---`Field Private Instance`
+---@field periodicEffects (System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*PeriodicEffect)|(Barotrauma.AfflictionPrefab.PeriodicEffect[])
+---`Field Private Instance`
+---@field constructor System.Reflection.ConstructorInfo
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field AfflictionOverlay Barotrauma.Sprite
+---`Field Public Static`
+---@field DamageType Barotrauma.Identifier
+---`Field Public Static`
+---@field BurnType Barotrauma.Identifier
+---`Field Public Static`
+---@field BleedingType Barotrauma.Identifier
+---`Field Public Static`
+---@field ParalysisType Barotrauma.Identifier
+---`Field Public Static`
+---@field PoisonType Barotrauma.Identifier
+---`Field Public Static`
+---@field StunType Barotrauma.Identifier
+---`Field Public Static`
+---@field EMPType Barotrauma.Identifier
+---`Field Public Static`
+---@field SpaceHerpesType Barotrauma.Identifier
+---`Field Public Static`
+---@field AlienInfectedType Barotrauma.Identifier
+---`Field Public Static`
+---@field InvertControlsType Barotrauma.Identifier
+---`Field Public Static`
+---@field DisguisedAsHuskType Barotrauma.Identifier
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab)|(fun():(Barotrauma.AfflictionPrefab))
+---`Getter Public Static`
+---@field InternalDamage Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field BiteWounds Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field ImpactDamage Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Bleeding Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Burn Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field OxygenLow Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Bloodloss Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Pressure Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field OrganDamage Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Stun Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field RadiationSickness Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field HuskInfection Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab)|(fun():(Barotrauma.AfflictionPrefab))
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field TargetSpecies (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Effects (System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab*Effect)|(fun():(Barotrauma.AfflictionPrefab.Effect))
+---`Getter Public Instance`
+---@field PeriodicEffects (System.Collections.Generic.IList*1Barotrauma*AfflictionPrefab*PeriodicEffect)|(Barotrauma.AfflictionPrefab.PeriodicEffect[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TreatmentSuitabilities (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasTreatments System.Boolean
+_G['AfflictionPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['AfflictionPrefab'].Dispose = function() end
+
+---`Method Private Instance`
+_G['AfflictionPrefab'].RefreshTreatmentSuitabilities = function() end
+
+---`Method Public Instance`
+---@param strength System.Single
+---@param targetType Barotrauma.AfflictionPrefab.Description.TargetType
+---@return Barotrauma.LocalizedString
+_G['AfflictionPrefab'].GetDescription = function(strength, targetType) end
+
+---`Method Public Static`
+_G['AfflictionPrefab'].LoadAllEffectsAndTreatmentSuitabilities = function() end
+
+---`Method Public Static`
+_G['AfflictionPrefab'].ClearAllEffects = function() end
+
+---`Method Private Instance`
+_G['AfflictionPrefab'].LoadEffects = function() end
+
+---`Method Private Instance`
+_G['AfflictionPrefab'].ClearEffects = function() end
+
+---`Method Public Instance`
+_G['AfflictionPrefab'].ReloadSoundsIfNeeded = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['AfflictionPrefab'].ToString = function() end
+
+---`Method Public Instance`
+---@param strength System.Single
+---@param source? Barotrauma.Character
+---@return Barotrauma.Affliction
+_G['AfflictionPrefab'].Instantiate = function(strength, source) end
+
+---`Method Public Instance`
+---@param currentStrength System.Single
+---@return Barotrauma.AfflictionPrefab.Effect
+_G['AfflictionPrefab'].GetActiveEffect = function(currentStrength) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Single
+_G['AfflictionPrefab'].GetTreatmentSuitability = function(item) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA19E8.lua b/Meta/Types/client/_00007FFD97DA19E8.lua
new file mode 100644
index 0000000..7528e12
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA19E8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.AfflictionPrefab}, {[System.String]:Barotrauma.AfflictionPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg1:Barotrauma.AfflictionPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*AfflictionPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.AfflictionPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.AfflictionPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.AfflictionPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.AfflictionPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab):(System.Boolean))
+---@return Barotrauma.AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg1:Barotrauma.AfflictionPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg1:Barotrauma.AfflictionPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA1C20.lua b/Meta/Types/client/_00007FFD97DA1C20.lua
new file mode 100644
index 0000000..6d4f31a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA1C20.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.TalentPrefab}, {[System.String]:Barotrauma.TalentPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*TalentPrefab*1System*Boolean)|(fun(arg1:Barotrauma.TalentPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.TalentPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.TalentPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.TalentPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.TalentPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.TalentPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab):(System.Boolean))
+---@return Barotrauma.TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentPrefab*1System*Boolean)|(fun(arg1:Barotrauma.TalentPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentPrefab*1System*Boolean)|(fun(arg1:Barotrauma.TalentPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA1E58.lua b/Meta/Types/client/_00007FFD97DA1E58.lua
new file mode 100644
index 0000000..f715616
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA1E58.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*TalentTree : System.Object, {[Barotrauma.Identifier]:Barotrauma.TalentTree}, {[System.String]:Barotrauma.TalentTree}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*TalentTree*1System*Boolean)|(fun(arg1:Barotrauma.TalentTree, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentTree)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentTree'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.TalentTree
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.TalentTree
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentTree'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.TalentTree-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.TalentTree-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.TalentTree-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree):(System.Boolean))
+---@return Barotrauma.TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentTree
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentTree
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentTree'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentTree'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentTree'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*TalentTree'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentTree*1System*Boolean)|(fun(arg1:Barotrauma.TalentTree, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentTree*1System*Boolean)|(fun(arg1:Barotrauma.TalentTree, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA2658.lua b/Meta/Types/client/_00007FFD97DA2658.lua
new file mode 100644
index 0000000..f6e0cb5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA2658.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.OrderCategory : System.Enum
+---`Field Public Static`
+---@field Emergency Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Movement Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Power Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Maintenance Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Operate Barotrauma.OrderCategory
+_G['OrderCategory'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DA2BB0.lua b/Meta/Types/client/_00007FFD97DA2BB0.lua
new file mode 100644
index 0000000..6541ba8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA2BB0.lua
@@ -0,0 +1,202 @@
+---@meta
+---@class Barotrauma.OrderPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Category System.Nullable*1Barotrauma*OrderCategory
+---`Field Public Instance`
+---@field CategoryIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field ContextualName Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SymbolSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field ItemComponentType System.Type
+---`Field Public Instance`
+---@field CanTypeBeSubclass System.Boolean
+---`Field Public Instance`
+---@field TargetItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequireItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field OptionTargetItems (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[]))})
+---`Field Private Instance`
+---@field color System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Public Instance`
+---@field TargetAllCharacters System.Boolean
+---`Field Public Instance`
+---@field TraitorModeOnly System.Boolean
+---`Field Public Instance`
+---@field FadeOutTime System.Single
+---`Field Public Instance`
+---@field UseController System.Boolean
+---`Field Public Instance`
+---@field ControllerTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field AppropriateJobs (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Options (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field HiddenOptions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field AllOptions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field OptionNames (Barotrauma.ListDictionary*1Barotrauma*Identifier*1Barotrauma*LocalizedString)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*LocalizedString))
+---`Field Public Instance`
+---@field OptionSprites (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*Sprite)|({[Barotrauma.Identifier]:(Barotrauma.Sprite)})
+---`Field Public Instance`
+---@field MustSetTarget System.Boolean
+---`Field Public Instance`
+---@field CanBeGeneralized System.Boolean
+---`Field Public Instance`
+---@field AppropriateSkill Barotrauma.Identifier
+---`Field Public Instance`
+---@field Hidden System.Boolean
+---`Field Public Instance`
+---@field IgnoreAtOutpost System.Boolean
+---`Field Public Instance`
+---@field MustManuallyAssign System.Boolean
+---`Field Public Instance`
+---@field AutoDismiss System.Boolean
+---`Field Public Instance`
+---@field PreferredJobs (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab)|(fun():(Barotrauma.OrderPrefab))
+---`Field Public Static`
+---@field DismissalIdentifier Barotrauma.Identifier
+---`Getter Public Static`
+---@field Dismissal Barotrauma.OrderPrefab
+---`Getter Public Instance`
+---@field HasOptionSpecificTargetItems System.Boolean
+---`Getter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field IsReport System.Boolean
+---`Getter Public Instance`
+---@field IsVisibleAsReportButton System.Boolean
+---`Getter Public Instance`
+---@field IsDismissal System.Boolean
+---`Getter Public Instance`
+---@field HasOptions System.Boolean
+---`Getter Public Instance`
+---@field TargetType Barotrauma.OrderPrefab.OrderTargetType
+---`Getter Public Instance`
+---@field WallSectionIndex System.Nullable*1System*Int32
+---`Getter Public Instance`
+---@field IsIgnoreOrder System.Boolean
+---`Getter Public Instance`
+---@field IsDeconstructOrder System.Boolean
+---`Getter Public Instance`
+---@field DrawIconWhenContained System.Boolean
+---`Getter Public Instance`
+---@field AssignmentPriority System.Int32
+---`Getter Public Instance`
+---@field ColoredWhenControllingGiver System.Boolean
+---`Getter Public Instance`
+---@field DisplayGiverInTooltip System.Boolean
+_G['OrderPrefab'] = {}
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param jobs (System.Collections.Generic.IReadOnlyList*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@return System.Boolean
+_G['OrderPrefab'].HasSpecifiedJob = function(character, jobs) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['OrderPrefab'].HasAppropriateJob = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['OrderPrefab'].HasPreferredJob = function(character) end
+
+---`Method Public Instance`
+---@param targetCharacterName System.String
+---@param targetRoomName System.String
+---@param targetEntity Barotrauma.Entity
+---@param givingOrderToSelf System.Boolean
+---@param orderOption? Barotrauma.Identifier
+---@param isNewOrder? System.Boolean
+---@return System.String
+_G['OrderPrefab'].GetChatMessage = function(targetCharacterName, targetRoomName, targetEntity, givingOrderToSelf, orderOption, isNewOrder) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.ItemComponent
+_G['OrderPrefab'].GetTargetItemComponent = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param firstMatchingComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return System.Boolean
+_G['OrderPrefab'].TryGetTargetItemComponent = function(item, firstMatchingComponent) end
+
+---`Method Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, mustBelongToPlayerSub:System.Boolean, requiredTeam?:System.Nullable*1Barotrauma*CharacterTeamType, interactableFor?:Barotrauma.Character, orderOption?:Barotrauma.Identifier):((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))
+---@param mustBelongToPlayerSub System.Boolean
+---@param interactableFor? Barotrauma.Character
+---@param orderOption? Barotrauma.Identifier
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['OrderPrefab'].GetMatchingItems = function(mustBelongToPlayerSub, interactableFor, orderOption) end
+
+---`Method Public Instance`
+---@overload fun(id:System.String):(Barotrauma.LocalizedString)
+---@overload fun(id:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@param index System.Int32
+---@return Barotrauma.LocalizedString
+_G['OrderPrefab'].GetOptionName = function(index) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@return Barotrauma.Identifier
+_G['OrderPrefab'].GetDismissOrderOption = function(order) end
+
+---`Method Public Instance`
+---@param option? Barotrauma.Identifier
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['OrderPrefab'].GetTargetItems = function(option) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param option? Barotrauma.Identifier
+---@return System.Boolean
+_G['OrderPrefab'].TargetItemsMatchItem = function(item, option) end
+
+---`Method Public Static`
+---@param targetItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['OrderPrefab'].TargetItemsMatchItem = function(targetItems, item) end
+
+---`Method Public Instance Virtual`
+_G['OrderPrefab'].Dispose = function() end
+
+---`Method Public Instance`
+---@param targetType Barotrauma.OrderPrefab.OrderTargetType
+---@param orderGiver? Barotrauma.Character
+---@param isAutonomous? System.Boolean
+---@return Barotrauma.Order
+_G['OrderPrefab'].CreateInstance = function(targetType, orderGiver, isAutonomous) end
+
+---`Constructor Public Instance`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA2C50.lua b/Meta/Types/client/_00007FFD97DA2C50.lua
new file mode 100644
index 0000000..b7f2a83
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA2C50.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.OrderPrefab}, {[System.String]:Barotrauma.OrderPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*OrderPrefab*1System*Boolean)|(fun(arg1:Barotrauma.OrderPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*OrderPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*OrderPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.OrderPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.OrderPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.OrderPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.OrderPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.OrderPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab):(System.Boolean))
+---@return Barotrauma.OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.OrderPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.OrderPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*OrderPrefab*1System*Boolean)|(fun(arg1:Barotrauma.OrderPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*OrderPrefab*1System*Boolean)|(fun(arg1:Barotrauma.OrderPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA2E88.lua b/Meta/Types/client/_00007FFD97DA2E88.lua
new file mode 100644
index 0000000..66b0b90
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA2E88.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.LevelGenerationParams}, {[System.String]:Barotrauma.LevelGenerationParams}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean)|(fun(arg1:Barotrauma.LevelGenerationParams, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LevelGenerationParams)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.LevelGenerationParams
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.LevelGenerationParams-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.LevelGenerationParams-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.LevelGenerationParams-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams):(System.Boolean))
+---@return Barotrauma.LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@overload fun(onAdd:(System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean)|(fun(arg1:Barotrauma.LevelGenerationParams, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@overload fun(onAdd:(System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean)|(fun(arg1:Barotrauma.LevelGenerationParams, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA30C0.lua b/Meta/Types/client/_00007FFD97DA30C0.lua
new file mode 100644
index 0000000..3f2eab9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA30C0.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*LocationType : System.Object, {[Barotrauma.Identifier]:Barotrauma.LocationType}, {[System.String]:Barotrauma.LocationType}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*LocationType*1System*Boolean)|(fun(arg1:Barotrauma.LocationType, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LocationType)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LocationType'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.LocationType
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.LocationType
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LocationType'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.LocationType-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.LocationType-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.LocationType-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType):(System.Boolean))
+---@return Barotrauma.LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LocationType
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LocationType
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LocationType'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LocationType'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LocationType'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*LocationType'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@overload fun(onAdd:(System.Action*1Barotrauma*LocationType*1System*Boolean)|(fun(arg1:Barotrauma.LocationType, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@overload fun(onAdd:(System.Action*1Barotrauma*LocationType*1System*Boolean)|(fun(arg1:Barotrauma.LocationType, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA32F8.lua b/Meta/Types/client/_00007FFD97DA32F8.lua
new file mode 100644
index 0000000..9fb3e32
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA32F8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*EventPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.EventPrefab}, {[System.String]:Barotrauma.EventPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*EventPrefab*1System*Boolean)|(fun(arg1:Barotrauma.EventPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.EventPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.EventPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.EventPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.EventPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.EventPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab):(System.Boolean))
+---@return Barotrauma.EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*EventPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventPrefab*1System*Boolean)|(fun(arg1:Barotrauma.EventPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventPrefab*1System*Boolean)|(fun(arg1:Barotrauma.EventPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA3530.lua b/Meta/Types/client/_00007FFD97DA3530.lua
new file mode 100644
index 0000000..907e7b4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA3530.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*EventSet : System.Object, {[Barotrauma.Identifier]:Barotrauma.EventSet}, {[System.String]:Barotrauma.EventSet}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*EventSet*1System*Boolean)|(fun(arg1:Barotrauma.EventSet, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventSet)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventSet'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.EventSet
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.EventSet
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventSet'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.EventSet-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.EventSet-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.EventSet-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet):(System.Boolean))
+---@return Barotrauma.EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventSet
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventSet
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventSet'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventSet'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventSet'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*EventSet'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventSet*1System*Boolean)|(fun(arg1:Barotrauma.EventSet, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventSet*1System*Boolean)|(fun(arg1:Barotrauma.EventSet, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA36E8.lua b/Meta/Types/client/_00007FFD97DA36E8.lua
new file mode 100644
index 0000000..e5ae45d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA36E8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings : System.Object, {[Barotrauma.Identifier]:Barotrauma.EventManagerSettings}, {[System.String]:Barotrauma.EventManagerSettings}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*EventManagerSettings*1System*Boolean)|(fun(arg1:Barotrauma.EventManagerSettings, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventManagerSettings)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.EventManagerSettings
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.EventManagerSettings
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.EventManagerSettings-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.EventManagerSettings-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.EventManagerSettings-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings):(System.Boolean))
+---@return Barotrauma.EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventManagerSettings
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventManagerSettings
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventManagerSettings*1System*Boolean)|(fun(arg1:Barotrauma.EventManagerSettings, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventManagerSettings*1System*Boolean)|(fun(arg1:Barotrauma.EventManagerSettings, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA3990.lua b/Meta/Types/client/_00007FFD97DA3990.lua
new file mode 100644
index 0000000..3b3ba4b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA3990.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.GUIPrefab : Barotrauma.Prefab
+_G['GUIPrefab'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['GUIPrefab'].DetermineIdentifier = function(element) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+---@param attributeName System.String
+---@return System.Int32
+_G['GUIPrefab'].ParseSize = function(element, attributeName) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUIPrefab
+_G['GUIPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUIPrefab
+_G['GUIPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97DA3A30.lua b/Meta/Types/client/_00007FFD97DA3A30.lua
new file mode 100644
index 0000000..c062c08
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA3A30.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*GUIPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUIPrefab}, {[System.String]:Barotrauma.GUIPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*GUIPrefab*1System*Boolean)|(fun(arg1:Barotrauma.GUIPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*GUIPrefab)|(fun(obj:Barotrauma.GUIPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUIPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUIPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*GUIPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUIPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*GUIPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.GUIPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.GUIPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.GUIPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.GUIPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.GUIPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*GUIPrefab)|(fun(obj:Barotrauma.GUIPrefab):(System.Boolean))
+---@return Barotrauma.GUIPrefab
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.GUIPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.GUIPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.GUIPrefab
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*GUIPrefab
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*GUIPrefab
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*GUIPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*GUIPrefab*1System*Boolean)|(fun(arg1:Barotrauma.GUIPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*GUIPrefab)|(fun(obj:Barotrauma.GUIPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*GUIPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*GUIPrefab
+_G['PrefabCollection*1Barotrauma*GUIPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*GUIPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*GUIPrefab*1System*Boolean)|(fun(arg1:Barotrauma.GUIPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*GUIPrefab)|(fun(obj:Barotrauma.GUIPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*GUIPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*GUIPrefab
+_G['PrefabCollection*1Barotrauma*GUIPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA3C68.lua b/Meta/Types/client/_00007FFD97DA3C68.lua
new file mode 100644
index 0000000..9e5745e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA3C68.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.SoundPrefab}, {[System.String]:Barotrauma.SoundPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*SoundPrefab*1System*Boolean)|(fun(arg1:Barotrauma.SoundPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*SoundPrefab)|(fun(obj:Barotrauma.SoundPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*SoundPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*SoundPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*SoundPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*SoundPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*SoundPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.SoundPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.SoundPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.SoundPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*SoundPrefab)|(fun(obj:Barotrauma.SoundPrefab):(System.Boolean))
+---@return Barotrauma.SoundPrefab
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*SoundPrefab
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*SoundPrefab
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*SoundPrefab*1System*Boolean)|(fun(arg1:Barotrauma.SoundPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*SoundPrefab)|(fun(obj:Barotrauma.SoundPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab
+_G['PrefabCollection*1Barotrauma*SoundPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*SoundPrefab*1System*Boolean)|(fun(arg1:Barotrauma.SoundPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*SoundPrefab)|(fun(obj:Barotrauma.SoundPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*SoundPrefab
+_G['PrefabCollection*1Barotrauma*SoundPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA3FB8.lua b/Meta/Types/client/_00007FFD97DA3FB8.lua
new file mode 100644
index 0000000..ebccbb0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA3FB8.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.BackgroundMusic : Barotrauma.SoundPrefab
+---`Field Public Instance`
+---@field Type Barotrauma.Identifier
+---`Field Public Instance`
+---@field DuckVolume System.Boolean
+---`Field Public Instance`
+---@field IntensityRange Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field MuteIntensityTracks System.Boolean
+---`Field Public Instance`
+---@field ForceIntensityTrack System.Nullable*1System*Single
+---`Field Public Instance`
+---@field StartFromRandomTime System.Boolean
+---`Field Public Instance`
+---@field ContinueFromPreviousTime System.Boolean
+---`Field Public Instance`
+---@field PreviousTime System.Int32
+---`Field Public Static`
+---@field BackgroundMusicPrefabs (Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic)|(fun():(Barotrauma.BackgroundMusic))
+_G['BackgroundMusic'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.BackgroundMusic
+---@return Barotrauma.BackgroundMusic
+_G['BackgroundMusic'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.BackgroundMusic
+---@return Barotrauma.BackgroundMusic
+_G['BackgroundMusic'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.BackgroundMusic
+---@return Barotrauma.BackgroundMusic
+_G['BackgroundMusic'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.BackgroundMusic
+---@return Barotrauma.BackgroundMusic
+_G['BackgroundMusic'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA4028.lua b/Meta/Types/client/_00007FFD97DA4028.lua
new file mode 100644
index 0000000..da9b88e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA4028.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic : System.Object, {[Barotrauma.Identifier]:Barotrauma.BackgroundMusic}, {[System.String]:Barotrauma.BackgroundMusic}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*BackgroundMusic*1System*Boolean)|(fun(arg1:Barotrauma.BackgroundMusic, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*BackgroundMusic)|(fun(obj:Barotrauma.BackgroundMusic))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*BackgroundMusic)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*BackgroundMusic))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*BackgroundMusic)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*BackgroundMusic))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.BackgroundMusic
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.BackgroundMusic
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.BackgroundMusic-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.BackgroundMusic-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.BackgroundMusic-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*BackgroundMusic)|(fun(obj:Barotrauma.BackgroundMusic):(System.Boolean))
+---@return Barotrauma.BackgroundMusic
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.BackgroundMusic
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.BackgroundMusic
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.BackgroundMusic
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*BackgroundMusic
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*BackgroundMusic
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic
+---@overload fun(onAdd:(System.Action*1Barotrauma*BackgroundMusic*1System*Boolean)|(fun(arg1:Barotrauma.BackgroundMusic, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*BackgroundMusic)|(fun(obj:Barotrauma.BackgroundMusic)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic
+---@overload fun(onAdd:(System.Action*1Barotrauma*BackgroundMusic*1System*Boolean)|(fun(arg1:Barotrauma.BackgroundMusic, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*BackgroundMusic)|(fun(obj:Barotrauma.BackgroundMusic)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*BackgroundMusic
+_G['PrefabCollection*1Barotrauma*BackgroundMusic'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA42C0.lua b/Meta/Types/client/_00007FFD97DA42C0.lua
new file mode 100644
index 0000000..33fdbdd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA42C0.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.GUISoundType : System.Enum
+---`Field Public Static`
+---@field UIMessage Barotrauma.GUISoundType
+---`Field Public Static`
+---@field ChatMessage Barotrauma.GUISoundType
+---`Field Public Static`
+---@field RadioMessage Barotrauma.GUISoundType
+---`Field Public Static`
+---@field DeadMessage Barotrauma.GUISoundType
+---`Field Public Static`
+---@field Select Barotrauma.GUISoundType
+---`Field Public Static`
+---@field PickItem Barotrauma.GUISoundType
+---`Field Public Static`
+---@field PickItemFail Barotrauma.GUISoundType
+---`Field Public Static`
+---@field DropItem Barotrauma.GUISoundType
+---`Field Public Static`
+---@field PopupMenu Barotrauma.GUISoundType
+---`Field Public Static`
+---@field Decrease Barotrauma.GUISoundType
+---`Field Public Static`
+---@field Increase Barotrauma.GUISoundType
+---`Field Public Static`
+---@field UISwitch Barotrauma.GUISoundType
+---`Field Public Static`
+---@field TickBox Barotrauma.GUISoundType
+---`Field Public Static`
+---@field ConfirmTransaction Barotrauma.GUISoundType
+---`Field Public Static`
+---@field Cart Barotrauma.GUISoundType
+_G['GUI']['SoundType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DA4448.lua b/Meta/Types/client/_00007FFD97DA4448.lua
new file mode 100644
index 0000000..6790743
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA4448.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.GUISound : Barotrauma.SoundPrefab
+---`Field Public Instance`
+---@field Type Barotrauma.GUISoundType
+---`Field Public Static`
+---@field GUISoundPrefabs (Barotrauma.PrefabCollection*1Barotrauma*GUISound)|(fun():(Barotrauma.GUISound))
+_G['GUISound'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.GUISound
+---@return Barotrauma.GUISound
+_G['GUISound'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.GUISound
+---@return Barotrauma.GUISound
+_G['GUISound'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.GUISound
+---@return Barotrauma.GUISound
+_G['GUISound'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.GUISound
+---@return Barotrauma.GUISound
+_G['GUISound'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA44B8.lua b/Meta/Types/client/_00007FFD97DA44B8.lua
new file mode 100644
index 0000000..428dff8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA44B8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*GUISound : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUISound}, {[System.String]:Barotrauma.GUISound}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*GUISound*1System*Boolean)|(fun(arg1:Barotrauma.GUISound, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*GUISound)|(fun(obj:Barotrauma.GUISound))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUISound)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUISound))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*GUISound)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUISound))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*GUISound'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.GUISound
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUISound'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.GUISound
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUISound'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*GUISound'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.GUISound-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.GUISound-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUISound'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.GUISound-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUISound'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*GUISound)|(fun(obj:Barotrauma.GUISound):(System.Boolean))
+---@return Barotrauma.GUISound
+_G['PrefabCollection*1Barotrauma*GUISound'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUISound'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.GUISound
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*GUISound'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.GUISound
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*GUISound'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.GUISound
+_G['PrefabCollection*1Barotrauma*GUISound'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*GUISound'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*GUISound'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*GUISound'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*GUISound'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*GUISound
+_G['PrefabCollection*1Barotrauma*GUISound'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*GUISound
+_G['PrefabCollection*1Barotrauma*GUISound'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*GUISound
+---@overload fun(onAdd:(System.Action*1Barotrauma*GUISound*1System*Boolean)|(fun(arg1:Barotrauma.GUISound, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*GUISound)|(fun(obj:Barotrauma.GUISound)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*GUISound
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*GUISound
+_G['PrefabCollection*1Barotrauma*GUISound'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*GUISound
+---@overload fun(onAdd:(System.Action*1Barotrauma*GUISound*1System*Boolean)|(fun(arg1:Barotrauma.GUISound, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*GUISound)|(fun(obj:Barotrauma.GUISound)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*GUISound
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*GUISound
+_G['PrefabCollection*1Barotrauma*GUISound'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA47D8.lua b/Meta/Types/client/_00007FFD97DA47D8.lua
new file mode 100644
index 0000000..89cb99a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA47D8.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.DamageSound : Barotrauma.SoundPrefab
+---`Field Public Instance`
+---@field DamageRange Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field DamageType Barotrauma.Identifier
+---`Field Public Instance`
+---@field RequiredTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field IgnoreMuffling System.Boolean
+---`Field Public Static`
+---@field DamageSoundPrefabs (Barotrauma.PrefabCollection*1Barotrauma*DamageSound)|(fun():(Barotrauma.DamageSound))
+_G['DamageSound'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.DamageSound
+---@return Barotrauma.DamageSound
+_G['DamageSound'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.DamageSound
+---@return Barotrauma.DamageSound
+_G['DamageSound'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.DamageSound
+---@return Barotrauma.DamageSound
+_G['DamageSound'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.SoundsFile):Barotrauma.DamageSound
+---@return Barotrauma.DamageSound
+_G['DamageSound'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA4848.lua b/Meta/Types/client/_00007FFD97DA4848.lua
new file mode 100644
index 0000000..ecc77f7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA4848.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*DamageSound : System.Object, {[Barotrauma.Identifier]:Barotrauma.DamageSound}, {[System.String]:Barotrauma.DamageSound}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*DamageSound*1System*Boolean)|(fun(arg1:Barotrauma.DamageSound, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*DamageSound)|(fun(obj:Barotrauma.DamageSound))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*DamageSound)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*DamageSound))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*DamageSound)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*DamageSound))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*DamageSound'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.DamageSound
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*DamageSound'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.DamageSound
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*DamageSound'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*DamageSound'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.DamageSound-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.DamageSound-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*DamageSound'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.DamageSound-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*DamageSound'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*DamageSound)|(fun(obj:Barotrauma.DamageSound):(System.Boolean))
+---@return Barotrauma.DamageSound
+_G['PrefabCollection*1Barotrauma*DamageSound'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*DamageSound'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.DamageSound
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*DamageSound'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.DamageSound
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*DamageSound'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.DamageSound
+_G['PrefabCollection*1Barotrauma*DamageSound'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*DamageSound'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*DamageSound'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*DamageSound'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*DamageSound'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*DamageSound
+_G['PrefabCollection*1Barotrauma*DamageSound'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*DamageSound
+_G['PrefabCollection*1Barotrauma*DamageSound'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*DamageSound
+---@overload fun(onAdd:(System.Action*1Barotrauma*DamageSound*1System*Boolean)|(fun(arg1:Barotrauma.DamageSound, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*DamageSound)|(fun(obj:Barotrauma.DamageSound)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*DamageSound
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*DamageSound
+_G['PrefabCollection*1Barotrauma*DamageSound'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*DamageSound
+---@overload fun(onAdd:(System.Action*1Barotrauma*DamageSound*1System*Boolean)|(fun(arg1:Barotrauma.DamageSound, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*DamageSound)|(fun(obj:Barotrauma.DamageSound)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*DamageSound
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*DamageSound
+_G['PrefabCollection*1Barotrauma*DamageSound'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA5240.lua b/Meta/Types/client/_00007FFD97DA5240.lua
new file mode 100644
index 0000000..9ddac3e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA5240.lua
@@ -0,0 +1,94 @@
+---@meta
+---@class Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab : System.Object
+---`Field Private Instance`
+---@field rwl System.Threading.ReaderWriterLockSlim
+---`Field Private Instance`
+---@field basePrefabInternal Barotrauma.SoundPrefab
+---`Field Private Instance`
+---@field overrides (System.Collections.Generic.List*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])
+---`Getter Public Instance`
+---@field BasePrefab Barotrauma.SoundPrefab
+---`Getter Public Instance`
+---@field ActivePrefab Barotrauma.SoundPrefab
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+---`Getter Private Instance`
+---@field activePrefabInternal Barotrauma.SoundPrefab
+---`Getter Private Instance`
+---@field isEmptyInternal System.Boolean
+_G['PrefabSelector*1Barotrauma*SoundPrefab'] = {}
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@param isOverride System.Boolean
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].RemoveIfContains = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+---@param callback? (System.Action*1Barotrauma*SoundPrefab)|(fun(obj:Barotrauma.SoundPrefab))
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].RemoveByFile = function(file, callback) end
+
+---`Method Public Instance`
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].Sort = function() end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].Contains = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].IsOverride = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@param isOverride System.Boolean
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].AddInternal = function(prefab, isOverride) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SoundPrefab
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].RemoveIfContainsInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SoundPrefab
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].RemoveInternal = function(prefab) end
+
+---`Method Private Instance`
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].SortInternal = function() end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].ContainsInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Int32
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].IndexOfInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SoundPrefab
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].IsOverrideInternal = function(prefab) end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*SoundPrefab
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].GetEnumerator = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab
+_G['PrefabSelector*1Barotrauma*SoundPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab
+_G['PrefabSelector*1Barotrauma*SoundPrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA53D8.lua b/Meta/Types/client/_00007FFD97DA53D8.lua
new file mode 100644
index 0000000..37e5d34
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA53D8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.Particles.ParticlePrefab}, {[System.String]:Barotrauma.Particles.ParticlePrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*Particles*ParticlePrefab*1System*Boolean)|(fun(arg1:Barotrauma.Particles.ParticlePrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*Particles*ParticlePrefab)|(fun(obj:Barotrauma.Particles.ParticlePrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*Particles*ParticlePrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*Particles*ParticlePrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*Particles*ParticlePrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*Particles*ParticlePrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.Particles.ParticlePrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.Particles.ParticlePrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.Particles.ParticlePrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*Particles*ParticlePrefab)|(fun(obj:Barotrauma.Particles.ParticlePrefab):(System.Boolean))
+---@return Barotrauma.Particles.ParticlePrefab
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*Particles*ParticlePrefab
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*Particles*ParticlePrefab
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*Particles*ParticlePrefab*1System*Boolean)|(fun(arg1:Barotrauma.Particles.ParticlePrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*Particles*ParticlePrefab)|(fun(obj:Barotrauma.Particles.ParticlePrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*Particles*ParticlePrefab*1System*Boolean)|(fun(arg1:Barotrauma.Particles.ParticlePrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*Particles*ParticlePrefab)|(fun(obj:Barotrauma.Particles.ParticlePrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*Particles*ParticlePrefab
+_G['PrefabCollection*1Barotrauma*Particles*ParticlePrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/client/_00007FFD97DA5A50.lua b/Meta/Types/client/_00007FFD97DA5A50.lua
new file mode 100644
index 0000000..200c1a9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA5A50.lua
@@ -0,0 +1,97 @@
+---@meta
+---@class Barotrauma.SkillSettings : Barotrauma.Prefab
+---`Field Private Instance`
+---@field skillIncreasePerRepair System.Single
+---`Field Private Instance`
+---@field skillIncreasePerSabotage System.Single
+---`Field Private Instance`
+---@field skillIncreasePerCprRevive System.Single
+---`Field Private Instance`
+---@field skillIncreasePerRepairedStructureDamage System.Single
+---`Field Private Instance`
+---@field skillIncreasePerSecondWhenSteering System.Single
+---`Field Private Instance`
+---@field skillIncreasePerFabricatorRequiredSkill System.Single
+---`Field Private Instance`
+---@field skillIncreasePerHostileDamage System.Single
+---`Field Private Instance`
+---@field skillIncreasePerSecondWhenOperatingTurret System.Single
+---`Field Private Instance`
+---@field skillIncreasePerFriendlyHealed System.Single
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabSelector*1Barotrauma*SkillSettings)|(fun():(Barotrauma.SkillSettings))
+---`Getter Public Static`
+---@field Current Barotrauma.SkillSettings
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SingleRoundSkillGainMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerRepair System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerSabotage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerCprRevive System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerRepairedStructureDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerSecondWhenSteering System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerFabricatorRequiredSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerHostileDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerSecondWhenOperatingTurret System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerFriendlyHealed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AssistantSkillIncreaseMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumSkillWithTalents System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreaseExponent System.Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['SkillSettings'] = {}
+
+---`Method Private Instance`
+---@return System.Single
+_G['SkillSettings'].GetCurrentSkillGainMultiplier = function() end
+
+---`Method Public Instance Virtual`
+_G['SkillSettings'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA5B18.lua b/Meta/Types/client/_00007FFD97DA5B18.lua
new file mode 100644
index 0000000..a761199
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA5B18.lua
@@ -0,0 +1,94 @@
+---@meta
+---@class Barotrauma.PrefabSelector*1Barotrauma*SkillSettings : System.Object
+---`Field Private Instance`
+---@field rwl System.Threading.ReaderWriterLockSlim
+---`Field Private Instance`
+---@field basePrefabInternal Barotrauma.SkillSettings
+---`Field Private Instance`
+---@field overrides (System.Collections.Generic.List*1Barotrauma*SkillSettings)|(Barotrauma.SkillSettings[])
+---`Getter Public Instance`
+---@field BasePrefab Barotrauma.SkillSettings
+---`Getter Public Instance`
+---@field ActivePrefab Barotrauma.SkillSettings
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+---`Getter Private Instance`
+---@field activePrefabInternal Barotrauma.SkillSettings
+---`Getter Private Instance`
+---@field isEmptyInternal System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'] = {}
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+---@param isOverride System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveIfContains = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+---@param callback? (System.Action*1Barotrauma*SkillSettings)|(fun(obj:Barotrauma.SkillSettings))
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveByFile = function(file, callback) end
+
+---`Method Public Instance`
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Sort = function() end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Contains = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].IsOverride = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@param isOverride System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].AddInternal = function(prefab, isOverride) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveIfContainsInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveInternal = function(prefab) end
+
+---`Method Private Instance`
+_G['PrefabSelector*1Barotrauma*SkillSettings'].SortInternal = function() end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].ContainsInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Int32
+_G['PrefabSelector*1Barotrauma*SkillSettings'].IndexOfInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].IsOverrideInternal = function(prefab) end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].GetEnumerator = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PrefabSelector*1Barotrauma*SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PrefabSelector*1Barotrauma*SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DA5D28.lua b/Meta/Types/client/_00007FFD97DA5D28.lua
new file mode 100644
index 0000000..74f0117
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA5D28.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.CharacterType : System.Enum
+---`Field Public Static`
+---@field Bot Barotrauma.CharacterType
+---`Field Public Static`
+---@field Player Barotrauma.CharacterType
+---`Field Public Static`
+---@field Both Barotrauma.CharacterType
+_G['CharacterType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DA9CB8.lua b/Meta/Types/client/_00007FFD97DA9CB8.lua
new file mode 100644
index 0000000..cf2c618
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DA9CB8.lua
@@ -0,0 +1,731 @@
+---@meta
+---@class Barotrauma.CharacterInfo : System.Object
+---`Field Public Instance`
+---@field LastControlled System.Boolean
+---`Field Private Instance`
+---@field disguisedPortrait Barotrauma.Sprite
+---`Field Private Instance`
+---@field disguisedAttachmentSprites (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Private Instance`
+---@field disguisedSheetIndex System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field disguisedJobIcon Barotrauma.Sprite
+---`Field Private Instance`
+---@field disguisedJobColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field disguisedHairColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field disguisedFacialHairColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field disguisedSkinColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field tintMask Barotrauma.Sprite
+---`Field Private Instance`
+---@field tintHighlightThreshold System.Single
+---`Field Private Instance`
+---@field tintHighlightMultiplier System.Single
+---`Field Public Instance`
+---@field ShowTalentResetPopupOnOpen System.Boolean
+---`Field Private Instance`
+---@field headEffectParameters Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams
+---`Field Private Instance`
+---@field attachmentEffectParameters (System.Collections.Generic.Dictionary*1Barotrauma*WearableType*1Microsoft*Xna*Framework*Graphics*SpriteBatch*EffectWithParams)|({[Barotrauma.WearableType]:(Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams)})
+---`Field Private Instance`
+---@field head Barotrauma.CharacterInfo.HeadInfo
+---`Field Private Instance`
+---@field maleIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field femaleIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field InventoryData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field HealthData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field OrderData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field PermanentlyDead System.Boolean
+---`Field Public Instance`
+---@field RenamingEnabled System.Boolean
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field Title Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field HumanPrefabIds System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier
+---`Field Public Instance`
+---@field Character Barotrauma.Character
+---`Field Public Instance`
+---@field Job Barotrauma.Job
+---`Field Public Instance`
+---@field Salary System.Int32
+---`Field Private Instance`
+---@field talentRefundPoints System.Int32
+---`Field Private Instance`
+---@field talentResetCount System.Int32
+---`Field Public Instance`
+---@field MinReputationToHire System.ValueTuple*1Barotrauma*Identifier*1System*Single
+---`Field Private Instance`
+---@field additionalTalentPoints System.Int32
+---`Field Private Instance`
+---@field _headSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field OmitJobInMenus System.Boolean
+---`Field Private Instance`
+---@field portrait Barotrauma.Sprite
+---`Field Public Instance`
+---@field IsDisguised System.Boolean
+---`Field Public Instance`
+---@field IsDisguisedAsAnother System.Boolean
+---`Field Private Instance`
+---@field attachmentSprites (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Public Instance`
+---@field StartItemsGiven System.Boolean
+---`Field Public Instance`
+---@field IsNewHire System.Boolean
+---`Field Public Instance`
+---@field CauseOfDeath Barotrauma.CauseOfDeath
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field ID System.UInt16
+---`Field Public Instance`
+---@field HasSpecifierTags System.Boolean
+---`Field Private Instance`
+---@field ragdoll Barotrauma.RagdollParams
+---`Field Public Instance`
+---@field HairColors (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single)|(System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single[])
+---`Field Public Instance`
+---@field FacialHairColors (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single)|(System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single[])
+---`Field Public Instance`
+---@field SkinColors (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single)|(System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single[])
+---`Field Public Instance`
+---@field MissionsCompletedSinceDeath System.Int32
+---`Field Public Instance`
+---@field LastRewardDistribution Barotrauma.Option*1System*Int32
+---`Field Private Instance`
+---@field hairs (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field beards (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field moustaches (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field faceAttachments (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field wearables (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---`Field Private Instance`
+---@field spriteTagsLoaded System.Boolean
+---`Field Public Instance`
+---@field SavedStatValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Collections*Generic*List*2Barotrauma*SavedStatValue)|({[Barotrauma.StatTypes]:((System.Collections.Generic.List*1Barotrauma*SavedStatValue)|(Barotrauma.SavedStatValue[]))})
+---`Field Public Instance`
+---@field LastResistanceMultiplierSkillLossDeath System.Single
+---`Field Public Instance`
+---@field LastResistanceMultiplierSkillLossRespawn System.Single
+---`Field Private Static`
+---@field infoAreaPortraitBG Barotrauma.Sprite
+---`Field Private Static`
+---@field idCounter System.UInt16
+---`Field Private Static`
+---@field skillGainStatValues (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*StatTypes)|({[Barotrauma.Identifier]:(Barotrauma.StatTypes)})
+---`Field Private Static`
+---@field disguiseName System.String
+---`Field Public Static`
+---@field MaxAdditionalTalentPoints System.Int32
+---`Field Public Static`
+---@field MaxCurrentOrders System.Int32
+---`Field Private Static`
+---@field BaseExperienceRequired System.Int32
+---`Field Private Static`
+---@field AddedExperienceRequiredPerLevel System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewListIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Head Barotrauma.CharacterInfo.HeadInfo
+---`Getter Public Instance`
+---@field IsMale System.Boolean
+---`Getter Public Instance`
+---@field IsFemale System.Boolean
+---`Getter Public Instance`
+---@field Prefab Barotrauma.CharacterInfoPrefab
+---`Getter Public Instance`
+---@field HasNickname System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OriginalName System.String
+---`Getter Public Instance`
+---@field DisplayName System.String
+---`Getter Public Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExperiencePoints System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TalentRefundPoints System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnlockedTalents (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TalentResetCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AdditionalTalentPoints System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HeadSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Portrait Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachmentSprites (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterConfigElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PersonalityTrait Barotrauma.NPCPersonalityTrait
+---`Getter Public Static`
+---@field HighestManualOrderPriority System.Int32
+---`Getter Public Instance`
+---@field CurrentOrders (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteTags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Ragdoll Barotrauma.RagdollParams
+---`Getter Public Instance`
+---@field IsAttachmentsLoaded System.Boolean
+---`Getter Public Instance`
+---@field Hairs (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field Beards (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field Moustaches (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field FaceAttachments (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field Wearables (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['CharacterInfo'] = {}
+
+---`Method Public Instance`
+---@overload fun(tags:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[]), hairIndex:System.Int32, beardIndex:System.Int32, moustacheIndex:System.Int32, faceAttachmentIndex:System.Int32)
+---@overload fun(characterSettings:Barotrauma.MultiplayerPreferences)
+---@param headInfo Barotrauma.CharacterInfo.HeadInfo
+_G['CharacterInfo'].RecreateHead = function(headInfo) end
+
+---`Method Public Instance`
+---@param str System.String
+---@return System.String
+_G['CharacterInfo'].ReplaceVars = function(str) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].RefreshHead = function() end
+
+---`Method Private Instance`
+---@param limbElement Barotrauma.ContentXElement
+_G['CharacterInfo'].LoadHeadSpriteProjectSpecific = function(limbElement) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].VerifySpriteTagsLoaded = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].LoadHeadSprite = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].LoadSpriteTags = function() end
+
+---`Method Private Instance`
+---@param loadHeadSprite System.Boolean
+---@param loadHeadSpriteTags System.Boolean
+_G['CharacterInfo'].LoadHeadElement = function(loadHeadSprite, loadHeadSpriteTags) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].LoadHeadAttachments = function() end
+
+---`Method Public Static`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@param type Barotrauma.WearableType
+---@param commonness? System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+_G['CharacterInfo'].AddEmpty = function(elements, type, commonness) end
+
+---`Method Public Instance`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@return Barotrauma.ContentXElement
+_G['CharacterInfo'].GetRandomElement = function(elements) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@return System.Boolean
+_G['CharacterInfo'].IsWearableAllowed = function(element) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param spriteName System.String
+---@return System.Boolean
+_G['CharacterInfo'].IsAllowed = function(element, spriteName) end
+
+---`Method Public Static`
+---@param index System.Int32
+---@param list (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---@return System.Boolean
+_G['CharacterInfo'].IsValidIndex = function(index, list) end
+
+---`Method Private Static`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@return (System.Collections.Generic.IEnumerable*1System*Single)|(fun():(System.Single))
+_G['CharacterInfo'].GetWeights = function(elements) end
+
+---`Method Private Instance`
+_G['CharacterInfo'].LoadAttachmentSprites = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].CalculateSalary = function() end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param baseGain System.Single
+---@param gainedFromAbility? System.Boolean
+---@param maxGain? System.Single
+---@param forceNotification? System.Boolean
+_G['CharacterInfo'].ApplySkillGain = function(skillIdentifier, baseGain, gainedFromAbility, maxGain, forceNotification) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param increase System.Single
+---@param gainedFromAbility? System.Boolean
+---@param forceNotification? System.Boolean
+_G['CharacterInfo'].IncreaseSkillLevel = function(skillIdentifier, increase, gainedFromAbility, forceNotification) end
+
+---`Method Private Instance`
+---@param increase System.Single
+---@param skillIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CharacterInfo'].GetSkillSpecificGain = function(increase, skillIdentifier) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param level System.Single
+---@param forceNotification? System.Boolean
+_G['CharacterInfo'].SetSkillLevel = function(skillIdentifier, level, forceNotification) end
+
+---`Method Private Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param prevLevel System.Single
+---@param newLevel System.Single
+---@param forceNotification System.Boolean
+_G['CharacterInfo'].OnSkillChanged = function(skillIdentifier, prevLevel, newLevel, forceNotification) end
+
+---`Method Public Instance`
+---@param amount System.Int32
+_G['CharacterInfo'].GiveExperience = function(amount) end
+
+---`Method Public Instance`
+---@param newExperience System.Int32
+_G['CharacterInfo'].SetExperience = function(newExperience) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetTotalTalentPoints = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetAvailableTalentPoints = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['CharacterInfo'].GetProgressTowardsNextLevel = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetExperienceRequiredForCurrentLevel = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetExperienceRequiredToLevelUp = function() end
+
+---`Method Public Instance`
+---@param level System.Int32
+---@return System.Int32
+_G['CharacterInfo'].GetExperienceRequiredForLevel = function(level) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetCurrentLevel = function() end
+
+---`Method Private Instance`
+---@param experienceRequired System.Int32-ref
+---@return System.Int32
+_G['CharacterInfo'].GetCurrentLevel = function(experienceRequired) end
+
+---`Method Public Static`
+---@param level System.Int32
+---@return System.Int32
+_G['CharacterInfo'].ExperienceRequiredPerLevel = function(level) end
+
+---`Method Private Instance`
+---@param prevAmount System.Int32
+---@param newAmount System.Int32
+_G['CharacterInfo'].OnExperienceChanged = function(prevAmount, newAmount) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].RefundTalents = function() end
+
+---`Method Public Instance`
+---@param newRefundPoints System.Int32
+_G['CharacterInfo'].AddRefundPoints = function(newRefundPoints) end
+
+---`Method Public Instance`
+---@param newName System.String
+_G['CharacterInfo'].Rename = function(newName) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ResetName = function() end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['CharacterInfo'].Save = function(parentElement) end
+
+---`Method Public Static`
+---@param parentElement System.Xml.Linq.XElement
+---@param ... Barotrauma.Order
+_G['CharacterInfo'].SaveOrders = function(parentElement, ...) end
+
+---`Method Public Static`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param parentElement System.Xml.Linq.XElement
+_G['CharacterInfo'].SaveOrderData = function(characterInfo, parentElement) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].SaveOrderData = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param orderData System.Xml.Linq.XElement
+_G['CharacterInfo'].ApplyOrderData = function(character, orderData) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ApplyOrderData = function() end
+
+---`Method Public Static`
+---@param ordersElement System.Xml.Linq.XElement
+---@return (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+_G['CharacterInfo'].LoadOrders = function(ordersElement) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.List*1Barotrauma*LinkedSubmarine)|(Barotrauma.LinkedSubmarine[])
+_G['CharacterInfo'].GetLinkedSubmarines = function() end
+
+---`Method Private Static`
+---@param parentSub Barotrauma.Submarine
+---@param id System.UInt16
+---@return System.UInt16
+_G['CharacterInfo'].GetOffsetId = function(parentSub, id) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param healthData System.Xml.Linq.XElement
+---@param afflictionPredicate? (System.Func*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg:Barotrauma.AfflictionPrefab):(System.Boolean))
+_G['CharacterInfo'].ApplyHealthData = function(character, healthData, afflictionPredicate) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ReloadHeadAttachments = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].ResetAttachmentIndices = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].ResetLoadedAttachments = function() end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ClearCurrentOrders = function() end
+
+---`Method Public Instance`
+_G['CharacterInfo'].Remove = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].RefreshHeadSprites = function() end
+
+---`Method Public Instance`
+---@overload fun()
+---@param statType Barotrauma.StatTypes
+_G['CharacterInfo'].ClearSavedStatValues = function(statType) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].RemoveSavedStatValuesOnDeath = function() end
+
+---`Method Public Instance`
+---@param statIdentifier Barotrauma.Identifier
+_G['CharacterInfo'].ResetSavedStatValue = function(statIdentifier) end
+
+---`Method Public Instance`
+---@overload fun(statType:Barotrauma.StatTypes):(System.Single)
+---@param statType Barotrauma.StatTypes
+---@param statIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CharacterInfo'].GetSavedStatValue = function(statType, statIdentifier) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param statIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CharacterInfo'].GetSavedStatValueWithAll = function(statType, statIdentifier) end
+
+---`Method Public Instance`
+---@overload fun(statType:Barotrauma.StatTypes, statIdentifier:Barotrauma.Identifier):(System.Single)
+---@param statType Barotrauma.StatTypes
+---@param statIdentifier Barotrauma.Identifier
+---@param bots (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return System.Single
+_G['CharacterInfo'].GetSavedStatValueWithBotsInMp = function(statType, statIdentifier, bots) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param value System.Single
+---@param statIdentifier Barotrauma.Identifier
+---@param removeOnDeath System.Boolean
+---@param maxValue? System.Single
+---@param setValue? System.Boolean
+_G['CharacterInfo'].ChangeSavedStatValue = function(statType, value, statIdentifier, removeOnDeath, maxValue, setValue) end
+
+---`Method Public Static`
+_G['CharacterInfo'].Init = function() end
+
+---`Method Public Instance`
+---@param frame Barotrauma.GUIFrame
+---@param returnParent System.Boolean
+---@param permissionIcon? Barotrauma.Sprite
+---@return Barotrauma.GUIComponent
+_G['CharacterInfo'].CreateInfoFrame = function(frame, returnParent, permissionIcon) end
+
+---`Method Private Instance`
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param componentRect Microsoft.Xna.Framework.Rectangle
+_G['CharacterInfo'].DrawInfoFrameCharacterIcon = function(sb, componentRect) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+---@param text System.String
+---@param userData System.Object
+---@return Barotrauma.GUIFrame
+_G['CharacterInfo'].CreateCharacterFrame = function(parent, text, userData) end
+
+---`Method Private Instance`
+---@param idCard Barotrauma.Items.Components.IdCard
+_G['CharacterInfo'].GetDisguisedSprites = function(idCard) end
+
+---`Method Public Static`
+---@param sprite Barotrauma.Sprite
+---@param offset Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['CharacterInfo'].CalculateOffset = function(sprite, offset) end
+
+---`Method Public Instance`
+---@param sprite Barotrauma.Sprite
+_G['CharacterInfo'].CalculateHeadPosition = function(sprite) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CharacterInfo'].DrawBackground = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CharacterInfo'].DrawForeground = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param screenPos Microsoft.Xna.Framework.Vector2
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param targetWidth System.Single
+---@param flip? System.Boolean
+---@param evaluateDisguise? System.Boolean
+_G['CharacterInfo'].DrawPortrait = function(spriteBatch, screenPos, offset, targetWidth, flip, evaluateDisguise) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CharacterInfo'].SetHeadEffect = function(spriteBatch) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param attachment Barotrauma.WearableSprite
+_G['CharacterInfo'].SetAttachmentEffect = function(spriteBatch, attachment) end
+
+---`Method Private Instance`
+---@param attachment Barotrauma.WearableSprite
+---@param hairColor Microsoft.Xna.Framework.Color
+---@param facialHairColor Microsoft.Xna.Framework.Color
+---@return Microsoft.Xna.Framework.Color
+_G['CharacterInfo'].GetAttachmentColor = function(attachment, hairColor, facialHairColor) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param screenPos Microsoft.Xna.Framework.Vector2
+---@param targetAreaSize Microsoft.Xna.Framework.Vector2
+_G['CharacterInfo'].DrawIcon = function(spriteBatch, screenPos, targetAreaSize) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param area Microsoft.Xna.Framework.Rectangle
+---@param evaluateDisguise? System.Boolean
+_G['CharacterInfo'].DrawJobIcon = function(spriteBatch, area, evaluateDisguise) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param attachment Barotrauma.WearableSprite
+---@param head Barotrauma.Sprite
+---@param sheetIndex System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param scale System.Single
+---@param depthStep System.Single
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['CharacterInfo'].DrawAttachmentSprite = function(spriteBatch, attachment, head, sheetIndex, drawPos, scale, depthStep, color, spriteEffects) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param inc Barotrauma.Networking.IReadMessage
+---@param requireJobPrefabFound? System.Boolean
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'].ClientRead = function(speciesName, inc, requireJobPrefabFound) end
+
+---`Method Public Instance`
+---@param rectT Barotrauma.RectTransform
+_G['CharacterInfo'].CreateIcon = function(rectT) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterInfo'].GetUnlockedTalentsInTree = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterInfo'].GetUnlockedTalentsOutsideTree = function() end
+
+---`Method Public Instance`
+---@param handleBuff System.Boolean
+---@param idCard? Barotrauma.Items.Components.IdCard
+_G['CharacterInfo'].CheckDisguiseStatus = function(handleBuff, idCard) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@return System.Int32
+_G['CharacterInfo'].GetManualOrderPriority = function(order) end
+
+---`Method Public Instance`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@param headPreset Barotrauma.CharacterInfo.HeadPreset
+---@param wearableType? System.Nullable*1Barotrauma*WearableType
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['CharacterInfo'].GetValidAttachmentElements = function(elements, headPreset, wearableType) end
+
+---`Method Public Instance`
+---@param wearableType Barotrauma.WearableType
+---@return System.Int32
+_G['CharacterInfo'].CountValidAttachmentsOfType = function(wearableType) end
+
+---`Method Private Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@param name System.String-ref
+_G['CharacterInfo'].GetName = function(randSync, name) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['CharacterInfo'].LoadTagsBackwardsCompatibility = function(element, tags) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['CharacterInfo'].ElementHasSpecifierTags = function(element) end
+
+---`Method Private Instance`
+_G['CharacterInfo'].SetPersonalityTrait = function() end
+
+---`Method Public Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@return System.String
+_G['CharacterInfo'].GetRandomName = function(randSync) end
+
+---`Method Public Static`
+---@param array System.Collections.Immutable.ImmutableArray
+---@param randSync Barotrauma.Rand.RandSync
+---@return Microsoft.Xna.Framework.Color
+_G['CharacterInfo'].SelectRandomColor = function(array, randSync) end
+
+---`Method Private Instance`
+---@param randSync Barotrauma.Rand.RandSync
+_G['CharacterInfo'].SetAttachments = function(randSync) end
+
+---`Method Private Instance`
+---@param randSync Barotrauma.Rand.RandSync
+_G['CharacterInfo'].SetColors = function(randSync) end
+
+---`Method Private Instance`
+---@param clr Microsoft.Xna.Framework.Color-ref
+---@return System.Boolean
+_G['CharacterInfo'].IsColorValid = function(clr) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].CheckColors = function() end
+
+---`Method Private Instance`
+---@param npcIdentifier Barotrauma.Identifier
+_G['CharacterInfo'].TryLoadNameAndTitle = function(npcIdentifier) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetIdentifier = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetIdentifierUsingOriginalName = function() end
+
+---`Method Private Instance`
+---@param name System.String
+---@return System.Int32
+_G['CharacterInfo'].GetIdentifierHash = function(name) end
+
+---`Method Public Instance`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@param tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param targetType? System.Nullable*1Barotrauma*WearableType
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['CharacterInfo'].FilterElements = function(elements, tags, targetType) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'] = function(infoElement, npcIdentifier) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'].__new = function(infoElement, npcIdentifier) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'] = function(infoElement, npcIdentifier) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'].__new = function(infoElement, npcIdentifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DAA710.lua b/Meta/Types/client/_00007FFD97DAA710.lua
new file mode 100644
index 0000000..3196d38
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DAA710.lua
@@ -0,0 +1,63 @@
+---@meta
+---@class Barotrauma.CharacterInfo.HeadInfo : System.Object
+---`Field Public Instance`
+---@field CharacterInfo Barotrauma.CharacterInfo
+---`Field Public Instance`
+---@field Preset Barotrauma.CharacterInfo.HeadPreset
+---`Field Private Instance`
+---@field hairWithHatIndex System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field BeardIndex System.Int32
+---`Field Public Instance`
+---@field MoustacheIndex System.Int32
+---`Field Public Instance`
+---@field FaceAttachmentIndex System.Int32
+---`Field Public Instance`
+---@field HairColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field FacialHairColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field SkinColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HairIndex System.Int32
+---`Getter Public Instance`
+---@field SheetIndex Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field HairElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field HairWithHatElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field BeardElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field MoustacheElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field FaceAttachment Barotrauma.ContentXElement
+_G['CharacterInfo']['HeadInfo'] = {}
+
+---`Method Public Instance`
+_G['CharacterInfo']['HeadInfo'].SetHairWithHatIndex = function() end
+
+---`Method Public Instance`
+_G['CharacterInfo']['HeadInfo'].ResetAttachmentIndices = function() end
+
+---`Constructor Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param headPreset Barotrauma.CharacterInfo.HeadPreset
+---@param hairIndex? System.Int32
+---@param beardIndex? System.Int32
+---@param moustacheIndex? System.Int32
+---@param faceAttachmentIndex? System.Int32
+---@return Barotrauma.CharacterInfo.HeadInfo
+_G['CharacterInfo']['HeadInfo'] = function(characterInfo, headPreset, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex) end
+
+---`Constructor Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param headPreset Barotrauma.CharacterInfo.HeadPreset
+---@param hairIndex? System.Int32
+---@param beardIndex? System.Int32
+---@param moustacheIndex? System.Int32
+---@param faceAttachmentIndex? System.Int32
+---@return Barotrauma.CharacterInfo.HeadInfo
+_G['CharacterInfo']['HeadInfo'].__new = function(characterInfo, headPreset, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex) end
+
diff --git a/Meta/Types/client/_00007FFD97DAA9B8.lua b/Meta/Types/client/_00007FFD97DAA9B8.lua
new file mode 100644
index 0000000..5d1adcd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DAA9B8.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.CharacterInfo.HeadPreset : System.Object
+---`Field Private Instance`
+---@field characterInfoPrefab Barotrauma.CharacterInfoPrefab
+---`Getter Public Instance`
+---@field MenuCategory Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SheetIndex Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['CharacterInfo']['HeadPreset'] = {}
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['CharacterInfo']['HeadPreset'].DetermineTagsFromLegacyFormat = function(element) end
+
+---`Constructor Public Instance`
+---@param charInfoPrefab Barotrauma.CharacterInfoPrefab
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfo.HeadPreset
+_G['CharacterInfo']['HeadPreset'] = function(charInfoPrefab, element) end
+
+---`Constructor Public Instance`
+---@param charInfoPrefab Barotrauma.CharacterInfoPrefab
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfo.HeadPreset
+_G['CharacterInfo']['HeadPreset'].__new = function(charInfoPrefab, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DAABD0.lua b/Meta/Types/client/_00007FFD97DAABD0.lua
new file mode 100644
index 0000000..f0807e9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DAABD0.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.CharacterInfoPrefab : System.Object
+---`Field Public Instance`
+---@field Heads (System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo*HeadPreset)|(Barotrauma.CharacterInfo.HeadPreset[])
+---`Field Public Instance`
+---@field VarTags (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[]))})
+---`Field Public Instance`
+---@field MenuCategoryVar Barotrauma.Identifier
+---`Field Public Instance`
+---@field Pronouns Barotrauma.Identifier
+_G['CharacterInfoPrefab'] = {}
+
+---`Method Public Instance`
+---@overload fun(str:System.String, headPreset:Barotrauma.CharacterInfo.HeadPreset):(System.String)
+---@param str System.String
+---@param tagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@return System.String
+_G['CharacterInfoPrefab'].ReplaceVars = function(str, tagSet) end
+
+---`Constructor Public Instance`
+---@param characterPrefab Barotrauma.CharacterPrefab
+---@param headsElement Barotrauma.ContentXElement
+---@param varsElement System.Xml.Linq.XElement
+---@param menuCategoryElement System.Xml.Linq.XElement
+---@param pronounsElement System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfoPrefab
+_G['CharacterInfoPrefab'] = function(characterPrefab, headsElement, varsElement, menuCategoryElement, pronounsElement) end
+
+---`Constructor Public Instance`
+---@param characterPrefab Barotrauma.CharacterPrefab
+---@param headsElement Barotrauma.ContentXElement
+---@param varsElement System.Xml.Linq.XElement
+---@param menuCategoryElement System.Xml.Linq.XElement
+---@param pronounsElement System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfoPrefab
+_G['CharacterInfoPrefab'].__new = function(characterPrefab, headsElement, varsElement, menuCategoryElement, pronounsElement) end
+
diff --git a/Meta/Types/client/_00007FFD97DAB580.lua b/Meta/Types/client/_00007FFD97DAB580.lua
new file mode 100644
index 0000000..3f5b7a2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DAB580.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.AICharacter : Barotrauma.Character
+---`Field Private Instance`
+---@field aiController Barotrauma.AIController
+---`Getter Public Instance Virtual`
+---@field AIController Barotrauma.AIController
+_G['AICharacter'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['AICharacter'].DrawFront = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@param aiController Barotrauma.AIController
+_G['AICharacter'].SetAI = function(aiController) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['AICharacter'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isNetworkPlayer? System.Boolean
+---@param ragdoll? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.AICharacter
+_G['AICharacter'] = function(prefab, position, seed, characterInfo, id, isNetworkPlayer, ragdoll, spawnInitialItems) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isNetworkPlayer? System.Boolean
+---@param ragdoll? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.AICharacter
+_G['AICharacter'].__new = function(prefab, position, seed, characterInfo, id, isNetworkPlayer, ragdoll, spawnInitialItems) end
+
diff --git a/Meta/Types/client/_00007FFD97DACB90.lua b/Meta/Types/client/_00007FFD97DACB90.lua
new file mode 100644
index 0000000..8aa38e9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DACB90.lua
@@ -0,0 +1,701 @@
+---@meta
+---@class Barotrauma.CharacterHealth : System.Object
+---`Field Private Instance`
+---@field screenResolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field uiScale System.Single
+---`Field Private Instance`
+---@field inventoryScale System.Single
+---`Field Private Instance`
+---@field alignment Barotrauma.Alignment
+---`Field Private Instance`
+---@field healthBar Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field healthBarShadow Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field healthShadowSize System.Single
+---`Field Private Instance`
+---@field healthShadowDelay System.Single
+---`Field Private Instance`
+---@field healthBarPulsateTimer System.Single
+---`Field Private Instance`
+---@field healthBarPulsatePhase System.Single
+---`Field Private Instance`
+---@field bloodParticleTimer System.Single
+---`Field Private Instance`
+---@field healthWindow Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field deadIndicator Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field cprButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field afflictionTooltip Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field limbIndicatorOverlay Barotrauma.SpriteSheet
+---`Field Private Instance`
+---@field limbIndicatorOverlayAnimState System.Single
+---`Field Private Instance`
+---@field medUIExtra Barotrauma.SpriteSheet
+---`Field Private Instance`
+---@field medUIExtraAnimState System.Single
+---`Field Private Instance`
+---@field highlightedLimbIndex System.Int32
+---`Field Private Instance`
+---@field selectedLimbIndex System.Int32
+---`Field Private Instance`
+---@field currentDisplayedLimb Barotrauma.CharacterHealth.LimbHealth
+---`Field Private Instance`
+---@field afflictionIconContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field afflictionIconRefreshTimer System.Single
+---`Field Private Instance`
+---@field showHiddenAfflictionsButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field hiddenAfflictionIconContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field healthWindowHealthBar Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field healthWindowHealthBarShadow Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field characterName Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field afflictionIconList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field treatmentLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field recommendedTreatmentContainer Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field updateVisualsTimer System.Single
+---`Field Private Instance`
+---@field distortTimer System.Single
+---`Field Private Instance`
+---@field damageIntensity System.Single
+---`Field Private Instance`
+---@field damageIntensityDropdownRate System.Single
+---`Field Private Instance`
+---@field updateDisplayedAfflictionsTimer System.Single
+---`Field Private Instance`
+---@field currentDisplayedAfflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Public Instance`
+---@field DisplayedVitality System.Single
+---`Field Public Instance`
+---@field DisplayVitalityDelay System.Single
+---`Field Private Instance`
+---@field healthBarHolder Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field timeUntilNextHeartbeatSound System.Single
+---`Field Private Instance`
+---@field nextHeartbeatSoundIsSystole System.Boolean
+---`Field Private Instance`
+---@field statusIcons (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field statusIconVisibleTime (System.Collections.Generic.Dictionary*1Barotrauma*AfflictionPrefab*1System*Single)|({[Barotrauma.AfflictionPrefab]:(System.Single)})
+---`Field Private Instance`
+---@field displayedAfflictions (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Affliction*2System*Single)|(System.ValueTuple*1Barotrauma*Affliction*1System*Single[])
+---`Field Private Instance`
+---@field newAfflictions (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*CharacterHealth*LimbHealth*2Barotrauma*AfflictionPrefab*2System*Single)|(System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*AfflictionPrefab*1System*Single[])
+---`Field Private Instance`
+---@field newPeriodicEffects (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*AfflictionPrefab*PeriodicEffect*2System*Single)|(System.ValueTuple*1Barotrauma*AfflictionPrefab*PeriodicEffect*1System*Single[])
+---`Field NonPublic Instance`
+---@field minVitality System.Single
+---`Field Public Instance`
+---@field Unkillable System.Boolean
+---`Field Private Instance`
+---@field limbHealths (System.Collections.Generic.List*1Barotrauma*CharacterHealth*LimbHealth)|(Barotrauma.CharacterHealth.LimbHealth[])
+---`Field Private Instance`
+---@field afflictions (System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth)|({[Barotrauma.Affliction]:(Barotrauma.CharacterHealth.LimbHealth)})
+---`Field Private Instance`
+---@field irremovableAfflictions (System.Collections.Generic.HashSet*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field bloodlossAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field oxygenLowAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field pressureAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field stunAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field vitality System.Single
+---`Field Public Instance`
+---@field ShowDamageOverlay System.Boolean
+---`Field Public Instance`
+---@field Character Barotrauma.Character
+---`Field Private Instance`
+---@field matchingAfflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field afflictionsCopy (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field allAfflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field afflictionTags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field activeAfflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field limbAfflictions (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*CharacterHealth*LimbHealth*2Barotrauma*Affliction)|(System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*Affliction[])
+---`Field Private Static`
+---@field toggledThisFrame System.Boolean
+---`Field Private Static`
+---@field oxygenLowGrainColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field openHealthWindow Barotrauma.CharacterHealth
+---`Field Private Static`
+---@field afflictionsDisplayedOnLimb (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Public Static`
+---@field DefaultFaceTint Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field afflictionsToRemove (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Static`
+---@field afflictionsToUpdate (System.Collections.Generic.List*1System*Collections*Generic*KeyValuePair*2Barotrauma*Affliction*2Barotrauma*CharacterHealth*LimbHealth)|(System.Collections.Generic.KeyValuePair*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth[])
+---`Field Private Static`
+---@field AfflictionIconRefreshInterval System.Single
+---`Field Private Static`
+---@field UpdateVisualsInterval System.Single
+---`Field Private Static`
+---@field UpdateDisplayedAfflictionsInterval System.Single
+---`Field Private Static`
+---@field diastoleSoundTag System.String
+---`Field Private Static`
+---@field systoleSoundTag System.String
+---`Field Private Static`
+---@field HideStatusIconDelay System.Single
+---`Field Public Static`
+---@field InsufficientOxygenThreshold System.Single
+---`Field Public Static`
+---@field LowOxygenThreshold System.Single
+---`Getter Public Static`
+---@field DamageOverlay Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Alignment Barotrauma.Alignment
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SuicideButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageOverlayTimer System.Single
+---`Getter Public Instance`
+---@field MouseOnElement System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field OpenHealthWindow Barotrauma.CharacterHealth
+---`Getter Public Instance`
+---@field CPRButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InventorySlotContainer Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthBarPulsateTimer System.Single
+---`Getter NonPublic Instance`
+---
`Setter NonPublic Instance`
+---@field UnmodifiedMaxVitality System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DoesBleed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHealthWindow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---@field BloodlossAffliction Barotrauma.Affliction
+---`Getter Public Instance`
+---@field IsUnconscious System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PressureKillDelay System.Single
+---`Getter Public Instance`
+---@field Vitality System.Single
+---`Getter Public Instance`
+---@field VitalityDisregardingDeath System.Single
+---`Getter Public Instance`
+---@field HealthPercentage System.Single
+---`Getter Public Instance`
+---@field MaxVitality System.Single
+---`Getter Public Instance`
+---@field MinVitality System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FaceTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BloodlossAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stun System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsParalyzed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StunTimer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WasInFullHealth System.Boolean
+---`Getter Public Instance`
+---@field PressureAffliction Barotrauma.Affliction
+---`Getter Public Instance`
+---@field OxygenLowResistance System.Single
+_G['CharacterHealth'] = {}
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, allowLimbAfflictions?:System.Boolean):(Barotrauma.Affliction)
+---@overload fun(identifier:Barotrauma.Identifier, allowLimbAfflictions?:System.Boolean):(Barotrauma.Affliction)
+---@overload fun(identifier:Barotrauma.Identifier, allowLimbAfflictions?:System.Boolean):(Barotrauma.CharacterHealth.T)
+---@param identifier Barotrauma.Identifier
+---@param limb Barotrauma.Limb
+---@return Barotrauma.Affliction
+_G['CharacterHealth'].GetAffliction = function(identifier, limb) end
+
+---`Method Private Instance`
+---@param predicate (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+---@param allowLimbAfflictions? System.Boolean
+---@return Barotrauma.Affliction
+_G['CharacterHealth'].GetAffliction = function(predicate, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param afflictionType Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return Barotrauma.Affliction
+_G['CharacterHealth'].GetAfflictionOfType = function(afflictionType, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param affliction Barotrauma.Affliction
+---@return Barotrauma.Limb
+_G['CharacterHealth'].GetAfflictionLimb = function(affliction) end
+
+---`Method Public Instance`
+---@overload fun(afflictionType:Barotrauma.Identifier, limb:Barotrauma.Limb, requireLimbSpecific:System.Boolean):(System.Single)
+---@param afflictionType Barotrauma.Identifier
+---@param afflictionidentifier Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetAfflictionStrength = function(afflictionType, afflictionidentifier, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param afflictionType Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetAfflictionStrengthByType = function(afflictionType, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param afflictionIdentifier Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetAfflictionStrengthByIdentifier = function(afflictionIdentifier, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param affliction Barotrauma.Affliction
+---@param allowStacking? System.Boolean
+---@param ignoreUnkillability? System.Boolean
+---@param recalculateVitality? System.Boolean
+_G['CharacterHealth'].ApplyAffliction = function(targetLimb, affliction, allowStacking, ignoreUnkillability, recalculateVitality) end
+
+---`Method Public Instance`
+---@param afflictionPrefab Barotrauma.AfflictionPrefab
+---@param limbType Barotrauma.LimbType
+---@return System.Single
+_G['CharacterHealth'].GetResistance = function(afflictionPrefab, limbType) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return System.Single
+_G['CharacterHealth'].GetStatValue = function(statType) end
+
+---`Method Public Instance`
+---@param flagType Barotrauma.AbilityFlags
+---@return System.Boolean
+_G['CharacterHealth'].HasFlag = function(flagType) end
+
+---`Method Public Instance`
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+_G['CharacterHealth'].ReduceAllAfflictionsOnAllLimbs = function(amount, treatmentAction) end
+
+---`Method Public Instance`
+---@param afflictionIdOrType Barotrauma.Identifier
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+---@param attacker? Barotrauma.Character
+_G['CharacterHealth'].ReduceAfflictionOnAllLimbs = function(afflictionIdOrType, amount, treatmentAction, attacker) end
+
+---`Method Private Instance`
+---@param targetLimb Barotrauma.Limb
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].GetAfflictionsForLimb = function(targetLimb) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+_G['CharacterHealth'].ReduceAllAfflictionsOnLimb = function(targetLimb, amount, treatmentAction) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param afflictionIdOrType Barotrauma.Identifier
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+---@param attacker? Barotrauma.Character
+_G['CharacterHealth'].ReduceAfflictionOnLimb = function(targetLimb, afflictionIdOrType, amount, treatmentAction, attacker) end
+
+---`Method Private Instance`
+---@param amount System.Single
+---@param treatmentAction System.Nullable*1Barotrauma*ActionType
+---@param attacker? Barotrauma.Character
+_G['CharacterHealth'].ReduceMatchingAfflictions = function(amount, treatmentAction, attacker) end
+
+---`Method Public Instance`
+---@param hitLimb Barotrauma.Limb
+---@param attackResult Barotrauma.AttackResult
+---@param allowStacking? System.Boolean
+---@param recalculateVitality? System.Boolean
+_G['CharacterHealth'].ApplyDamage = function(hitLimb, attackResult, allowStacking, recalculateVitality) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].KillIfOutOfVitality = function() end
+
+---`Method Public Instance`
+---@param damageAmount System.Single
+---@param bleedingDamageAmount System.Single
+---@param burnDamageAmount System.Single
+_G['CharacterHealth'].SetAllDamage = function(damageAmount, bleedingDamageAmount, burnDamageAmount) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+---@param afflictionType Barotrauma.Identifier
+---@return System.Single
+_G['CharacterHealth'].GetLimbDamage = function(limb, afflictionType) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+_G['CharacterHealth'].RemoveAfflictions = function(predicate) end
+
+---`Method Public Instance`
+_G['CharacterHealth'].RemoveAllAfflictions = function() end
+
+---`Method Public Instance`
+_G['CharacterHealth'].RemoveNegativeAfflictions = function() end
+
+---`Method Private Instance`
+---@overload fun(limb:Barotrauma.Limb, newAffliction:Barotrauma.Affliction, allowStacking?:System.Boolean, recalculateVitality?:System.Boolean)
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@param limb Barotrauma.Limb
+---@param newAffliction Barotrauma.Affliction
+---@param allowStacking? System.Boolean
+---@param recalculateVitality? System.Boolean
+_G['CharacterHealth'].AddLimbAffliction = function(limbHealth, limb, newAffliction, allowStacking, recalculateVitality) end
+
+---`Method Private Instance`
+---@param newAffliction Barotrauma.Affliction
+---@param allowStacking? System.Boolean
+_G['CharacterHealth'].AddAffliction = function(newAffliction, allowStacking) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].UpdateSkinTint = function() end
+
+---`Method Private Instance`
+_G['CharacterHealth'].UpdateLimbAfflictionOverlays = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+_G['CharacterHealth'].ForceUpdateVisuals = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateDamageReductions = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateOxygen = function(deltaTime) end
+
+---`Method Private Instance`
+---@param prevOxygen System.Single
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateOxygenProjSpecific = function(prevOxygen, deltaTime) end
+
+---`Method Private Instance`
+---@param affliction Barotrauma.AfflictionBleeding
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateBleedingProjSpecific = function(affliction, targetLimb, deltaTime) end
+
+---`Method Public Instance`
+---@param newVitality System.Single
+_G['CharacterHealth'].SetVitality = function(newVitality) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].CalculateVitality = function() end
+
+---`Method Public Instance`
+_G['CharacterHealth'].RecalculateVitality = function() end
+
+---`Method Private Static`
+---@param affliction Barotrauma.Affliction
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@return System.Single
+_G['CharacterHealth'].GetVitalityMultiplier = function(affliction, limbHealth) end
+
+---`Method Private Instance`
+---@param affliction Barotrauma.Affliction
+---@return System.Single
+_G['CharacterHealth'].GetVitalityDecreaseWithVitalityMultipliers = function(affliction) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].Kill = function() end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+_G['CharacterHealth'].ApplyAfflictionStatusEffects = function(type) end
+
+---`Method Public Instance`
+---@return System.ValueTuple*1Barotrauma*CauseOfDeathType*1Barotrauma*Affliction
+_G['CharacterHealth'].GetCauseOfDeath = function() end
+
+---`Method Private Instance`
+---@param mergeSameAfflictions System.Boolean
+---@param predicate? (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+---@return (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+_G['CharacterHealth'].GetAllAfflictions = function(mergeSameAfflictions, predicate) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction)))
+---@param limbHealthFilter (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].GetAllAfflictions = function(limbHealthFilter) end
+
+---`Method Public Instance`
+---@param treatmentSuitability (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---@param user Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param ignoreHiddenAfflictions? System.Boolean
+---@param predictFutureDuration? System.Single
+_G['CharacterHealth'].GetSuitableTreatments = function(treatmentSuitability, user, limb, ignoreHiddenAfflictions, predictFutureDuration) end
+
+---`Method Public Instance`
+---@param affliction Barotrauma.Affliction
+---@param otherAfflictionMultiplier? System.Single
+---@param includeSameAffliction? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetTotalAdjustedAfflictionStrength = function(affliction, otherAfflictionMultiplier, includeSameAffliction) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterHealth'].GetActiveAfflictionTags = function() end
+
+---`Method Public Instance`
+---@param affliction Barotrauma.Affliction
+---@param predictFutureDuration System.Single
+---@param limb? Barotrauma.Limb
+---@return System.Single
+_G['CharacterHealth'].GetPredictedStrength = function(affliction, predictFutureDuration, limb) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['CharacterHealth'].ServerWrite = function(msg) end
+
+---`Method Public Instance`
+_G['CharacterHealth'].Remove = function() end
+
+---`Method Private Instance`
+_G['CharacterHealth'].RemoveProjSpecific = function() end
+
+---`Method Public Static`
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param excludeBuffs? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].SortAfflictionsBySeverity = function(afflictions, excludeBuffs) end
+
+---`Method Public Instance`
+---@param healthElement System.Xml.Linq.XElement
+_G['CharacterHealth'].Save = function(healthElement) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param afflictionPredicate? (System.Func*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg:Barotrauma.AfflictionPrefab):(System.Boolean))
+_G['CharacterHealth'].Load = function(element, afflictionPredicate) end
+
+---`Method Private Instance`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['CharacterHealth'].OnAttacked = function(attacker, attackResult) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].UpdateAlignment = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateClientSpecific = function(deltaTime) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['CharacterHealth'].IsMouseOnHealthBar = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateHUD = function(deltaTime) end
+
+---`Method Public Instance`
+_G['CharacterHealth'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CharacterHealth'].DrawHUD = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateStatusHUD = function(deltaTime) end
+
+---`Method Public Static`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, affliction:Barotrauma.Affliction):(Microsoft.Xna.Framework.Color)
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, afflictionStrength:System.Single):(Microsoft.Xna.Framework.Color)
+---@param affliction Barotrauma.Affliction
+---@return Microsoft.Xna.Framework.Color
+_G['CharacterHealth'].GetAfflictionIconColor = function(affliction) end
+
+---`Method Private Instance`
+---@param selectedLimb Barotrauma.CharacterHealth.LimbHealth
+_G['CharacterHealth'].UpdateAfflictionContainer = function(selectedLimb) end
+
+---`Method Private Instance`
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].CreateAfflictionInfos = function(afflictions) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].CreateRecommendedTreatments = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param affliction Barotrauma.Affliction
+_G['CharacterHealth'].CreateAfflictionInfoElements = function(parent, affliction) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['CharacterHealth'].SelectAffliction = function(button, userData) end
+
+---`Method Private Instance`
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].UpdateAfflictionInfos = function(afflictions) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param affliction Barotrauma.Affliction
+---@return System.Single
+_G['CharacterHealth'].GetAfflictionStrengthPrediction = function(item, affliction) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param affliction Barotrauma.Affliction
+_G['CharacterHealth'].UpdateAfflictionInfo = function(parent, affliction) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param ignoreMousePos System.Boolean
+---@return System.Boolean
+_G['CharacterHealth'].OnItemDropped = function(item, ignoreMousePos) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param drawArea Microsoft.Xna.Framework.Rectangle
+_G['CharacterHealth'].UpdateLimbIndicators = function(deltaTime, drawArea) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawArea Microsoft.Xna.Framework.Rectangle
+---@param allowHighlight System.Boolean
+_G['CharacterHealth'].DrawHealthWindow = function(spriteBatch, drawArea, allowHighlight) end
+
+---`Method Private Instance`
+---@param kvp System.Collections.Generic.KeyValuePair*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@return System.Boolean
+_G['CharacterHealth'].ShouldDisplayAfflictionOnLimb = function(kvp, limbHealth) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param affliction Barotrauma.Affliction
+---@param iconScale System.Single
+---@param iconPos Microsoft.Xna.Framework.Vector2-ref
+_G['CharacterHealth'].DrawLimbAfflictionIcon = function(spriteBatch, affliction, iconScale, iconPos) end
+
+---`Method Private Instance`
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@param drawArea Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['CharacterHealth'].GetLimbHighlightArea = function(limbHealth, drawArea) end
+
+---`Method Public Instance`
+---@param value System.Boolean
+_G['CharacterHealth'].SetHealthBarVisibility = function(value) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['CharacterHealth'].ClientRead = function(inc) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].InitIrremovableAfflictions = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+_G['CharacterHealth'].InitProjSpecific = function(element, character) end
+
+---`Method Private Instance`
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@return System.Single
+_G['CharacterHealth'].GetTotalDamage = function(limbHealth) end
+
+---`Method Private Instance`
+---@overload fun(limb:Barotrauma.Limb):(Barotrauma.CharacterHealth.LimbHealth)
+---@param affliction Barotrauma.Affliction
+---@return Barotrauma.CharacterHealth.LimbHealth
+_G['CharacterHealth'].GetMatchingLimbHealth = function(affliction) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'] = function(element, character, limbHealthElement) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'].__new = function(element, character, limbHealthElement) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'] = function(element, character, limbHealthElement) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'].__new = function(element, character, limbHealthElement) end
+
diff --git a/Meta/Types/client/_00007FFD97DAD7E0.lua b/Meta/Types/client/_00007FFD97DAD7E0.lua
new file mode 100644
index 0000000..6cd37ab
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DAD7E0.lua
@@ -0,0 +1,230 @@
+---@meta
+---@class Barotrauma.Affliction : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.AfflictionPrefab
+---`Field Private Instance`
+---@field fluctuationTimer System.Single
+---`Field Private Instance`
+---@field activeEffect Barotrauma.AfflictionPrefab.Effect
+---`Field Private Instance`
+---@field prevActiveEffectStrength System.Single
+---`Field NonPublic Instance`
+---@field activeEffectDirty System.Boolean
+---`Field NonPublic Instance`
+---@field _strength System.Single
+---`Field Private Instance`
+---@field _nonClampedStrength System.Single
+---`Field Public Instance`
+---@field DamagePerSecond System.Single
+---`Field Public Instance`
+---@field DamagePerSecondTimer System.Single
+---`Field Public Instance`
+---@field PreviousVitalityDecrease System.Single
+---`Field Public Instance`
+---@field StrengthDiminishMultiplier System.ValueTuple*1System*Single*1Barotrauma*Affliction
+---`Field Public Instance`
+---@field PeriodicEffectTimers (System.Collections.Generic.Dictionary*1Barotrauma*AfflictionPrefab*PeriodicEffect*1System*Single)|({[Barotrauma.AfflictionPrefab.PeriodicEffect]:(System.Single)})
+---`Field Public Instance`
+---@field AppliedAsSuccessfulTreatmentTime System.Double
+---`Field Public Instance`
+---@field AppliedAsFailedTreatmentTime System.Double
+---`Field Public Instance`
+---@field Duration System.Single
+---`Field Public Instance`
+---@field Source Barotrauma.Character
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Static`
+---@field strengthTexts (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PendingGrainEffectStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrainEffectStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Strength System.Single
+---`Getter Public Instance`
+---@field NonClampedStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Probability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DivideByLimbCount System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MultiplyByMaxVitality System.Boolean
+_G['Affliction'] = {}
+
+---`Method Public Instance`
+---@param source Barotrauma.Affliction
+_G['Affliction'].CopyProperties = function(source) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Affliction'].Serialize = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Affliction'].Deserialize = function(element) end
+
+---`Method Public Instance`
+---@param multiplier System.Single
+---@param affliction Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'].CreateMultiplied = function(multiplier, affliction) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Affliction'].ToString = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['Affliction'].GetStrengthText = function() end
+
+---`Method Public Static`
+---@param strength System.Single
+---@param maxStrength System.Single
+---@return Barotrauma.LocalizedString
+_G['Affliction'].GetStrengthText = function(strength, maxStrength) end
+
+---`Method Public Instance`
+---@return Barotrauma.AfflictionPrefab.Effect
+_G['Affliction'].GetActiveEffect = function() end
+
+---`Method Public Instance`
+---@overload fun(characterHealth:Barotrauma.CharacterHealth):(System.Single)
+---@param characterHealth Barotrauma.CharacterHealth
+---@param strength System.Single
+---@return System.Single
+_G['Affliction'].GetVitalityDecrease = function(characterHealth, strength) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetScreenGrainStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetScreenDistortStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetRadialDistortStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetChromaticAberrationStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetAfflictionOverlayMultiplier = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Color
+_G['Affliction'].GetFaceTint = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Color
+_G['Affliction'].GetBodyTint = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetScreenBlurStrength = function() end
+
+---`Method Private Instance`
+---@param currentEffect Barotrauma.AfflictionPrefab.Effect
+---@return System.Single
+_G['Affliction'].GetScreenEffectFluctuation = function(currentEffect) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetSkillMultiplier = function() end
+
+---`Method Public Instance`
+---@param currentVitalityDecrease System.Single
+_G['Affliction'].CalculateDamagePerSecond = function(currentVitalityDecrease) end
+
+---`Method Public Instance`
+---@param afflictionId Barotrauma.Identifier
+---@param limbType Barotrauma.LimbType
+---@return System.Single
+_G['Affliction'].GetResistance = function(afflictionId, limbType) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetSpeedMultiplier = function() end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return System.Single
+_G['Affliction'].GetStatValue = function(statType) end
+
+---`Method Public Instance`
+---@param flagType Barotrauma.AbilityFlags
+---@return System.Boolean
+_G['Affliction'].HasFlag = function(flagType) end
+
+---`Method Private Instance`
+---@return Barotrauma.AfflictionPrefab.Effect
+_G['Affliction'].GetViableEffect = function() end
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['Affliction'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+_G['Affliction'].ApplyStatusEffects = function(type, deltaTime, characterHealth, targetLimb) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param statusEffect Barotrauma.StatusEffect
+---@param deltaTime System.Single
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+_G['Affliction'].ApplyStatusEffect = function(type, statusEffect, deltaTime, characterHealth, targetLimb) end
+
+---`Method Public Instance`
+---@param strength System.Single
+_G['Affliction'].SetStrength = function(strength) end
+
+---`Method Public Instance`
+---@param afflictedCharacter Barotrauma.Character
+---@return System.Boolean
+_G['Affliction'].ShouldShowIcon = function(afflictedCharacter) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DADC88.lua b/Meta/Types/client/_00007FFD97DADC88.lua
new file mode 100644
index 0000000..8b582b6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DADC88.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.CharacterHealth.LimbHealth : System.Object
+---`Field Public Instance`
+---@field IndicatorSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field HighlightSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field HighlightArea Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field VitalityMultipliers (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Public Instance`
+---@field VitalityTypeMultipliers (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+_G['CharacterHealth']['LimbHealth'] = {}
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth.LimbHealth
+---@param element Barotrauma.ContentXElement
+---@param characterHealth Barotrauma.CharacterHealth
+---@return Barotrauma.CharacterHealth.LimbHealth
+_G['CharacterHealth']['LimbHealth'] = function(element, characterHealth) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth.LimbHealth
+---@param element Barotrauma.ContentXElement
+---@param characterHealth Barotrauma.CharacterHealth
+---@return Barotrauma.CharacterHealth.LimbHealth
+_G['CharacterHealth']['LimbHealth'].__new = function(element, characterHealth) end
+
diff --git a/Meta/Types/client/_00007FFD97DAEE88.lua b/Meta/Types/client/_00007FFD97DAEE88.lua
new file mode 100644
index 0000000..3fa73b7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DAEE88.lua
@@ -0,0 +1,505 @@
+---@meta
+---@class Barotrauma.Inventory : System.Object
+---`Field NonPublic Instance`
+---@field prevUIScale System.Single
+---`Field NonPublic Instance`
+---@field prevHUDScale System.Single
+---`Field NonPublic Instance`
+---@field prevScreenResolution Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field ReplacedBy Barotrauma.Inventory
+---`Field Private Instance`
+---@field partialReceivedItemIDs (System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[])
+---`Field Private Instance`
+---@field receivedItemIDs (System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[])
+---`Field Private Instance`
+---@field syncItemsCoroutine Barotrauma.CoroutineHandle
+---`Field Public Instance`
+---@field HideTimer System.Single
+---`Field Private Instance`
+---@field isSubInventory System.Boolean
+---`Field Private Instance`
+---@field movableFrameRectColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field movableFrameRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field savedPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field originalPos Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field canMove System.Boolean
+---`Field Private Instance`
+---@field positionUpdateQueued System.Boolean
+---`Field Private Instance`
+---@field draggableIndicatorOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field draggableIndicatorScale System.Single
+---`Field NonPublic Instance`
+---@field padding Microsoft.Xna.Framework.Vector4
+---`Field Private Instance`
+---@field slotsPerRow System.Int32
+---`Field Public Instance`
+---@field visualSlots (Barotrauma.VisualSlot-arr)|(Barotrauma.VisualSlot[])
+---`Field Private Instance`
+---@field prevRect Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field RectTransform Barotrauma.RectTransform
+---`Field Public Instance`
+---@field DrawWhenEquipped System.Boolean
+---`Field Public Instance`
+---@field OpenState System.Single
+---`Field Public Instance`
+---@field Owner Barotrauma.Entity
+---`Field NonPublic Instance`
+---@field capacity System.Int32
+---`Field NonPublic Instance`
+---@field slots (Barotrauma.ItemSlot-arr)|(Barotrauma.Inventory.ItemSlot[])
+---`Field Public Instance`
+---@field Locked System.Boolean
+---`Field NonPublic Instance`
+---@field syncItemsDelay System.Single
+---`Field Private Instance`
+---@field extraStackSize System.Int32
+---`Field Private Instance`
+---@field allItemsList (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field AllowSwappingContainedItems System.Boolean
+---`Field NonPublic Static`
+---@field slotHotkeySprite Barotrauma.Sprite
+---`Field Private Static`
+---@field slotSpriteSmall Barotrauma.Sprite
+---`Field Public Static`
+---@field DraggableIndicator Barotrauma.Sprite
+---`Field Public Static`
+---@field UnequippedIndicator Barotrauma.Sprite
+---`Field Public Static`
+---@field UnequippedHoverIndicator Barotrauma.Sprite
+---`Field Public Static`
+---@field UnequippedClickedIndicator Barotrauma.Sprite
+---`Field Public Static`
+---@field EquippedIndicator Barotrauma.Sprite
+---`Field Public Static`
+---@field EquippedHoverIndicator Barotrauma.Sprite
+---`Field Public Static`
+---@field EquippedClickedIndicator Barotrauma.Sprite
+---`Field Public Static`
+---@field DraggingInventory Barotrauma.Inventory
+---`Field Public Static`
+---@field DraggingSlot Barotrauma.VisualSlot
+---`Field Public Static`
+---@field DraggingItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Static`
+---@field doubleClickedItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field NonPublic Static`
+---@field highlightedSubInventorySlots (System.Collections.Generic.HashSet*1Barotrauma*Inventory*SlotReference)|(Barotrauma.Inventory.SlotReference[])
+---`Field Private Static`
+---@field subInventorySlotsToDraw (System.Collections.Generic.List*1Barotrauma*Inventory*SlotReference)|(Barotrauma.Inventory.SlotReference[])
+---`Field NonPublic Static`
+---@field selectedSlot Barotrauma.Inventory.SlotReference
+---`Field Private Static`
+---@field availableContextualOrder System.ValueTuple*1Barotrauma*Item*1Barotrauma*Identifier
+---`Field Private Static`
+---@field slotIconTooltip Barotrauma.LocalizedString
+---`Field Public Static`
+---@field SlotSpriteSmallScale System.Single
+---`Field Private Static`
+---@field movableFrameRectHeight System.Single
+---`Field Public Static`
+---@field MaxPossibleStackSize System.Int32
+---`Field Public Static`
+---@field MaxItemsPerNetworkEvent System.Int32
+---`Getter Public Static`
+---@field UIScale System.Single
+---`Getter Public Static`
+---@field ContainedIndicatorHeight System.Int32
+---`Getter Public Static`
+---@field SlotSpriteSmall Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field BackgroundFrame Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---@field DraggingItemToWorld System.Boolean
+---
`Setter Public Instance`
+---@field SlotsPerRow System.Int32
+---`Getter Public Static`
+---@field SelectedSlot Barotrauma.Inventory.SlotReference
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field IsMouseOnInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraStackSize System.Int32
+---`Getter Public Instance Virtual`
+---@field AllItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field AllItemsMod (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field Capacity System.Int32
+---`Getter Public Static`
+---@field IsDragAndDropGiveAllowed System.Boolean
+---`Getter Public Instance`
+---@field EmptySlotCount System.Int32
+_G['Inventory'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.Inventory
+_G['Inventory'].GetReplacementOrThiS = function() end
+
+---`Method Public Instance Virtual`
+_G['Inventory'].CreateSlots = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Inventory'].CalculateBackgroundFrame = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Inventory'].Movable = function() end
+
+---`Method Public Instance`
+---@param owner Barotrauma.Character
+---@param container Barotrauma.Items.Components.ItemContainer
+---@return System.Boolean
+_G['Inventory'].IsInventoryHoverAvailable = function(owner, container) end
+
+---`Method Public Instance Virtual`
+---@param i System.Int32
+---@return System.Boolean
+_G['Inventory'].HideSlot = function(i) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+---@param subInventory? System.Boolean
+_G['Inventory'].Update = function(deltaTime, cam, subInventory) end
+
+---`Method NonPublic Instance Virtual`
+---@param cam Barotrauma.Camera
+_G['Inventory'].ControlInput = function(cam) end
+
+---`Method NonPublic Instance`
+---@param slot Barotrauma.VisualSlot
+---@param slotIndex System.Int32
+---@param item Barotrauma.Item
+---@param isSubSlot System.Boolean
+_G['Inventory'].UpdateSlot = function(slot, slotIndex, item, isSubSlot) end
+
+---`Method NonPublic Instance`
+---@param slotIndex System.Int32
+---@return Barotrauma.Inventory
+_G['Inventory'].GetSubInventory = function(slotIndex) end
+
+---`Method NonPublic Instance Virtual`
+---@param slotIndex System.Int32
+---@return Barotrauma.ItemInventory
+_G['Inventory'].GetActiveEquippedSubInventory = function(slotIndex) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param slotIndex System.Int32
+---@param cam Barotrauma.Camera
+_G['Inventory'].UpdateSubInventory = function(deltaTime, slotIndex, cam) end
+
+---`Method Public Instance`
+_G['Inventory'].ClearSubInventories = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param subInventory? System.Boolean
+_G['Inventory'].Draw = function(spriteBatch, subInventory) end
+
+---`Method Public Static`
+---@param slot Barotrauma.VisualSlot
+---@return System.Boolean
+_G['Inventory'].IsMouseOnSlot = function(slot) end
+
+---`Method Public Static`
+_G['Inventory'].RefreshMouseOnInventory = function() end
+
+---`Method Private Static`
+---@param ignoreDraggedItem? System.Boolean
+---@return System.Boolean
+_G['Inventory'].DetermineMouseOnInventory = function(ignoreDraggedItem) end
+
+---`Method Public Static`
+---@return Barotrauma.CursorState
+_G['Inventory'].GetInventoryMouseCursor = function() end
+
+---`Method NonPublic Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param toolTip Barotrauma.RichString
+---@param highlightedSlot Microsoft.Xna.Framework.Rectangle
+_G['Inventory'].DrawToolTip = function(spriteBatch, toolTip, highlightedSlot) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param slotIndex System.Int32
+_G['Inventory'].DrawSubInventory = function(spriteBatch, slotIndex) end
+
+---`Method Public Static`
+_G['Inventory'].UpdateDragging = function() end
+
+---`Method Private Static`
+---@param giver Barotrauma.Character
+---@param receiver Barotrauma.Character
+---@return System.Boolean
+_G['Inventory'].IsValidTargetForDragDropGive = function(giver, receiver) end
+
+---`Method Private Static`
+---@param selectedSlot Barotrauma.Inventory.SlotReference
+---@return System.Boolean
+_G['Inventory'].CanSelectSlot = function(selectedSlot) end
+
+---`Method NonPublic Static`
+---@param subSlot Barotrauma.Inventory.SlotReference
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Inventory'].GetSubInventoryHoverArea = function(subSlot) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Inventory'].DrawFront = function(spriteBatch) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param inventory Barotrauma.Inventory
+---@param slot Barotrauma.VisualSlot
+---@param item Barotrauma.Item
+---@param slotIndex System.Int32
+---@param drawItem? System.Boolean
+---@param type? Barotrauma.InvSlotType
+_G['Inventory'].DrawSlot = function(spriteBatch, inventory, slot, item, slotIndex, drawItem, type) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param inventory Barotrauma.Inventory
+---@param indicatorSprite Barotrauma.Sprite
+---@param emptyIndicatorSprite Barotrauma.Sprite
+---@param containedIndicatorArea Microsoft.Xna.Framework.Rectangle
+---@param containedState System.Single
+---@param pulsate? System.Boolean
+_G['Inventory'].DrawItemStateIndicator = function(spriteBatch, inventory, indicatorSprite, emptyIndicatorSprite, containedIndicatorArea, containedState, pulsate) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['Inventory'].ClientEventRead = function(msg) end
+
+---`Method Private Instance`
+---@param lastEventID System.UInt16
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Inventory'].SyncItemsAfterDelay = function(lastEventID) end
+
+---`Method Public Instance`
+_G['Inventory'].ApplyReceivedState = function() end
+
+---`Method Public Instance`
+---@param checkForDuplicates System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Inventory'].GetAllItems = function(checkForDuplicates) end
+
+---`Method Private Instance`
+_G['Inventory'].NotifyItemComponentsOfChange = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Inventory'].Contains = function(item) end
+
+---`Method Public Instance`
+---@return Barotrauma.Item
+_G['Inventory'].FirstOrDefault = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Item
+_G['Inventory'].LastOrDefault = function() end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return Barotrauma.Item
+_G['Inventory'].GetItemAt = function(index) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Inventory'].GetItemsAt = function(index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+---@return System.Int32
+_G['Inventory'].GetItemStackSlotIndex = function(item, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Int32
+_G['Inventory'].FindIndex = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+_G['Inventory'].FindIndices = function(item) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Inventory'].ItemOwnsSelf = function(item) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param ignoreCondition? System.Boolean
+---@return System.Int32
+_G['Inventory'].FindAllowedSlot = function(item, ignoreCondition) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param condition? System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['Inventory'].CanBePut = function(itemPrefab, condition, quality) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, i:System.Int32, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition? System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['Inventory'].CanBePutInSlot = function(itemPrefab, i, condition, quality) end
+
+---`Method Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param condition? System.Nullable*1System*Single
+---@return System.Int32
+_G['Inventory'].HowManyCanBePut = function(itemPrefab, condition) end
+
+---`Method Public Instance Virtual`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param ignoreItemsInSlot? System.Boolean
+---@return System.Int32
+_G['Inventory'].HowManyCanBePut = function(itemPrefab, i, condition, ignoreItemsInSlot) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, user:Barotrauma.Character, allowedSlots?:(System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType)), createNetworkEvent?:System.Boolean, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param allowSwapping System.Boolean
+---@param allowCombine System.Boolean
+---@param user Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param ignoreCondition? System.Boolean
+---@return System.Boolean
+_G['Inventory'].TryPutItem = function(item, i, allowSwapping, allowCombine, user, createNetworkEvent, ignoreCondition) end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param user Barotrauma.Character
+---@param removeItem? System.Boolean
+---@param createNetworkEvent? System.Boolean
+_G['Inventory'].PutItem = function(item, i, user, removeItem, createNetworkEvent) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Inventory'].IsEmpty = function() end
+
+---`Method Public Instance Virtual`
+---@param takeStacksIntoAccount? System.Boolean
+---@return System.Boolean
+_G['Inventory'].IsFull = function(takeStacksIntoAccount) end
+
+---`Method NonPublic Instance`
+---@param index System.Int32
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@param createNetworkEvent System.Boolean
+---@param swapWholeStack System.Boolean
+---@return System.Boolean
+_G['Inventory'].TrySwapping = function(index, item, user, createNetworkEvent, swapWholeStack) end
+
+---`Method Public Instance`
+_G['Inventory'].CreateNetworkEvent = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param slotRange System.Range
+_G['Inventory'].CreateNetworkEvent = function(slotRange) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param recursive System.Boolean
+---@return Barotrauma.Item
+_G['Inventory'].FindItem = function(predicate, recursive) end
+
+---`Method Public Instance`
+---@param predicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param recursive? System.Boolean
+---@param list? (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Inventory'].FindAllItems = function(predicate, recursive, list) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param recursive? System.Boolean
+---@return Barotrauma.Item
+_G['Inventory'].FindItemByTag = function(tag, recursive) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param recursive? System.Boolean
+---@return Barotrauma.Item
+_G['Inventory'].FindItemByIdentifier = function(identifier, recursive) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+_G['Inventory'].RemoveItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+_G['Inventory'].ForceToSlot = function(item, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+_G['Inventory'].ForceRemoveFromSlot = function(item, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+---@return System.Boolean
+_G['Inventory'].IsInSlot = function(item, index) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param receivedItemIds (System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[])
+---@param readyToApply System.Boolean-ref
+_G['Inventory'].SharedRead = function(msg, receivedItemIds, readyToApply) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param slotRange System.Range
+_G['Inventory'].SharedWrite = function(msg, slotRange) end
+
+---`Method Public Instance`
+_G['Inventory'].DeleteAllItems = function() end
+
+---`Constructor Public Instance`
+---@overload fun(owner:Barotrauma.Entity, capacity:System.Int32, slotsPerRow?:System.Int32):Barotrauma.Inventory
+---@return Barotrauma.Inventory
+_G['Inventory'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(owner:Barotrauma.Entity, capacity:System.Int32, slotsPerRow?:System.Int32):Barotrauma.Inventory
+---@return Barotrauma.Inventory
+_G['Inventory'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(owner:Barotrauma.Entity, capacity:System.Int32, slotsPerRow?:System.Int32):Barotrauma.Inventory
+---@return Barotrauma.Inventory
+_G['Inventory'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(owner:Barotrauma.Entity, capacity:System.Int32, slotsPerRow?:System.Int32):Barotrauma.Inventory
+---@return Barotrauma.Inventory
+_G['Inventory'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DAF6D0.lua b/Meta/Types/client/_00007FFD97DAF6D0.lua
new file mode 100644
index 0000000..0dd0b19
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DAF6D0.lua
@@ -0,0 +1,249 @@
+---@meta
+---@class Barotrauma.CharacterInventory : Barotrauma.Inventory
+---`Field Private Instance`
+---@field screenResolution Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field SlotPositions (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field layout Barotrauma.CharacterInventory.Layout
+---`Field Private Instance`
+---@field personalSlotArea Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field NonPublic Instance`
+---@field IsEquipped (System.Boolean-arr)|(System.Boolean[])
+---`Field Private Static`
+---@field limbSlotIcons (System.Collections.Generic.Dictionary*1Barotrauma*InvSlotType*1Barotrauma*Sprite)|({[Barotrauma.InvSlotType]:(Barotrauma.Sprite)})
+---`Field Public Static`
+---@field SlotSize Microsoft.Xna.Framework.Point
+---`Field Private Static`
+---@field hideSubInventories (System.Collections.Generic.List*1Barotrauma*Inventory*SlotReference)|(Barotrauma.Inventory.SlotReference[])
+---`Field Private Static`
+---@field tempHighlightedSubInventorySlots (System.Collections.Generic.List*1Barotrauma*Inventory*SlotReference)|(Barotrauma.Inventory.SlotReference[])
+---`Field Public Static`
+---@field AnySlot (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Public Static`
+---@field BagSlot (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Public Static`
+---@field PersonalSlots Barotrauma.InvSlotType
+---`Getter Public Static`
+---@field LimbSlotIcons (System.Collections.Generic.Dictionary*1Barotrauma*InvSlotType*1Barotrauma*Sprite)|({[Barotrauma.InvSlotType]:(Barotrauma.Sprite)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentLayout Barotrauma.CharacterInventory.Layout
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SlotTypes (Barotrauma.InvSlotType-arr)|(Barotrauma.InvSlotType[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccessibleWhenAlive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccessibleByOwner System.Boolean
+_G['CharacterInventory'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param slotIndex System.Int32
+---@return Barotrauma.ItemInventory
+_G['CharacterInventory'].GetActiveEquippedSubInventory = function(slotIndex) end
+
+---`Method Public Instance Virtual`
+_G['CharacterInventory'].CreateSlots = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['CharacterInventory'].CalculateBackgroundFrame = function() end
+
+---`Method Public Instance Virtual`
+---@param i System.Int32
+---@return System.Boolean
+_G['CharacterInventory'].HideSlot = function(i) end
+
+---`Method Public Instance`
+_G['CharacterInventory'].RefreshSlotPositions = function() end
+
+---`Method Private Instance`
+---@param layout Barotrauma.CharacterInventory.Layout
+_G['CharacterInventory'].SetSlotPositions = function(layout) end
+
+---`Method NonPublic Instance Virtual`
+---@param cam Barotrauma.Camera
+_G['CharacterInventory'].ControlInput = function(cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+---@param isSubInventory? System.Boolean
+_G['CharacterInventory'].Update = function(deltaTime, cam, isSubInventory) end
+
+---`Method Public Instance`
+_G['CharacterInventory'].UpdateSlotInput = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param slot Barotrauma.VisualSlot
+---@param deltaTime System.Single
+_G['CharacterInventory'].HandleButtonEquipStates = function(item, slot, deltaTime) end
+
+---`Method Private Instance`
+---@param slotRef Barotrauma.Inventory.SlotReference
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+---@param hideSubInventories (System.Collections.Generic.List*1Barotrauma*Inventory*SlotReference)|(Barotrauma.Inventory.SlotReference[])
+---@param isEquippedSubInventory System.Boolean
+_G['CharacterInventory'].ShowSubInventory = function(slotRef, deltaTime, cam, hideSubInventories, isEquippedSubInventory) end
+
+---`Method Public Instance`
+_G['CharacterInventory'].AssignQuickUseNumKeys = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param allowEquip System.Boolean
+---@param allowInventorySwap System.Boolean
+---@param allowApplyTreatment System.Boolean
+---@return Barotrauma.CharacterInventory.QuickUseAction
+_G['CharacterInventory'].GetQuickUseAction = function(item, allowEquip, allowInventorySwap, allowApplyTreatment) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param allowEquip System.Boolean
+---@param allowInventorySwap System.Boolean
+---@param allowApplyTreatment System.Boolean
+---@param action? System.Nullable*1Barotrauma*CharacterInventory*QuickUseAction
+---@param playSound? System.Boolean
+_G['CharacterInventory'].QuickUseItem = function(item, allowEquip, allowInventorySwap, allowApplyTreatment, action, playSound) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['CharacterInventory'].CanBeAutoMovedToCorrectSlots = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param color Microsoft.Xna.Framework.Color
+_G['CharacterInventory'].FlashAllowedSlots = function(item, color) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CharacterInventory'].DrawOwn = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData Barotrauma.Character.InventoryStateEventData
+_G['CharacterInventory'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Static`
+---@param s Barotrauma.InvSlotType
+---@return System.Boolean
+_G['CharacterInventory'].IsHandSlotType = function(s) end
+
+---`Method Private Static`
+---@param element Barotrauma.ContentXElement
+---@return (System.String-arr)|(System.String[])
+_G['CharacterInventory'].ParseSlotTypes = function(element) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['CharacterInventory'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return Barotrauma.Item
+_G['CharacterInventory'].FindEquippedItemByTag = function(tag) end
+
+---`Method Public Instance`
+---@param limbSlot Barotrauma.InvSlotType
+---@return System.Int32
+_G['CharacterInventory'].FindLimbSlot = function(limbSlot) end
+
+---`Method Public Instance`
+---@param limbSlot Barotrauma.InvSlotType
+---@return Barotrauma.Item
+_G['CharacterInventory'].GetItemInLimbSlot = function(limbSlot) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param limbSlot Barotrauma.InvSlotType
+---@return System.Boolean
+_G['CharacterInventory'].IsInLimbSlot = function(item, limbSlot) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, i:System.Int32, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['CharacterInventory'].CanBePutInSlot = function(itemPrefab, i, condition, quality) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+_G['CharacterInventory'].RemoveItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param tryEquipFromSameStack System.Boolean
+_G['CharacterInventory'].RemoveItem = function(item, tryEquipFromSameStack) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@param allowedSlots? (System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType))
+---@param createNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['CharacterInventory'].TryPutItemWithAutoEquipCheck = function(item, user, allowedSlots, createNetworkEvent) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, user:Barotrauma.Character, allowedSlots?:(System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType)), createNetworkEvent?:System.Boolean, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param index System.Int32
+---@param allowSwapping System.Boolean
+---@param allowCombine System.Boolean
+---@param user Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param ignoreCondition? System.Boolean
+---@return System.Boolean
+_G['CharacterInventory'].TryPutItem = function(item, index, allowSwapping, allowCombine, user, createNetworkEvent, ignoreCondition) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['CharacterInventory'].IsAnySlotAvailable = function(item) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param inWrongSlot System.Boolean
+---@return System.Int32
+_G['CharacterInventory'].GetFreeAnySlot = function(item, inWrongSlot) end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param user Barotrauma.Character
+---@param removeItem? System.Boolean
+---@param createNetworkEvent? System.Boolean
+_G['CharacterInventory'].PutItem = function(item, i, user, removeItem, createNetworkEvent) end
+
+---`Method NonPublic Instance Virtual`
+---@param slotRange System.Range
+_G['CharacterInventory'].CreateNetworkEvent = function(slotRange) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DB3F08.lua b/Meta/Types/client/_00007FFD97DB3F08.lua
new file mode 100644
index 0000000..249aad7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB3F08.lua
@@ -0,0 +1,1201 @@
+---@meta
+---@class Barotrauma.Item : Barotrauma.MapEntity
+---`Field Private Instance`
+---@field positionBuffer (System.Collections.Generic.List*1Barotrauma*PosInfo)|(Barotrauma.PosInfo[])
+---`Field Private Instance`
+---@field activeHUDs (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field activeEditors (System.Collections.Generic.List*1Barotrauma*SerializableEntityEditor)|(Barotrauma.SerializableEntityEditor[])
+---`Field Private Instance`
+---@field iconStyle Barotrauma.GUIComponentStyle
+---`Field Public Instance`
+---@field LastImpactSoundTime System.Single
+---`Field Private Instance`
+---@field editingHUDRefreshTimer System.Single
+---`Field Private Instance`
+---@field activeContainedSprite Barotrauma.ContainedItemSprite
+---`Field Private Instance`
+---@field spriteAnimState (System.Collections.Generic.Dictionary*1Barotrauma*DecorativeSprite*1Barotrauma*DecorativeSprite*State)|({[Barotrauma.DecorativeSprite]:(Barotrauma.DecorativeSprite.State)})
+---`Field Public Instance`
+---@field DrawDepthOffset System.Single
+---`Field Private Instance`
+---@field fakeBroken System.Boolean
+---`Field Private Instance`
+---@field activeSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field itemInUseWarning Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field cachedVisibleExtents System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---`Field Private Instance`
+---@field debugInitialHudPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Instance`
+---@field prevActiveHUDs (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field activeComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field maxPriorityHUDs (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field texts (System.Collections.Generic.List*1Barotrauma*ColoredText)|(Barotrauma.ColoredText[])
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field isWire System.Boolean
+---`Field Private Instance`
+---@field isLogic System.Boolean
+---`Field Private Instance`
+---@field currentHull Barotrauma.Hull
+---`Field Private Instance`
+---@field campaignInteractionType Barotrauma.CampaignMode.InteractionType
+---`Field Public Instance`
+---@field Visible System.Boolean
+---`Field Public Instance`
+---@field SpriteEffects Microsoft.Xna.Framework.Graphics.SpriteEffects
+---`Field Private Instance`
+---@field componentsByType (System.Collections.Generic.Dictionary*1System*Type*1Barotrauma*Items*Components*ItemComponent)|({[System.Type]:(Barotrauma.Items.Components.ItemComponent)})
+---`Field Private Instance`
+---@field components (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field updateableComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field drawableComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*IDrawableComponent)|(Barotrauma.Items.Components.IDrawableComponent[])
+---`Field Private Instance`
+---@field hasComponentsToDraw System.Boolean
+---`Field Public Instance`
+---@field body Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field originalWaterDragCoefficient System.Single
+---`Field Private Instance`
+---@field overrideWaterDragCoefficient System.Nullable*1System*Single
+---`Field Public Instance`
+---@field StaticBodyConfig System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field StaticFixtures (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+---`Field Private Instance`
+---@field transformDirty System.Boolean
+---`Field Private Instance`
+---@field lastSentCondition System.Single
+---`Field Private Instance`
+---@field sendConditionUpdateTimer System.Single
+---`Field Private Instance`
+---@field prevCondition System.Single
+---`Field Private Instance`
+---@field condition System.Single
+---`Field Private Instance`
+---@field inWater System.Boolean
+---`Field Private Instance`
+---@field hasInWaterStatusEffects System.Boolean
+---`Field Private Instance`
+---@field hasNotInWaterStatusEffects System.Boolean
+---`Field Private Instance`
+---@field parentInventory Barotrauma.Inventory
+---`Field Private Instance`
+---@field ownInventory Barotrauma.ItemInventory
+---`Field Private Instance`
+---@field defaultRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field connections (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Items*Components*Connection)|({[System.String]:(Barotrauma.Items.Components.Connection)})
+---`Field Private Instance`
+---@field repairables (System.Collections.Generic.List*1Barotrauma*Items*Components*Repairable)|(Barotrauma.Items.Components.Repairable[])
+---`Field Private Instance`
+---@field qualityComponent Barotrauma.Items.Components.Quality
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Concurrent.ConcurrentQueue*1System*Single)|(fun():(System.Single))
+---`Field Private Instance`
+---@field hasStatusEffectsOfType (System.Boolean-arr)|(System.Boolean[])
+---`Field Private Instance`
+---@field statusEffectLists (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field conditionMultiplierCampaign System.Single
+---`Field Public Instance`
+---@field OnInteract (System.Action)|(fun())
+---`Field Private Instance`
+---@field hasInGameEditableProperties System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field Equipper Barotrauma.Character
+---`Field Private Instance`
+---@field rootContainer Barotrauma.Item
+---`Field Private Instance`
+---@field inWaterProofContainer System.Boolean
+---`Field Private Instance`
+---@field container Barotrauma.Item
+---`Field Private Instance`
+---@field description System.String
+---`Field Private Instance`
+---@field descriptionTag System.String
+---`Field Private Instance`
+---@field scale System.Single
+---`Field NonPublic Instance`
+---@field spriteColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field HighlightColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Instance`
+---@field offsetOnSelectedMultiplier System.Single
+---`Field Private Instance`
+---@field healthMultiplier System.Single
+---`Field Private Instance`
+---@field maxRepairConditionMultiplier System.Single
+---`Field Private Instance`
+---@field indestructible System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field StolenDuringRound System.Boolean
+---`Field Private Instance`
+---@field spawnedInCurrentOutpost System.Boolean
+---`Field Private Instance`
+---@field allowStealing System.Boolean
+---`Field Public Instance`
+---@field IsSalvageMissionItem System.Boolean
+---`Field Private Instance`
+---@field originalOutpost System.String
+---`Field Private Instance`
+---@field waterProof System.Boolean
+---`Field Private Instance`
+---@field allowedSlots (System.Collections.Generic.HashSet*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Public Instance`
+---@field OwnInventories (System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemInventory)|(Barotrauma.ItemInventory[])
+---`Field Public Instance`
+---@field AvailableSwaps (System.Collections.Generic.HashSet*1Barotrauma*ItemPrefab)|(Barotrauma.ItemPrefab[])
+---`Field Private Instance`
+---@field allPropertyObjects (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field statManager Barotrauma.ItemStatManager
+---`Field Public Instance`
+---@field OnDeselect (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field isActive System.Boolean
+---`Field Private Instance`
+---@field delayedSignals (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Items*Components*Signal*2Barotrauma*Items*Components*Connection)|(System.ValueTuple*1Barotrauma*Items*Components*Signal*1Barotrauma*Items*Components*Connection[])
+---`Field Private Instance`
+---@field droppedStack (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field isDroppedStackOwner System.Boolean
+---`Field Public Static`
+---@field ShowItems System.Boolean
+---`Field Public Static`
+---@field ShowWires System.Boolean
+---`Field Public Static`
+---@field ItemList (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field dangerousItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field repairableItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field cleanableItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field deconstructItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field sonarVisibleItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Static`
+---@field ShowLinks System.Boolean
+---`Field Private Static`
+---@field itemsWithPendingConditionUpdates (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Static`
+---@field connectionPairs (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Field Public Static`
+---@field ImpactSoundInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IconStyle Barotrauma.GUIComponentStyle
+---`Getter Public Instance`
+---@field ActiveHUDs (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemComponent)|(fun():(Barotrauma.Items.Components.ItemComponent))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FakeBroken System.Boolean
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field DrawBelowWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawOverWater System.Boolean
+---`Getter Private Instance`
+---@field ItemInUseWarning Barotrauma.GUITextBlock
+---`Getter Public Instance Virtual`
+---@field SelectableInEditor System.Boolean
+---`Getter Public Static`
+---@field DangerousItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Static`
+---@field RepairableItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Static`
+---@field CleanableItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Static`
+---@field DeconstructItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Getter Public Static`
+---@field SonarVisibleItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field Prefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Getter Public Instance`
+---@field HullOxygenPercentage System.Single
+---`Getter Public Instance`
+---@field CampaignInteractionType Barotrauma.CampaignMode.InteractionType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FullyInitialized System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterDragCoefficient System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyType FarseerPhysics.BodyType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DefaultRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Private Instance`
+---@field HasInGameEditableProperties System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EditableWhenEquipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ParentInventory Barotrauma.Inventory
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootContainer Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Container Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Description System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DescriptionTag System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonInteractable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonPlayerTeamInteractable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSwapping System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PurchasedNewSwap System.Boolean
+---`Getter Public Instance`
+---@field IsPlayerTeamInteractable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationRad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---@field InteractDistance System.Single
+---`Getter Public Instance`
+---@field InteractPriority System.Single
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field InteractionRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PositionUpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field InventoryIconColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ContainerColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field ContainerIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field IsContained System.Boolean
+---`Getter Public Instance`
+---@field Speed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SonarLabel System.String
+---`Getter Public Instance`
+---@field PhysicsBodyActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SightRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsShootable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAimToUse System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAimToSecondaryUse System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DontCleanUp System.Boolean
+---`Getter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsFullCondition System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxCondition System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConditionPercentage System.Single
+---`Getter Public Instance`
+---@field ConditionPercentageRelativeToDefaultMaxCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OffsetOnSelectedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxRepairConditionMultiplier System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field HasBeenInstantiatedOnce System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Condition System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ConditionLastUpdated System.Double
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field LastConditionChange System.Single
+---`Getter Public Instance`
+---@field ConditionIncreasedRecently System.Boolean
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Indestructible System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDeconstruct System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InvulnerableToDamage System.Boolean
+---`Getter Public Instance`
+---@field Illegitimate System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnedInCurrentOutpost System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowStealing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OriginalOutpost System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FireProof System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterProof System.Boolean
+---`Getter Public Instance`
+---@field UseInHealthInterface System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Quality System.Int32
+---`Getter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastSentSignalRecipients (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---@field ConfigFilePath Barotrauma.ContentPath
+---`Getter Public Instance`
+---@field AllowedSlots (System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType))
+---`Getter Public Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---@field ContainedItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field OwnInventory Barotrauma.ItemInventory
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplaySideBySideWhenLinked System.Boolean
+---`Getter Public Instance`
+---@field Repairables (System.Collections.Generic.List*1Barotrauma*Items*Components*Repairable)|(Barotrauma.Items.Components.Repairable[])
+---`Getter Public Instance`
+---@field Components (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Getter Public Instance Virtual`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---@field WorldPositionX System.Single
+---`Getter Public Instance`
+---@field WorldPositionY System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PositionX System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PositionY System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Infector Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PendingItemSwap Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field AllPropertyObjects (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field OrderedToBeIgnored System.Boolean
+---`Getter Public Instance`
+---@field HasBallastFloraInHull System.Boolean
+---`Getter Public Instance`
+---@field IsClaimedByBallastFlora System.Boolean
+---`Getter Public Instance`
+---@field InPlayerSubmarine System.Boolean
+---`Getter Public Instance`
+---@field InBeaconStation System.Boolean
+---`Getter Public Instance`
+---@field IsLadder System.Boolean
+---`Getter Public Instance`
+---@field IsSecondaryItem System.Boolean
+---`Getter Public Instance`
+---@field StatManager Barotrauma.ItemStatManager
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastEatenTime System.Single
+---`Getter Public Instance`
+---@field DroppedStack (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Item'] = {}
+
+---`Method Public Instance`
+---@param loadingRound System.Boolean
+_G['Item'].CreateStatusEvent = function(loadingRound) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['Item'].UpdatePendingConditionUpdates = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Item'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Item'].Splash = function() end
+
+---`Method Public Instance`
+_G['Item'].UpdateTransform = function() end
+
+---`Method Private Instance`
+_G['Item'].ApplyWaterForces = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Item'].OnCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param impact System.Single
+_G['Item'].HandleCollision = function(impact) end
+
+---`Method Private Instance`
+---@param impact System.Single
+_G['Item'].OnCollisionProjSpecific = function(impact) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Item'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Item'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance`
+---@param connectionFilter? (System.Func*1Barotrauma*Items*Components*Connection*1System*Boolean)|(fun(arg:Barotrauma.Items.Components.Connection):(System.Boolean))
+---@return Barotrauma.Item.T
+_G['Item'].GetDirectlyConnectedComponent = function(connectionFilter) end
+
+---`Method Public Instance`
+---@param recursive? System.Boolean
+---@param allowTraversingBackwards? System.Boolean
+---@param connectionFilter? (System.Func*1Barotrauma*Items*Components*Connection*1System*Boolean)|(fun(arg:Barotrauma.Items.Components.Connection):(System.Boolean))
+---@return (System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[])
+_G['Item'].GetConnectedComponents = function(recursive, allowTraversingBackwards, connectionFilter) end
+
+---`Method Private Instance`
+---@overload fun(alreadySearched:(System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[]), connectedComponents:(System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[]), ignoreInactiveRelays?:System.Boolean, allowTraversingBackwards?:System.Boolean)
+---@param c Barotrauma.Items.Components.Connection
+---@param alreadySearched (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---@param connectedComponents (System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[])
+---@param ignoreInactiveRelays System.Boolean
+---@param allowTraversingBackwards? System.Boolean
+_G['Item'].GetConnectedComponentsRecursive = function(c, alreadySearched, connectedComponents, ignoreInactiveRelays, allowTraversingBackwards) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Items.Components.Connection
+---@param ignoreInactiveRelays? System.Boolean
+---@param allowTraversingBackwards? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[])
+_G['Item'].GetConnectedComponentsRecursive = function(c, ignoreInactiveRelays, allowTraversingBackwards) end
+
+---`Method Public Instance`
+---@param tags? System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier
+---@return Barotrauma.Items.Components.Controller
+_G['Item'].FindController = function(tags) end
+
+---`Method Public Instance`
+---@param controller Barotrauma.Items.Components.Controller-ref
+---@param tags? System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier
+---@return System.Boolean
+_G['Item'].TryFindController = function(controller, tags) end
+
+---`Method Public Instance`
+---@overload fun(signal:System.String, connectionName:System.String)
+---@overload fun(signal:Barotrauma.Items.Components.Signal, connectionName:System.String)
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Item'].SendSignal = function(signal, connection) end
+
+---`Method Private Instance`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Item'].DelaySignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2):(System.Boolean)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param transformedTrigger Microsoft.Xna.Framework.Rectangle-ref
+---@return System.Boolean
+_G['Item'].IsInsideTrigger = function(worldPosition, transformedTrigger) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Networking.Client
+---@return System.Boolean
+_G['Item'].CanClientAccess = function(c) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param ignoreRequiredItems? System.Boolean
+---@param forceSelectKey? System.Boolean
+---@param forceUseKey? System.Boolean
+---@return System.Boolean
+_G['Item'].TryInteract = function(user, ignoreRequiredItems, forceSelectKey, forceUseKey) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Item'].GetContainedItemConditionPercentage = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param user? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param userForOnUsedEvent? Barotrauma.Character
+_G['Item'].Use = function(deltaTime, user, targetLimb, useTarget, userForOnUsedEvent) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+_G['Item'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param character Barotrauma.Character
+---@param targetLimb Barotrauma.Limb
+_G['Item'].ApplyTreatment = function(user, character, targetLimb) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Item'].Combine = function(item, user) end
+
+---`Method Public Instance`
+---@param dropper Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param setTransform? System.Boolean
+_G['Item'].Drop = function(dropper, createNetworkEvent, setTransform) end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param allowClientExecute System.Boolean
+_G['Item'].CreateDroppedStack = function(items, allowClientExecute) end
+
+---`Method Private Instance`
+---@param allowClientExecute System.Boolean
+_G['Item'].RemoveFromDroppedStack = function(allowClientExecute) end
+
+---`Method Private Instance`
+_G['Item'].SetDroppedStackItemStates = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Item'].GetStackedItems = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Item'].Equip = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Item'].Unequip = function(character) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*ValueTuple*2System*Object*2Barotrauma*SerializableProperty)|(System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty[])
+_G['Item'].GetProperties = function() end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData Barotrauma.Item.ChangePropertyEventData
+---@param inGameEditableOnly System.Boolean
+_G['Item'].WritePropertyChange = function(msg, extraData, inGameEditableOnly) end
+
+---`Method Private Instance`
+---@param ignoreConditions? System.Boolean
+---@return (System.Collections.Generic.List*1System*ValueTuple*2System*Object*2Barotrauma*SerializableProperty)|(System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty[])
+_G['Item'].GetInGameEditableProperties = function(ignoreConditions) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param inGameEditableOnly System.Boolean
+---@param sender? Barotrauma.Networking.Client
+_G['Item'].ReadPropertyChange = function(msg, inGameEditableOnly, sender) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Item'].UpdateNetPosition = function(deltaTime) end
+
+---`Method Public Static`
+---@overload fun(element:Barotrauma.ContentXElement, submarine:Barotrauma.Submarine, idRemap:Barotrauma.IdRemap):(Barotrauma.Item)
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param createNetworkEvent System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Item
+_G['Item'].Load = function(element, submarine, createNetworkEvent, idRemap) end
+
+---`Method Private Instance`
+---@param replacement Barotrauma.ItemPrefab
+---@param newId System.UInt16
+_G['Item'].ReplaceFromNetwork = function(replacement, newId) end
+
+---`Method Public Instance`
+---@param replacement Barotrauma.ItemPrefab
+_G['Item'].ReplaceWithLinkedItems = function(replacement) end
+
+---`Method Private Instance`
+---@param replacement Barotrauma.ItemPrefab
+---@param newId Barotrauma.Option*1System*UInt16
+---@param createEntityEvent System.Boolean
+_G['Item'].Replace = function(replacement, newId, createEntityEvent) end
+
+---`Method Public Instance`
+---@param swappingTo Barotrauma.SwappableItem
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*ItemPrefab)|({[Barotrauma.Item]:(Barotrauma.ItemPrefab)})
+_G['Item'].GetConnectedItemsToSwap = function(swappingTo) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Item'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['Item'].Reset = function() end
+
+---`Method Public Instance Virtual`
+_G['Item'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Item'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Item'].Remove = function() end
+
+---`Method Private Instance`
+_G['Item'].RemoveFromLists = function() end
+
+---`Method Private Instance`
+_G['Item'].RemoveProjSpecific = function() end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+_G['Item'].RemoveByPrefab = function(prefab) end
+
+---`Method Public Instance`
+---@param component System.String
+---@return System.Object
+_G['Item'].GetComponentString = function(component) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Item'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Item'].IgnoreByAI = function(character) end
+
+---`Method Private Instance`
+_G['Item'].InitProjSpecific = function() end
+
+---`Method Public Instance`
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param isPreferencesDefined System.Boolean-ref
+---@param isSecondary System.Boolean-ref
+---@param requireConditionRestriction? System.Boolean
+---@return System.Boolean
+_G['Item'].IsContainerPreferred = function(container, isPreferencesDefined, isSecondary, requireConditionRestriction) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Item'].Clone = function() end
+
+---`Method Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+_G['Item'].AddComponent = function(component) end
+
+---`Method Public Instance`
+---@param drawable Barotrauma.Items.Components.IDrawableComponent
+_G['Item'].EnableDrawableComponent = function(drawable) end
+
+---`Method Public Instance`
+---@param drawable Barotrauma.Items.Components.IDrawableComponent
+_G['Item'].DisableDrawableComponent = function(drawable) end
+
+---`Method Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+---@return System.Int32
+_G['Item'].GetComponentIndex = function(component) end
+
+---`Method Public Instance`
+---@return Barotrauma.Item.T
+_G['Item'].GetComponent = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item*T)|(fun():(Barotrauma.Item.T))
+_G['Item'].GetComponents = function() end
+
+---`Method Public Instance`
+---@param statType Barotrauma.Items.Components.Quality.StatType
+---@return System.Single
+_G['Item'].GetQualityModifier = function(statType) end
+
+---`Method Public Instance`
+---@param contained Barotrauma.Item
+_G['Item'].RemoveContained = function(contained) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param findNewHull? System.Boolean
+---@param setPrevTransform? System.Boolean
+_G['Item'].SetTransform = function(simPosition, rotation, findNewHull, setPrevTransform) end
+
+---`Method Public Instance`
+---@param otherItem Barotrauma.Item
+---@return System.Boolean
+_G['Item'].AllowDroppingOnSwapWith = function(otherItem) end
+
+---`Method Public Instance`
+_G['Item'].SetActiveSprite = function() end
+
+---`Method Private Instance`
+_G['Item'].SetActiveSpriteProjSpecific = function() end
+
+---`Method Public Instance`
+_G['Item'].CheckCleanable = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Item'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance`
+---@param trigger Microsoft.Xna.Framework.Rectangle
+---@param world? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Item'].TransformTrigger = function(trigger, world) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Quad2D
+_G['Item'].GetTransformedQuad = function() end
+
+---`Method Public Static`
+_G['Item'].UpdateHulls = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Hull
+_G['Item'].FindHull = function() end
+
+---`Method Private Instance`
+_G['Item'].RefreshRootContainer = function() end
+
+---`Method Private Instance`
+_G['Item'].RefreshInWaterProofContainer = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Item'].HasAccess = function(character) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['Item'].IsOwnedBy = function(entity) end
+
+---`Method Public Instance`
+---@return Barotrauma.Entity
+_G['Item'].GetRootInventoryOwner = function() end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Inventory*1System*Boolean)|(fun(arg:Barotrauma.Inventory):(System.Boolean))
+---@return Barotrauma.Inventory
+_G['Item'].FindParentInventory = function(predicate) end
+
+---`Method Public Instance`
+_G['Item'].SetContainedItemPositions = function() end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String)
+---@param tag Barotrauma.Identifier
+_G['Item'].AddTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+_G['Item'].RemoveTag = function(tag) end
+
+---`Method Public Instance`
+---@overload fun(tag:Barotrauma.Identifier):(System.Boolean)
+---@param allowedTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['Item'].HasTag = function(allowedTags) end
+
+---`Method Public Instance`
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['Item'].HasIdentifierOrTags = function(identifiersOrTags) end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String, newTag:System.String)
+---@param tag Barotrauma.Identifier
+---@param newTag Barotrauma.Identifier
+_G['Item'].ReplaceTag = function(tag, newTag) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['Item'].GetTags = function() end
+
+---`Method Public Instance`
+---@overload fun(conditional:Barotrauma.PropertyConditional):(System.Boolean)
+---@param conditional Barotrauma.PropertyConditional
+---@param checkContainer System.Boolean
+---@return System.Boolean
+_G['Item'].ConditionalMatches = function(conditional, checkContainer) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param isNetworkEvent? System.Boolean
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Item'].ApplyStatusEffects = function(type, deltaTime, character, limb, useTarget, isNetworkEvent, worldPosition) end
+
+---`Method Public Instance`
+---@param effect Barotrauma.StatusEffect
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param isNetworkEvent? System.Boolean
+---@param checkCondition? System.Boolean
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Item'].ApplyStatusEffect = function(effect, type, deltaTime, character, limb, useTarget, isNetworkEvent, checkCondition, worldPosition) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Item'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Private Instance`
+---@param value System.Single
+---@param isNetworkEvent System.Boolean
+---@param executeEffects? System.Boolean
+_G['Item'].SetCondition = function(value, isNetworkEvent, executeEffects) end
+
+---`Method Public Instance`
+_G['Item'].RecalculateConditionValues = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Item'].IsInWater = function() end
+
+---`Method Public Instance`
+_G['Item'].SendPendingNetworkUpdates = function() end
+
+---`Method Private Instance`
+_G['Item'].SendPendingNetworkUpdatesInternal = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Item'].IsInteractable = function(character) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Item'].GetDrawDepth = function() end
+
+---`Method Public Instance`
+---@param defaultColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param withHighlight? System.Boolean
+---@return Microsoft.Xna.Framework.Color
+_G['Item'].GetSpriteColor = function(defaultColor, withHighlight) end
+
+---`Method NonPublic Instance Virtual`
+_G['Item'].CheckIsHighlighted = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Color
+_G['Item'].GetInventoryIconColor = function() end
+
+---`Method Public Instance`
+_G['Item'].InitSpriteStates = function() end
+
+---`Method Public Instance`
+_G['Item'].ResetCachedVisibleSize = function() end
+
+---`Method Public Instance Virtual`
+---@param worldView Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['Item'].IsVisible = function(worldView) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+_G['Item'].Draw = function(spriteBatch, editing, back) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Item'].Draw = function(spriteBatch, editing, back, overrideColor) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param flipX System.Boolean
+---@param flipY System.Boolean
+---@param rotation System.Single
+---@param depth System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Item'].DrawDecorativeSprites = function(spriteBatch, drawPos, flipX, flipY, rotation, depth, overrideColor) end
+
+---`Method Public Instance`
+---@param ic Barotrauma.Items.Components.ItemComponent
+_G['Item'].CheckNeedsSoundUpdate = function(ic) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Item'].UpdateSpriteStates = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+---@param deltaTime System.Single
+_G['Item'].UpdateEditing = function(cam, deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Item'].IsMouseOn = function(position) end
+
+---`Method Public Instance`
+---@param inGame? System.Boolean
+---@return Barotrauma.GUIComponent
+_G['Item'].CreateEditingHUD = function(inGame) end
+
+---`Method Private Instance`
+---@param upgrade Barotrauma.Upgrade
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])
+_G['Item'].GetUpgradeSprites = function(upgrade) end
+
+---`Method Public Instance Virtual`
+---@param upgrade Barotrauma.Upgrade
+---@param createNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['Item'].AddUpgrade = function(upgrade, createNetworkEvent) end
+
+---`Method Public Instance`
+---@param tagTextBox Barotrauma.GUITextBox
+_G['Item'].CreateContainerTagPicker = function(tagTextBox) end
+
+---`Method Private Static`
+---@param tag Barotrauma.ContainerTagPrefab
+---@param location Microsoft.Xna.Framework.Point
+---@param popupParent Barotrauma.GUIComponent
+---@param prefabAndProbabilities (System.Collections.Immutable.ImmutableArray*1Barotrauma*ContainerTagPrefab*ItemAndProbability)|(Barotrauma.ContainerTagPrefab.ItemAndProbability[])
+_G['Item'].CreateContainerTagItemListPopup = function(tag, location, popupParent, prefabAndProbabilities) end
+
+---`Method Private Static`
+---@param ip Barotrauma.ItemPrefab
+---@param probability System.Single
+---@return System.Boolean
+_G['Item'].ShouldHideItemPrefab = function(ip, probability) end
+
+---`Method Private Instance`
+---@param ignoreLocking? System.Boolean
+_G['Item'].SetHUDLayout = function(ignoreLocking) end
+
+---`Method Public Instance`
+---@param cam Barotrauma.Camera
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+_G['Item'].UpdateHUD = function(cam, character, deltaTime) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param character Barotrauma.Character
+_G['Item'].DrawHUD = function(spriteBatch, cam, character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param recreateHudTexts? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*ColoredText)|(Barotrauma.ColoredText[])
+_G['Item'].GetHUDTexts = function(character, recreateHudTexts) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param itemComponent Barotrauma.Items.Components.ItemComponent
+---@return Barotrauma.Item.InteractionVisibility
+_G['Item'].GetComponentInteractionVisibility = function(character, itemComponent) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Item'].HasVisibleInteraction = function(character) end
+
+---`Method Public Instance`
+---@param ignoreLocking? System.Boolean
+_G['Item'].ForceHUDLayoutUpdate = function(ignoreLocking) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['Item'].AddToGUIUpdateList = function(order) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Item'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Item'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Item'].ClientReadPosition = function(msg, sendingTime) end
+
+---`Method Public Instance`
+---@overload fun(ic:Barotrauma.Item.T)
+---@param ic Barotrauma.Item.T
+---@param extraData Barotrauma.Items.Components.ItemComponent.IEventData
+_G['Item'].CreateClientEvent = function(ic, extraData) end
+
+---`Method Public Static`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param spawn? System.Boolean
+---@return Barotrauma.Item
+_G['Item'].ReadSpawnData = function(msg, spawn) end
+
+---`Method Public Instance`
+_G['Item'].OnPlayerSkillsChanged = function() end
+
+---`Method Public Instance`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@param targetClients? (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['Item'].AssignCampaignInteractionType = function(interactionType, targetClients) end
+
+---`Method Private Instance`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@param targetClients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['Item'].AssignCampaignInteractionTypeProjSpecific = function(interactionType, targetClients) end
+
+---`Method Public Instance`
+_G['Item'].ResetWaterDragCoefficient = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'] = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'].__new = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'] = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'].__new = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
diff --git a/Meta/Types/client/_00007FFD97DB45F8.lua b/Meta/Types/client/_00007FFD97DB45F8.lua
new file mode 100644
index 0000000..1d7977b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB45F8.lua
@@ -0,0 +1,89 @@
+---@meta
+---@class Barotrauma.ItemInventory : Barotrauma.Inventory
+---`Field Private Instance`
+---@field container Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field Container Barotrauma.Items.Components.ItemContainer
+_G['ItemInventory'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param cam Barotrauma.Camera
+_G['ItemInventory'].ControlInput = function(cam) end
+
+---`Method NonPublic Instance Virtual`
+_G['ItemInventory'].CalculateBackgroundFrame = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param subInventory? System.Boolean
+_G['ItemInventory'].Draw = function(spriteBatch, subInventory) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData Barotrauma.Item.InventoryStateEventData
+_G['ItemInventory'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param ignoreCondition? System.Boolean
+---@return System.Int32
+_G['ItemInventory'].FindAllowedSlot = function(item, ignoreCondition) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, i:System.Int32, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['ItemInventory'].CanBePutInSlot = function(itemPrefab, i, condition, quality) end
+
+---`Method Public Instance Virtual`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param ignoreItemsInSlot? System.Boolean
+---@return System.Int32
+_G['ItemInventory'].HowManyCanBePut = function(itemPrefab, i, condition, ignoreItemsInSlot) end
+
+---`Method Public Instance Virtual`
+---@param takeStacksIntoAccount? System.Boolean
+---@return System.Boolean
+_G['ItemInventory'].IsFull = function(takeStacksIntoAccount) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, user:Barotrauma.Character, allowedSlots?:(System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType)), createNetworkEvent?:System.Boolean, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param allowSwapping System.Boolean
+---@param allowCombine System.Boolean
+---@param user Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param ignoreCondition? System.Boolean
+---@return System.Boolean
+_G['ItemInventory'].TryPutItem = function(item, i, allowSwapping, allowCombine, user, createNetworkEvent, ignoreCondition) end
+
+---`Method NonPublic Instance Virtual`
+---@param slotRange System.Range
+_G['ItemInventory'].CreateNetworkEvent = function(slotRange) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+_G['ItemInventory'].RemoveItem = function(item) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Item
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param capacity System.Int32
+---@param slotsPerRow? System.Int32
+---@return Barotrauma.ItemInventory
+_G['ItemInventory'] = function(owner, container, capacity, slotsPerRow) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Item
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param capacity System.Int32
+---@param slotsPerRow? System.Int32
+---@return Barotrauma.ItemInventory
+_G['ItemInventory'].__new = function(owner, container, capacity, slotsPerRow) end
+
diff --git a/Meta/Types/client/_00007FFD97DB5860.lua b/Meta/Types/client/_00007FFD97DB5860.lua
new file mode 100644
index 0000000..99d9d86
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB5860.lua
@@ -0,0 +1,80 @@
+---@meta
+---@class Barotrauma.CharacterTalent : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.TalentPrefab
+---`Field Public Instance`
+---@field AddedThisRound System.Boolean
+---`Field Private Instance`
+---@field characterAbilityGroupEffectDictionary (System.Collections.Generic.Dictionary*1Barotrauma*AbilityEffectType*1System*Collections*Generic*List*2Barotrauma*Abilities*CharacterAbilityGroupEffect)|({[Barotrauma.AbilityEffectType]:((System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupEffect)|(Barotrauma.Abilities.CharacterAbilityGroupEffect[]))})
+---`Field Private Instance`
+---@field characterAbilityGroupIntervals (System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupInterval)|(Barotrauma.Abilities.CharacterAbilityGroupInterval[])
+---`Field Private Static`
+---@field checkedNonStackableTalents (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---@field DebugIdentifier System.String
+---`Getter Public Instance`
+---@field UnlockedRecipes (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field UnlockedStoreItems (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['CharacterTalent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['CharacterTalent'].UpdateTalent = function(deltaTime) end
+
+---`Method Public Static`
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param type Barotrauma.AbilityEffectType
+---@param abilityObject Barotrauma.Abilities.AbilityObject
+_G['CharacterTalent'].CheckTalentsForCrew = function(crew, type, abilityObject) end
+
+---`Method Public Instance`
+---@param abilityEffectType Barotrauma.AbilityEffectType
+---@param abilityObject Barotrauma.Abilities.AbilityObject
+_G['CharacterTalent'].CheckTalent = function(abilityEffectType, abilityObject) end
+
+---`Method Public Instance`
+---@param addingFirstTime System.Boolean
+_G['CharacterTalent'].ActivateTalent = function(addingFirstTime) end
+
+---`Method Private Instance`
+---@param abilityGroup Barotrauma.ContentXElement
+_G['CharacterTalent'].LoadAbilityGroupInterval = function(abilityGroup) end
+
+---`Method Private Instance`
+---@param abilityGroup Barotrauma.ContentXElement
+_G['CharacterTalent'].LoadAbilityGroupEffect = function(abilityGroup) end
+
+---`Method Public Instance`
+---@param characterAbilityGroup Barotrauma.Abilities.CharacterAbilityGroupEffect
+---@param abilityEffectType? Barotrauma.AbilityEffectType
+_G['CharacterTalent'].AddAbilityGroupEffect = function(characterAbilityGroup, abilityEffectType) end
+
+---`Method Public Static`
+---@param characterTalent Barotrauma.CharacterTalent
+---@param abilityEffectTypeString System.String
+---@return Barotrauma.AbilityEffectType
+_G['CharacterTalent'].ParseAbilityEffectType = function(characterTalent, abilityEffectTypeString) end
+
+---`Constructor Public Instance`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DB5CC8.lua b/Meta/Types/client/_00007FFD97DB5CC8.lua
new file mode 100644
index 0000000..e6ad393
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB5CC8.lua
@@ -0,0 +1,93 @@
+---@meta
+---@class Barotrauma.EditableParams : System.Object
+---`Field NonPublic Instance`
+---@field rootElement Barotrauma.ContentXElement
+---`Field NonPublic Instance`
+---@field doc System.Xml.Linq.XDocument
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsLoaded System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileName System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileNameWithoutExtension System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Folder System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Path Barotrauma.ContentPath
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Doc System.Xml.Linq.XDocument
+---`Getter Public Instance Virtual`
+---@field MainElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field OriginalElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SerializableEntityEditor Barotrauma.SerializableEntityEditor
+_G['EditableParams'] = {}
+
+---`Method NonPublic Instance`
+---@param name System.String
+---@param ... System.Object
+---@return Barotrauma.ContentXElement
+_G['EditableParams'].CreateElement = function(name, ...) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.String
+_G['EditableParams'].GetName = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param element? System.Xml.Linq.XElement
+---@return System.Boolean
+_G['EditableParams'].Deserialize = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param element? System.Xml.Linq.XElement
+---@return System.Boolean
+_G['EditableParams'].Serialize = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param file Barotrauma.ContentPath
+---@return System.Boolean
+_G['EditableParams'].Load = function(file) end
+
+---`Method NonPublic Instance Virtual`
+---@param fullPath Barotrauma.ContentPath
+_G['EditableParams'].UpdatePath = function(fullPath) end
+
+---`Method Public Instance Virtual`
+---@param fileNameWithoutExtension? System.String
+---@param settings? System.Xml.XmlWriterSettings
+---@return System.Boolean
+_G['EditableParams'].Save = function(fileNameWithoutExtension, settings) end
+
+---`Method Public Instance Virtual`
+---@param forceReload? System.Boolean
+---@return System.Boolean
+_G['EditableParams'].Reset = function(forceReload) end
+
+---`Method Public Instance Virtual`
+---@param editor Barotrauma.ParamsEditor
+---@param space? System.Int32
+_G['EditableParams'].AddToEditor = function(editor, space) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.EditableParams
+_G['EditableParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.EditableParams
+_G['EditableParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DB6C68.lua b/Meta/Types/client/_00007FFD97DB6C68.lua
new file mode 100644
index 0000000..e2b8bdc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB6C68.lua
@@ -0,0 +1,284 @@
+---@meta
+---@class Barotrauma.CharacterParams : Barotrauma.EditableParams
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field File Barotrauma.CharacterFile
+---`Field Public Instance`
+---@field SubParams (System.Collections.Generic.List*1Barotrauma*CharacterParams*SubParam)|(Barotrauma.CharacterParams.SubParam[])
+---`Field Public Instance`
+---@field Sounds (System.Collections.Generic.List*1Barotrauma*CharacterParams*SoundParams)|(Barotrauma.CharacterParams.SoundParams[])
+---`Field Public Instance`
+---@field BloodEmitters (System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams)|(Barotrauma.CharacterParams.ParticleParams[])
+---`Field Public Instance`
+---@field GibEmitters (System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams)|(Barotrauma.CharacterParams.ParticleParams[])
+---`Field Public Instance`
+---@field DamageEmitters (System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams)|(Barotrauma.CharacterParams.ParticleParams[])
+---`Field Public Instance`
+---@field Inventories (System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams)|(Barotrauma.CharacterParams.InventoryParams[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesTranslationOverride Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Group Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Humanoid System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasInfo System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanClimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceSlowClimbing System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Husk System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HuskedSpecies Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NonHuskedSpecies Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseHuskAppendage System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsAir System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHumanAI System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsMachine System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanSpeak System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseBossHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Noise System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Visibility System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BloodDecal System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BleedParticleAir System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BleedParticleWater System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BleedParticleMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanEat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EatingSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsePathFinding System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PathFinderPriority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideInSonar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideInThermalGoggles System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SonarDisruption System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistantSonarRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawLast System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AITurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AISlowTurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DespawnContainer Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VariantFile System.Xml.Linq.XDocument
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health Barotrauma.CharacterParams.HealthParams
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AI Barotrauma.CharacterParams.AIParams
+---`Getter Public Instance Virtual`
+---@field MainElement Barotrauma.ContentXElement
+_G['CharacterParams'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.String
+_G['CharacterParams'].GetName = function() end
+
+---`Method Public Static`
+---@param variantXML Barotrauma.ContentXElement
+---@param baseXML Barotrauma.ContentXElement
+---@return System.Xml.Linq.XElement
+_G['CharacterParams'].CreateVariantXml = function(variantXML, baseXML) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['CharacterParams'].Load = function() end
+
+---`Method Public Instance`
+---@param fileNameWithoutExtension? System.String
+---@return System.Boolean
+_G['CharacterParams'].Save = function(fileNameWithoutExtension) end
+
+---`Method Public Instance Virtual`
+---@param forceReload? System.Boolean
+---@return System.Boolean
+_G['CharacterParams'].Reset = function(forceReload) end
+
+---`Method Public Static`
+---@param group1 Barotrauma.Identifier
+---@param group2 Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterParams'].CompareGroup = function(group1, group2) end
+
+---`Method NonPublic Instance`
+_G['CharacterParams'].CreateSubParams = function() end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@param loadDefaultValues? System.Boolean
+---@return System.Boolean
+_G['CharacterParams'].Deserialize = function(element, alsoChildren, recursive, loadDefaultValues) end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['CharacterParams'].Serialize = function(element, alsoChildren, recursive) end
+
+---`Method Public Instance`
+---@param editor Barotrauma.ParamsEditor
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@param space? System.Int32
+_G['CharacterParams'].AddToEditor = function(editor, alsoChildren, recursive, space) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['CharacterParams'].AddSound = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddInventory = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddBloodEmitter = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddGibEmitter = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddDamageEmitter = function() end
+
+---`Method Private Instance`
+---@param type System.String
+_G['CharacterParams'].AddEmitter = function(type) end
+
+---`Method Public Instance`
+---@param soundParams Barotrauma.CharacterParams.SoundParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveSound = function(soundParams) end
+
+---`Method Public Instance`
+---@param emitter Barotrauma.CharacterParams.ParticleParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveBloodEmitter = function(emitter) end
+
+---`Method Public Instance`
+---@param emitter Barotrauma.CharacterParams.ParticleParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveGibEmitter = function(emitter) end
+
+---`Method Public Instance`
+---@param emitter Barotrauma.CharacterParams.ParticleParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveDamageEmitter = function(emitter) end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.CharacterParams.InventoryParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveInventory = function(inventory) end
+
+---`Method NonPublic Instance`
+---@param subParam Barotrauma.CharacterParams.T
+---@param collection? (System.Collections.Generic.IList*1Barotrauma*CharacterParams*T)|(Barotrauma.CharacterParams.T[])
+---@return System.Boolean
+_G['CharacterParams'].RemoveSubParam = function(subParam, collection) end
+
+---`Method NonPublic Instance`
+---@param element Barotrauma.ContentXElement
+---@param constructor (System.Func*1Barotrauma*ContentXElement*1Barotrauma*CharacterParams*1Barotrauma*CharacterParams*T)|(fun(arg1:Barotrauma.ContentXElement, arg2:Barotrauma.CharacterParams):(Barotrauma.CharacterParams.T))
+---@param subParam Barotrauma.T-ref
+---@param collection? (System.Collections.Generic.IList*1Barotrauma*CharacterParams*T)|(Barotrauma.CharacterParams.T[])
+---@param filter? (System.Func*1System*Collections*Generic*IList*2Barotrauma*CharacterParams*T*1System*Boolean)|(fun(arg:(System.Collections.Generic.IList*1Barotrauma*CharacterParams*T)|(Barotrauma.CharacterParams.T[])):(System.Boolean))
+---@return System.Boolean
+_G['CharacterParams'].TryAddSubParam = function(element, constructor, subParam, collection, filter) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterParams'].HasTag = function(tag) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.CharacterFile
+---@return Barotrauma.CharacterParams
+_G['CharacterParams'] = function(file) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.CharacterFile
+---@return Barotrauma.CharacterParams
+_G['CharacterParams'].__new = function(file) end
+
diff --git a/Meta/Types/client/_00007FFD97DB6F98.lua b/Meta/Types/client/_00007FFD97DB6F98.lua
new file mode 100644
index 0000000..3b38a01
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB6F98.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.CharacterParams.SubParam : System.Object
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Element Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubParams (System.Collections.Generic.List*1Barotrauma*CharacterParams*SubParam)|(Barotrauma.CharacterParams.SubParam[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Character Barotrauma.CharacterParams
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SerializableEntityEditor Barotrauma.SerializableEntityEditor
+_G['CharacterParams']['SubParam'] = {}
+
+---`Method NonPublic Instance`
+---@param name System.String
+---@param ... System.Object
+---@return Barotrauma.ContentXElement
+_G['CharacterParams']['SubParam'].CreateElement = function(name, ...) end
+
+---`Method Public Instance Virtual`
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['CharacterParams']['SubParam'].Deserialize = function(recursive) end
+
+---`Method Public Instance Virtual`
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['CharacterParams']['SubParam'].Serialize = function(recursive) end
+
+---`Method Public Instance Virtual`
+_G['CharacterParams']['SubParam'].Reset = function() end
+
+---`Method NonPublic Instance`
+---@param subParam Barotrauma.CharacterParams.SubParam.T
+---@param collection? (System.Collections.Generic.IList*1Barotrauma*CharacterParams*SubParam*T)|(Barotrauma.CharacterParams.SubParam.T[])
+---@return System.Boolean
+_G['CharacterParams']['SubParam'].RemoveSubParam = function(subParam, collection) end
+
+---`Method Public Instance Virtual`
+---@param editor Barotrauma.ParamsEditor
+---@param recursive? System.Boolean
+---@param space? System.Int32
+---@param titleFont? Barotrauma.GUIFont
+_G['CharacterParams']['SubParam'].AddToEditor = function(editor, recursive, space, titleFont) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SubParam
+_G['CharacterParams']['SubParam'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SubParam
+_G['CharacterParams']['SubParam'].__new = function(element, character) end
+
diff --git a/Meta/Types/client/_00007FFD97DB7BC0.lua b/Meta/Types/client/_00007FFD97DB7BC0.lua
new file mode 100644
index 0000000..11bb356
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB7BC0.lua
@@ -0,0 +1,179 @@
+---@meta
+---@class Barotrauma.CharacterParams.AIParams : Barotrauma.CharacterParams.SubParam
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*CharacterParams*TargetParams)|(Barotrauma.CharacterParams.TargetParams[])
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CombatStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sight System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Hearing System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPerceptionDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressionHurt System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressionGreed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FleeHealthThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttackWhenProvoked System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidGunfire System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinFleeTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressiveBoarding System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EnforceAggressiveBehaviorForMissions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetOuterWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomAttack System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanOpenDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsePathFindingToGetInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KeepDoorsClosed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvoidAbyss System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StayInAbyss System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PatrolFlooded System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PatrolDry System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartAggression System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxAggression System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressionCumulation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallTargetingMethod Barotrauma.WallTargetingMethod
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayDeadProbability System.Single
+---`Getter Public Instance`
+---@field Targets (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['CharacterParams']['AIParams'] = {}
+
+---`Method Private Instance`
+---@param targetElement Barotrauma.ContentXElement
+---@param target Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryAddTarget = function(targetElement, target) end
+
+---`Method Private Instance`
+---@param targetElement Barotrauma.ContentXElement
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['AIParams'].AddTarget = function(targetElement) end
+
+---`Method Public Instance`
+---@param targetParams Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryAddEmptyTarget = function(targetParams) end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String, state:Barotrauma.AIState, priority:System.Single, targetParams:Barotrauma.TargetParams-ref):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@param state Barotrauma.AIState
+---@param priority System.Single
+---@param targetParams Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryAddNewTarget = function(tag, state, priority, targetParams) end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].HasTag = function(tag) end
+
+---`Method Public Instance`
+---@param target Barotrauma.CharacterParams.TargetParams
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].RemoveTarget = function(target) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*CharacterParams*TargetParams*1System*Boolean)|(fun(arg:Barotrauma.CharacterParams.TargetParams):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['CharacterParams']['AIParams'].GetMatchingTargets = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier):((System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams)))
+---@param target Barotrauma.Character
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['CharacterParams']['AIParams'].GetTargets = function(target) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier):(Barotrauma.CharacterParams.TargetParams)
+---@param target Barotrauma.Character
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['AIParams'].GetHighestPriorityTarget = function(target) end
+
+---`Method Private Static`
+---@param targetParams (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['AIParams'].GetHighestPriorityTarget = function(targetParams) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier, targetParams:System.Collections.Generic.IEnumerable):(System.Boolean)
+---@param target Barotrauma.Character
+---@param targetParams System.Collections.Generic.IEnumerable
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryGetTargets = function(target, targetParams) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier, targetParams:Barotrauma.TargetParams-ref):(System.Boolean)
+---@overload fun(target:Barotrauma.Character, targetParams:Barotrauma.TargetParams-ref):(System.Boolean)
+---@param tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param target Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryGetHighestPriorityTarget = function(tags, target) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.AIParams
+_G['CharacterParams']['AIParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.AIParams
+_G['CharacterParams']['AIParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/client/_00007FFD97DB81C0.lua b/Meta/Types/client/_00007FFD97DB81C0.lua
new file mode 100644
index 0000000..1a3c8ea
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB81C0.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class Barotrauma.CharacterParams.HealthParams : Barotrauma.CharacterParams.SubParam
+---`Field Private Instance`
+---@field _immunityIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Vitality System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DoesBleed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHealthWindow System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BleedingReduction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BurnReduction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConstantHealthRegeneration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthRegenerationWhenEating System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StunImmunity System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoisonImmunity System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoisonVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EmpVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyMovementPenalties System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DieFromBeheading System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSeveringLegs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ApplyAfflictionColors System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Immunities System.String
+---`Getter Public Instance`
+---@field ImmunityIdentifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterParams']['HealthParams'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.HealthParams
+_G['CharacterParams']['HealthParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.HealthParams
+_G['CharacterParams']['HealthParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/client/_00007FFD97DB8488.lua b/Meta/Types/client/_00007FFD97DB8488.lua
new file mode 100644
index 0000000..cb00c27
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB8488.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.CharacterParams.InventoryParams : Barotrauma.CharacterParams.SubParam
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Slots System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccessibleWhenAlive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Commonness System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Items (System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams*InventoryItem)|(Barotrauma.CharacterParams.InventoryParams.InventoryItem[])
+_G['CharacterParams']['InventoryParams'] = {}
+
+---`Method Public Instance`
+---@param identifier? System.String
+_G['CharacterParams']['InventoryParams'].AddItem = function(identifier) end
+
+---`Method Public Instance`
+---@param item Barotrauma.CharacterParams.InventoryParams.InventoryItem
+---@return System.Boolean
+_G['CharacterParams']['InventoryParams'].RemoveItem = function(item) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.InventoryParams
+_G['CharacterParams']['InventoryParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.InventoryParams
+_G['CharacterParams']['InventoryParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/client/_00007FFD97DB8930.lua b/Meta/Types/client/_00007FFD97DB8930.lua
new file mode 100644
index 0000000..f2affa3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB8930.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.CharacterParams.ParticleParams : Barotrauma.CharacterParams.SubParam
+---`Field Private Instance`
+---@field name System.String
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Particle System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngleMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngleMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EmitInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticlesPerSecond System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticleAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HighQualityCollisionDetection System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CopyEntityAngle System.Boolean
+_G['CharacterParams']['ParticleParams'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.ParticleParams
+_G['CharacterParams']['ParticleParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.ParticleParams
+_G['CharacterParams']['ParticleParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/client/_00007FFD97DB8D88.lua b/Meta/Types/client/_00007FFD97DB8D88.lua
new file mode 100644
index 0000000..519d13f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB8D88.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.CharacterParams.SoundParams : Barotrauma.CharacterParams.SubParam
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field File System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field State Barotrauma.CharacterSound.SoundType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Volume System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['CharacterParams']['SoundParams'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SoundParams
+_G['CharacterParams']['SoundParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SoundParams
+_G['CharacterParams']['SoundParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/client/_00007FFD97DB97C8.lua b/Meta/Types/client/_00007FFD97DB97C8.lua
new file mode 100644
index 0000000..0893d9b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB97C8.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.AIState : System.Enum
+---`Field Public Static`
+---@field Idle Barotrauma.AIState
+---`Field Public Static`
+---@field Attack Barotrauma.AIState
+---`Field Public Static`
+---@field Escape Barotrauma.AIState
+---`Field Public Static`
+---@field Eat Barotrauma.AIState
+---`Field Public Static`
+---@field Flee Barotrauma.AIState
+---`Field Public Static`
+---@field Avoid Barotrauma.AIState
+---`Field Public Static`
+---@field Aggressive Barotrauma.AIState
+---`Field Public Static`
+---@field PassiveAggressive Barotrauma.AIState
+---`Field Public Static`
+---@field Protect Barotrauma.AIState
+---`Field Public Static`
+---@field Observe Barotrauma.AIState
+---`Field Public Static`
+---@field Freeze Barotrauma.AIState
+---`Field Public Static`
+---@field Follow Barotrauma.AIState
+---`Field Public Static`
+---@field FleeTo Barotrauma.AIState
+---`Field Public Static`
+---@field Patrol Barotrauma.AIState
+---`Field Public Static`
+---@field PlayDead Barotrauma.AIState
+---`Field Public Static`
+---@field HideTo Barotrauma.AIState
+---`Field Public Static`
+---@field Hiding Barotrauma.AIState
+_G['AIState'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DB9918.lua b/Meta/Types/client/_00007FFD97DB9918.lua
new file mode 100644
index 0000000..806ac39
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB9918.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.AttackPattern : System.Enum
+---`Field Public Static`
+---@field Straight Barotrauma.AttackPattern
+---`Field Public Static`
+---@field Sweep Barotrauma.AttackPattern
+---`Field Public Static`
+---@field Circle Barotrauma.AttackPattern
+_G['AttackPattern'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DB9A90.lua b/Meta/Types/client/_00007FFD97DB9A90.lua
new file mode 100644
index 0000000..4d6b9c5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB9A90.lua
@@ -0,0 +1,125 @@
+---@meta
+---@class Barotrauma.CharacterParams.TargetParams : Barotrauma.CharacterParams.SubParam
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tag Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field State Barotrauma.AIState
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Priority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReactDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttackDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Timer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreContained System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreTargetInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreTargetOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreIfNotInSameSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreIncapacitated System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Threshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ThresholdMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ThresholdMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PerceptionDistanceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxPerceptionDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttackPattern Barotrauma.AttackPattern
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PrioritizeSubCenter System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SweepDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SweepStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SweepSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleStartDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreTargetSize System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleRotationSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DynamicCircleRotationSpeed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleRandomRotationFactor System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleStrikeDistanceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleMaxRandomOffset System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Conditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+_G['CharacterParams']['TargetParams'] = {}
+
+---`Method Public Static`
+---@overload fun(character:Barotrauma.CharacterParams, tag:Barotrauma.Identifier, state:Barotrauma.AIState, priority:System.Single):(Barotrauma.ContentXElement)
+---@param character Barotrauma.CharacterParams
+---@param tag System.String
+---@param state Barotrauma.AIState
+---@param priority System.Single
+---@return Barotrauma.ContentXElement
+_G['CharacterParams']['TargetParams'].CreateNewElement = function(character, tag, state, priority) end
+
+---`Constructor Public Instance`
+---@overload fun(tag:System.String, state:Barotrauma.AIState, priority:System.Single, character:Barotrauma.CharacterParams):Barotrauma.CharacterParams.TargetParams
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['TargetParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@overload fun(tag:System.String, state:Barotrauma.AIState, priority:System.Single, character:Barotrauma.CharacterParams):Barotrauma.CharacterParams.TargetParams
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['TargetParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/client/_00007FFD97DB9E20.lua b/Meta/Types/client/_00007FFD97DB9E20.lua
new file mode 100644
index 0000000..39657b2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DB9E20.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.CreatureMetrics : System.Object
+---`Field Private Static`
+---@field vanillaCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterFile)|(fun():(Barotrauma.CharacterFile))
+---`Field Private Static`
+---@field path System.String
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field RecentlyEncountered (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Encountered (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Unlocked (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Killed (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field IsInitialized System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field UnlockAll System.Boolean
+_G['CreatureMetrics'] = {}
+
+---`Method Public Static`
+_G['CreatureMetrics'].Init = function() end
+
+---`Method Private Static`
+_G['CreatureMetrics'].Load = function() end
+
+---`Method Public Static`
+_G['CreatureMetrics'].Save = function() end
+
+---`Method Public Static`
+---@param species Barotrauma.Identifier
+_G['CreatureMetrics'].RecordKill = function(species) end
+
+---`Method Public Static`
+---@param species Barotrauma.Identifier
+_G['CreatureMetrics'].AddEncounter = function(species) end
+
+---`Method Public Static`
+---@param species Barotrauma.Identifier
+_G['CreatureMetrics'].UnlockInEditor = function(species) end
+
+---`Method Private Static`
+_G['CreatureMetrics'].SyncSets = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.CreatureMetrics
+_G['CreatureMetrics'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.CreatureMetrics
+_G['CreatureMetrics'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DBAE20.lua b/Meta/Types/client/_00007FFD97DBAE20.lua
new file mode 100644
index 0000000..4d4de07
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBAE20.lua
@@ -0,0 +1,394 @@
+---@meta
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior : System.Object
+---`Field Public Instance`
+---@field branchAtlas Barotrauma.Sprite
+---`Field Public Instance`
+---@field decayAtlas Barotrauma.Sprite
+---`Field Public Instance`
+---@field BranchSprites (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*VineTileType*1Barotrauma*Items*Components*VineSprite)|({[Barotrauma.Items.Components.VineTileType]:(Barotrauma.Items.Components.VineSprite)})
+---`Field Public Instance`
+---@field FlowerSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field DamagedFlowerSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field HiddenFlowerSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field LeafSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field DamagedLeafSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field DamageParticles (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Public Instance`
+---@field DeathParticles (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Public Instance`
+---@field debugSearchLines (System.Collections.Generic.List*1System*Tuple*2Microsoft*Xna*Framework*Vector2*2Microsoft*Xna*Framework*Vector2)|(System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field availablePower System.Single
+---`Field Private Instance`
+---@field anger System.Single
+---`Field Public Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ClaimedTargets (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field ClaimedJunctionBoxes (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerTransfer)|(Barotrauma.Items.Components.PowerTransfer[])
+---`Field Public Instance`
+---@field ClaimedBatteries (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerContainer)|(Barotrauma.Items.Components.PowerContainer[])
+---`Field Public Instance`
+---@field IgnoredTargets (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32)|({[Barotrauma.Item]:(System.Int32)})
+---`Field Private Instance`
+---@field tempClaimedTargets (System.Collections.Generic.List*1System*Tuple*2System*UInt16*2System*Int32)|(System.Tuple*1System*UInt16*1System*Int32[])
+---`Field Private Instance`
+---@field flowerVariants System.Int32
+---`Field Private Instance`
+---@field leafVariants System.Int32
+---`Field Public Instance`
+---@field Targets (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior*AITarget)|(Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AITarget[])
+---`Field Public Instance`
+---@field PowerConsumptionTimer System.Single
+---`Field Private Instance`
+---@field defenseCooldown System.Single
+---`Field Private Instance`
+---@field toxinsCooldown System.Single
+---`Field Private Instance`
+---@field fireCheckCooldown System.Single
+---`Field Private Instance`
+---@field selfDamageTimer System.Single
+---`Field Private Instance`
+---@field toxinsTimer System.Single
+---`Field Private Instance`
+---@field toxinsSpawnTimer System.Single
+---`Field Private Instance`
+---@field branchesVulnerableToFire (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|(Barotrauma.MapCreatures.Behavior.BallastFloraBranch[])
+---`Field Public Instance`
+---@field Branches (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|(Barotrauma.MapCreatures.Behavior.BallastFloraBranch[])
+---`Field Private Instance`
+---@field root Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Field Private Instance`
+---@field bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field isDead System.Boolean
+---`Field Public Instance`
+---@field StateMachine Barotrauma.MapCreatures.Behavior.BallastFloraStateMachine
+---`Field Public Instance`
+---@field GrowthWarps System.Int32
+---`Field Private Instance`
+---@field toBeRemoved (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|(Barotrauma.MapCreatures.Behavior.BallastFloraBranch[])
+---`Field Public Static`
+---@field AlwaysShowBallastFloraSprite System.Boolean
+---`Field Private Static`
+---@field _entityList (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior)|(Barotrauma.MapCreatures.Behavior.BallastFloraBehavior[])
+---`Getter Public Static`
+---@field EntityList (System.Collections.Generic.IEnumerable*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior)|(fun():(Barotrauma.MapCreatures.Behavior.BallastFloraBehavior))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseBranchScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseFlowerScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseLeafScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowerProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LeafProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseInflateSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseDeflateSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BreakthroughPoint System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HasBrokenThrough System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Sight System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BranchHealth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RootHealth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthRegenPerBranch System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxBranchHealthRegenDistance System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RootColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumptionMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumptionMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumptionDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerRequirement System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxAnger System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPowerCapacity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttackItemPrefab Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExplosionResistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubmergedWaterResistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BranchDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BurstSound System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvailablePower System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Anger System.Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Parent Barotrauma.Hull
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Prefab Barotrauma.BallastFloraPrefab
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['BallastFloraBehavior'] = {}
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].UpdateFireSources = function() end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@return System.Boolean
+_G['BallastFloraBehavior'].IsInWater = function(branch) end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].SetHull = function(branch) end
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].GenerateRoot = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@return System.Single
+_G['BallastFloraBehavior'].GetGrowthSpeed = function(deltaTime) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param side Barotrauma.Items.Components.TileSide
+---@param result System.Collections.Generic.List
+---@param isRootGrowth? System.Boolean
+---@param forcePosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return System.Boolean
+_G['BallastFloraBehavior'].TryGrowBranch = function(parent, side, result, isRootGrowth, forcePosition) end
+
+---`Method Private Instance`
+---@return System.Int32
+_G['BallastFloraBehavior'].GetDesiredRootGrowthAmount = function() end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param target Barotrauma.Item
+---@return System.Boolean
+_G['BallastFloraBehavior'].BranchContainsTarget = function(branch, target) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Item
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param load? System.Boolean
+_G['BallastFloraBehavior'].ClaimTarget = function(target, branch, load) end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param parent? Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].UpdateConnections = function(branch, parent) end
+
+---`Method Private Instance`
+---@param newBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].OnBranchGrowthSuccess = function(newBranch) end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].CreateBody = function(branch) end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param amount System.Single
+---@param type Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AttackType
+---@param attacker? Barotrauma.Character
+_G['BallastFloraBehavior'].DamageBranch = function(branch, amount, type, attacker) end
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].CheckDisconnectedFromRoot = function() end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].RemoveBranch = function(branch) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['BallastFloraBehavior'].RemoveClaim = function(item) end
+
+---`Method Public Instance`
+_G['BallastFloraBehavior'].Kill = function() end
+
+---`Method Public Instance`
+_G['BallastFloraBehavior'].Remove = function() end
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].BreakThrough = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['BallastFloraBehavior'].CanGrowMore = function() end
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param checkOtherBranches? System.Boolean
+---@return System.Boolean
+_G['BallastFloraBehavior'].CollidesWithWorld = function(rect, checkOtherBranches) end
+
+---`Method Private Static`
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['BallastFloraBehavior'].LineCollides = function(point1, point2) end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+_G['BallastFloraBehavior'].CreateShapnel = function(pos) end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].CreateDamageParticle = function(branch, deltaTime) end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].CreateDeathParticle = function(branch, deltaTime) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['BallastFloraBehavior'].Draw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param header Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.NetworkHeader
+_G['BallastFloraBehavior'].ClientRead = function(msg, header) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].ReadBranch = function(msg) end
+
+---`Method Public Instance`
+_G['BallastFloraBehavior'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+---@return System.Int32
+_G['BallastFloraBehavior'].CreateID = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['BallastFloraBehavior'].GetWorldPosition = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['BallastFloraBehavior'].LoadPrefab = function(element) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['BallastFloraBehavior'].LoadTargets = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['BallastFloraBehavior'].Save = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param idRemap Barotrauma.IdRemap
+_G['BallastFloraBehavior'].LoadSave = function(element, idRemap) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].UpdateDamage = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].UpdateSelfDamage = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].UpdatePowerDrain = function(deltaTime) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'] = function(parent, prefab, offset, firstGrowth) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'].__new = function(parent, prefab, offset, firstGrowth) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'] = function(parent, prefab, offset, firstGrowth) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'].__new = function(parent, prefab, offset, firstGrowth) end
+
diff --git a/Meta/Types/client/_00007FFD97DBB570.lua b/Meta/Types/client/_00007FFD97DBB570.lua
new file mode 100644
index 0000000..43c265b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBB570.lua
@@ -0,0 +1,95 @@
+---@meta
+---@class Barotrauma.Items.Components.VineTile : System.Object
+---`Field Public Instance`
+---@field Sides Barotrauma.Items.Components.TileSide
+---`Field Public Instance`
+---@field BlockedSides Barotrauma.Items.Components.TileSide
+---`Field Public Instance`
+---@field FlowerConfig Barotrauma.Items.Components.FoliageConfig
+---`Field Public Instance`
+---@field LeafConfig Barotrauma.Items.Components.FoliageConfig
+---`Field Public Instance`
+---@field FailedGrowthAttempts System.Int32
+---`Field Public Instance`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field diameter System.Single
+---`Field Public Instance`
+---@field offset Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Type Barotrauma.Items.Components.VineTileType
+---`Field Public Instance`
+---@field AdjacentPositions (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Microsoft*Xna*Framework*Vector2)|({[Barotrauma.Items.Components.TileSide]:(Microsoft.Xna.Framework.Vector2)})
+---`Field Public Instance`
+---@field VineStep System.Single
+---`Field Public Instance`
+---@field FlowerStep System.Single
+---`Field Private Instance`
+---@field growthStep System.Single
+---`Field Public Instance`
+---@field HealthColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field DecayDelay System.Single
+---`Field Private Instance`
+---@field Parent Barotrauma.Items.Components.Growable
+---`Field Public Static`
+---@field Size System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrowthStep System.Single
+_G['Components']['VineTile'] = {}
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Components']['VineTile'].UpdateScale = function(deltaTime) end
+
+---`Method Public Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slotOffset Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['VineTile'].GetWorldPosition = function(planter, slotOffset) end
+
+---`Method Public Instance`
+_G['Components']['VineTile'].UpdateType = function() end
+
+---`Method Public Instance`
+---@param random? System.Random
+---@return Barotrauma.Items.Components.TileSide
+_G['Components']['VineTile'].GetRandomFreeSide = function(random) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['VineTile'].CanGrowMore = function() end
+
+---`Method Public Instance`
+---@param side Barotrauma.Items.Components.TileSide
+---@return System.Boolean
+_G['Components']['VineTile'].IsSideBlocked = function(side) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Components']['VineTile'].CreatePlantRect = function(pos) end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DBB878.lua b/Meta/Types/client/_00007FFD97DBB878.lua
new file mode 100644
index 0000000..1094b85
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBB878.lua
@@ -0,0 +1,89 @@
+---@meta
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBranch : Barotrauma.Items.Components.VineTile
+---`Field Public Instance`
+---@field ParentBallastFlora Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---`Field Public Instance`
+---@field ID System.Int32
+---`Field Public Instance`
+---@field ClaimedItem Barotrauma.Item
+---`Field Public Instance`
+---@field ClaimedItemId System.Int32
+---`Field Public Instance`
+---@field MaxHealth System.Single
+---`Field Private Instance`
+---@field health System.Single
+---`Field Public Instance`
+---@field RemoveTimer System.Single
+---`Field Public Instance`
+---@field SpawningItem System.Boolean
+---`Field Public Instance`
+---@field AttackItem Barotrauma.Item
+---`Field Public Instance`
+---@field IsRoot System.Boolean
+---`Field Public Instance`
+---@field IsRootGrowth System.Boolean
+---`Field Public Instance`
+---@field Removed System.Boolean
+---`Field Public Instance`
+---@field DisconnectedFromRoot System.Boolean
+---`Field Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Field Public Instance`
+---@field Pulse System.Single
+---`Field Private Instance`
+---@field inflate System.Boolean
+---`Field Private Instance`
+---@field pulseDelay System.Single
+---`Field Private Instance`
+---@field parentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Field Public Instance`
+---@field AccumulatedDamage System.Single
+---`Field Public Instance`
+---@field DamageVisualizationTimer System.Single
+---`Field Public Instance`
+---@field ShakeAmount Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Connections (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|({[Barotrauma.Items.Components.TileSide]:(Barotrauma.MapCreatures.Behavior.BallastFloraBranch)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ParentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BranchDepth System.Int32
+_G['BallastFloraBranch'] = {}
+
+---`Method Public Instance`
+_G['BallastFloraBranch'].UpdateHealth = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param inflateSpeed System.Single
+---@param deflateSpeed System.Single
+---@param delay System.Single
+_G['BallastFloraBranch'].UpdatePulse = function(deltaTime, inflateSpeed, deflateSpeed, delay) end
+
+---`Constructor Public Instance`
+---@param parent Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param position Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.Items.Components.VineTileType
+---@param flowerConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param leafConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param rect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBranch'] = function(parent, parentBranch, position, type, flowerConfig, leafConfig, rect) end
+
+---`Constructor Public Instance`
+---@param parent Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param position Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.Items.Components.VineTileType
+---@param flowerConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param leafConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param rect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBranch'].__new = function(parent, parentBranch, position, type, flowerConfig, leafConfig, rect) end
+
diff --git a/Meta/Types/client/_00007FFD97DBBEE8.lua b/Meta/Types/client/_00007FFD97DBBEE8.lua
new file mode 100644
index 0000000..f9273f7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBBEE8.lua
@@ -0,0 +1,111 @@
+---@meta
+---@class Barotrauma.PetBehavior : System.Object
+---`Field Private Instance`
+---@field hunger System.Single
+---`Field Private Instance`
+---@field happiness System.Single
+---`Field Private Instance`
+---@field itemsToProduce (System.Collections.Generic.List*1Barotrauma*PetBehavior*ItemProduction)|(Barotrauma.PetBehavior.ItemProduction[])
+---`Field Private Instance`
+---@field foods (System.Collections.Generic.List*1Barotrauma*PetBehavior*Food)|(Barotrauma.PetBehavior.Food[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hunger System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Happiness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UnhappyThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HappyThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHappiness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideStatusIndicators System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HungryThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHunger System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HappinessDecreaseRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HungerIncreaseRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayCooldown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ToggleOwner System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field UnstunY System.Nullable*1System*Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AIController Barotrauma.EnemyAIController
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Owner Barotrauma.Character
+_G['PetBehavior'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.PetBehavior.StatusIndicatorType
+_G['PetBehavior'].GetCurrentStatusIndicatorType = function() end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@overload fun(character:Barotrauma.Character):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['PetBehavior'].OnEat = function(tag) end
+
+---`Method Private Instance`
+---@param tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['PetBehavior'].OnEat = function(tags) end
+
+---`Method Public Instance`
+---@param player Barotrauma.Character
+_G['PetBehavior'].Play = function(player) end
+
+---`Method Public Instance`
+---@return System.String
+_G['PetBehavior'].GetTagName = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['PetBehavior'].Update = function(deltaTime) end
+
+---`Method Public Static`
+---@param petsElement System.Xml.Linq.XElement
+_G['PetBehavior'].SavePets = function(petsElement) end
+
+---`Method Public Static`
+---@param petsElement System.Xml.Linq.XElement
+_G['PetBehavior'].LoadPets = function(petsElement) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param aiController Barotrauma.EnemyAIController
+---@return Barotrauma.PetBehavior
+_G['PetBehavior'] = function(element, aiController) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param aiController Barotrauma.EnemyAIController
+---@return Barotrauma.PetBehavior
+_G['PetBehavior'].__new = function(element, aiController) end
+
diff --git a/Meta/Types/client/_00007FFD97DBC1C8.lua b/Meta/Types/client/_00007FFD97DBC1C8.lua
new file mode 100644
index 0000000..cd27b66
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBC1C8.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.SwarmBehavior : System.Object
+---`Field Private Instance`
+---@field minDistFromClosest System.Single
+---`Field Private Instance`
+---@field maxDistFromCenter System.Single
+---`Field Private Instance`
+---@field cohesion System.Single
+---`Field Private Instance`
+---@field ai Barotrauma.EnemyAIController
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Members (System.Collections.Generic.List*1Barotrauma*AICharacter)|(Barotrauma.AICharacter[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ActiveMembers (System.Collections.Generic.HashSet*1Barotrauma*AICharacter)|(Barotrauma.AICharacter[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---@field IsEnoughMembers System.Boolean
+_G['SwarmBehavior'] = {}
+
+---`Method Public Static`
+---@param swarm (System.Collections.Generic.IEnumerable*1Barotrauma*AICharacter)|(fun():(Barotrauma.AICharacter))
+_G['SwarmBehavior'].CreateSwarm = function(swarm) end
+
+---`Method Public Instance`
+_G['SwarmBehavior'].Refresh = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['SwarmBehavior'].UpdateSteering = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param ai Barotrauma.EnemyAIController
+---@return Barotrauma.SwarmBehavior
+_G['SwarmBehavior'] = function(element, ai) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param ai Barotrauma.EnemyAIController
+---@return Barotrauma.SwarmBehavior
+_G['SwarmBehavior'].__new = function(element, ai) end
+
diff --git a/Meta/Types/client/_00007FFD97DBC720.lua b/Meta/Types/client/_00007FFD97DBC720.lua
new file mode 100644
index 0000000..b70ea2e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBC720.lua
@@ -0,0 +1,115 @@
+---@meta
+---@class Barotrauma.LatchOntoAI : System.Object
+---`Field Private Instance`
+---@field raycastTimer System.Single
+---`Field Private Instance`
+---@field targetBody FarseerPhysics.Dynamics.Body
+---`Field Private Instance`
+---@field attachSurfaceNormal Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field minDeattachSpeed System.Single
+---`Field Private Instance`
+---@field maxDeattachSpeed System.Single
+---`Field Private Instance`
+---@field maxAttachDuration System.Single
+---`Field Private Instance`
+---@field coolDown System.Single
+---`Field Private Instance`
+---@field damageOnDetach System.Single
+---`Field Private Instance`
+---@field detachStun System.Single
+---`Field Private Instance`
+---@field weld System.Boolean
+---`Field Private Instance`
+---@field deattachCheckTimer System.Single
+---`Field Private Instance`
+---@field _attachPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field attachCooldown System.Single
+---`Field Private Instance`
+---@field attachLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field localAttachPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field attachLimbRotation System.Single
+---`Field Private Instance`
+---@field jointDir System.Single
+---`Field Private Instance`
+---@field latchedDuration System.Single
+---`Field Private Instance`
+---@field freezeWhenLatched System.Boolean
+---`Field Private Static`
+---@field RaycastInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachToSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachToWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachToCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetSubmarine Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetWall Barotrauma.Structure
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetCharacter Barotrauma.Character
+---`Getter Public Instance`
+---@field AttachJoints (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---@field IsAttached System.Boolean
+---`Getter Public Instance`
+---@field IsAttachedToSub System.Boolean
+_G['LatchOntoAI'] = {}
+
+---`Method Public Instance`
+---@overload fun(wall:Barotrauma.Structure, attachPos:Microsoft.Xna.Framework.Vector2, attachSurfaceNormal:Microsoft.Xna.Framework.Vector2)
+---@overload fun(target:Barotrauma.Character)
+---@param levelWall Voronoi2.VoronoiCell
+_G['LatchOntoAI'].SetAttachTarget = function(levelWall) end
+
+---`Method Public Instance`
+---@param enemyAI Barotrauma.EnemyAIController
+---@param deltaTime System.Single
+_G['LatchOntoAI'].Update = function(enemyAI, deltaTime) end
+
+---`Method Public Instance`
+---@param attachPos Microsoft.Xna.Framework.Vector2
+---@param forceAttachSurfaceNormal? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param forceColliderSimPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['LatchOntoAI'].AttachToBody = function(attachPos, forceAttachSurfaceNormal, forceColliderSimPosition) end
+
+---`Method Public Instance`
+---@param reset System.Boolean
+---@param cooldown? System.Single
+_G['LatchOntoAI'].DeattachFromBody = function(reset, cooldown) end
+
+---`Method Private Instance`
+_G['LatchOntoAI'].Reset = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param causeOfDeath Barotrauma.CauseOfDeath
+_G['LatchOntoAI'].OnCharacterDeath = function(character, causeOfDeath) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param enemyAI Barotrauma.EnemyAIController
+---@return Barotrauma.LatchOntoAI
+_G['LatchOntoAI'] = function(element, enemyAI) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param enemyAI Barotrauma.EnemyAIController
+---@return Barotrauma.LatchOntoAI
+_G['LatchOntoAI'].__new = function(element, enemyAI) end
+
diff --git a/Meta/Types/client/_00007FFD97DBD360.lua b/Meta/Types/client/_00007FFD97DBD360.lua
new file mode 100644
index 0000000..7f50552
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBD360.lua
@@ -0,0 +1,337 @@
+---@meta
+---@class Barotrauma.Order : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.OrderPrefab
+---`Field Public Instance`
+---@field Option Barotrauma.Identifier
+---`Field Public Instance`
+---@field ManualPriority System.Int32
+---`Field Public Instance`
+---@field Type Barotrauma.Order.OrderType
+---`Field Public Instance`
+---@field Objective Barotrauma.AIObjective
+---`Field Public Instance`
+---@field TargetEntity Barotrauma.Entity
+---`Field Public Instance`
+---@field TargetItemComponent Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field ConnectedController Barotrauma.Items.Components.Controller
+---`Field Public Instance`
+---@field OrderGiver Barotrauma.Character
+---`Field Public Instance`
+---@field TargetPosition Barotrauma.OrderTarget
+---`Field Private Instance`
+---@field targetSpatialEntity Barotrauma.ISpatialEntity
+---`Field Public Instance`
+---@field TargetType Barotrauma.Order.OrderTargetType
+---`Field Public Instance`
+---@field WallSectionIndex System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field UseController System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentOrder System.Boolean
+---`Getter Public Instance`
+---@field IsDismissal System.Boolean
+---`Getter Public Instance`
+---@field TargetSpatialEntity Barotrauma.ISpatialEntity
+---`Getter Public Instance`
+---@field TargetHull Barotrauma.Hull
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field ContextualName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field ItemComponentType System.Type
+---`Getter Public Instance`
+---@field CanTypeBeSubclass System.Boolean
+---`Getter Public Instance`
+---@field ControllerTags System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field TargetItems System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field RequireItems System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field Options System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field HiddenOptions System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field AllOptions System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field SymbolSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field TargetAllCharacters System.Boolean
+---`Getter Public Instance`
+---@field AppropriateJobs System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field FadeOutTime System.Single
+---`Getter Public Instance`
+---@field MustSetTarget System.Boolean
+---`Getter Public Instance`
+---@field AppropriateSkill Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Category System.Nullable*1Barotrauma*OrderCategory
+---`Getter Public Instance`
+---@field MustManuallyAssign System.Boolean
+---`Getter Public Instance`
+---@field IsIgnoreOrder System.Boolean
+---`Getter Public Instance`
+---@field IsDeconstructOrder System.Boolean
+---`Getter Public Instance`
+---@field DrawIconWhenContained System.Boolean
+---`Getter Public Instance`
+---@field Hidden System.Boolean
+---`Getter Public Instance`
+---@field IgnoreAtOutpost System.Boolean
+---`Getter Public Instance`
+---@field IsReport System.Boolean
+---`Getter Public Instance`
+---@field AutoDismiss System.Boolean
+---`Getter Public Instance`
+---@field AssignmentPriority System.Int32
+---`Getter Public Instance`
+---@field ColoredWhenControllingGiver System.Boolean
+---`Getter Public Instance`
+---@field DisplayGiverInTooltip System.Boolean
+_G['Order'] = {}
+
+---`Method Public Instance`
+---@param option Barotrauma.Identifier
+---@return Barotrauma.Order
+_G['Order'].WithOption = function(option) end
+
+---`Method Public Instance`
+---@param newPriority System.Int32
+---@return Barotrauma.Order
+_G['Order'].WithManualPriority = function(newPriority) end
+
+---`Method Public Instance`
+---@param orderGiver Barotrauma.Character
+---@return Barotrauma.Order
+_G['Order'].WithOrderGiver = function(orderGiver) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@return Barotrauma.Order
+_G['Order'].WithObjective = function(objective) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return Barotrauma.Order
+_G['Order'].WithTargetEntity = function(entity) end
+
+---`Method Public Instance`
+---@param spatialEntity Barotrauma.ISpatialEntity
+---@return Barotrauma.Order
+_G['Order'].WithTargetSpatialEntity = function(spatialEntity) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param component? Barotrauma.Items.Components.ItemComponent
+---@return Barotrauma.Order
+_G['Order'].WithItemComponent = function(item, component) end
+
+---`Method Public Instance`
+---@param wall Barotrauma.Structure
+---@param sectionIndex System.Nullable*1System*Int32
+---@return Barotrauma.Order
+_G['Order'].WithWallSection = function(wall, sectionIndex) end
+
+---`Method Public Instance`
+---@param type Barotrauma.Order.OrderType
+---@return Barotrauma.Order
+_G['Order'].WithType = function(type) end
+
+---`Method Public Instance`
+---@param targetPosition Barotrauma.OrderTarget
+---@return Barotrauma.Order
+_G['Order'].WithTargetPosition = function(targetPosition) end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['Order'].Clone = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['Order'].GetDismissal = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Order'].HasAppropriateJob = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Order'].HasPreferredJob = function(character) end
+
+---`Method Public Instance`
+---@param targetCharacterName System.String
+---@param targetRoomName System.String
+---@param givingOrderToSelf System.Boolean
+---@param orderOption? Barotrauma.Identifier
+---@param isNewOrder? System.Boolean
+---@return System.String
+_G['Order'].GetChatMessage = function(targetCharacterName, targetRoomName, givingOrderToSelf, orderOption, isNewOrder) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Order'].GetTargetItemComponent = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param firstMatchingComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return System.Boolean
+_G['Order'].TryGetTargetItemComponent = function(item, firstMatchingComponent) end
+
+---`Method Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, mustBelongToPlayerSub:System.Boolean, requiredTeam?:System.Nullable*1Barotrauma*CharacterTeamType, interactableFor?:Barotrauma.Character):((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))
+---@param mustBelongToPlayerSub System.Boolean
+---@param interactableFor? Barotrauma.Character
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Order'].GetMatchingItems = function(mustBelongToPlayerSub, interactableFor) end
+
+---`Method Public Instance`
+---@overload fun(id:System.String):(Barotrauma.LocalizedString)
+---@overload fun(id:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@param index System.Int32
+---@return Barotrauma.LocalizedString
+_G['Order'].GetOptionName = function(index) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@return Barotrauma.Identifier
+_G['Order'].GetDismissOrderOption = function(order) end
+
+---`Method Public Instance`
+---@overload fun(orderIdentifier:Barotrauma.Identifier, orderOption:Barotrauma.Identifier):(System.Boolean)
+---@param order Barotrauma.Order
+---@return System.Boolean
+_G['Order'].MatchesOrder = function(order) end
+
+---`Method Public Instance`
+---@param dismissOrderOption Barotrauma.Identifier
+---@return System.Boolean
+_G['Order'].MatchesDismissedOrder = function(dismissOrderOption) end
+
+---`Method Public Instance`
+---@param option? Barotrauma.Identifier
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['Order'].GetTargetItems = function(option) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Order'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'] = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'].__new = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
+---`Constructor Private Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'] = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
+---`Constructor Private Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'].__new = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
diff --git a/Meta/Types/client/_00007FFD97DBD548.lua b/Meta/Types/client/_00007FFD97DBD548.lua
new file mode 100644
index 0000000..54f79af
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBD548.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.OrderTarget : System.Object
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Hull Barotrauma.Hull
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+_G['OrderTarget'] = {}
+
+---`Constructor Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param creatingFromExistingData? System.Boolean
+---@return Barotrauma.OrderTarget
+_G['OrderTarget'] = function(position, hull, creatingFromExistingData) end
+
+---`Constructor Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param creatingFromExistingData? System.Boolean
+---@return Barotrauma.OrderTarget
+_G['OrderTarget'].__new = function(position, hull, creatingFromExistingData) end
+
diff --git a/Meta/Types/client/_00007FFD97DBDD20.lua b/Meta/Types/client/_00007FFD97DBDD20.lua
new file mode 100644
index 0000000..acdf77f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBDD20.lua
@@ -0,0 +1,213 @@
+---@meta
+---@class Barotrauma.AIController : System.Object
+---`Field Public Instance`
+---@field Enabled System.Boolean
+---`Field Public Instance`
+---@field Character Barotrauma.Character
+---`Field NonPublic Instance`
+---@field _lastAiTarget Barotrauma.AITarget
+---`Field NonPublic Instance`
+---@field _previousAiTarget Barotrauma.AITarget
+---`Field NonPublic Instance`
+---@field _selectedAiTarget Barotrauma.AITarget
+---`Field NonPublic Instance`
+---@field steeringManager Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field visibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---`Field Private Instance`
+---@field hullVisibilityTimer System.Single
+---`Field NonPublic Instance`
+---@field colliderWidth System.Single
+---`Field NonPublic Instance`
+---@field minGapSize System.Single
+---`Field NonPublic Instance`
+---@field colliderLength System.Single
+---`Field NonPublic Instance`
+---@field avoidLookAheadDistance System.Single
+---`Field Private Instance`
+---@field unequippedItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field escapeTargetSeekInterval System.Single
+---`Field Private Instance`
+---@field escapeTimer System.Single
+---`Field NonPublic Instance`
+---@field allGapsSearched System.Boolean
+---`Field NonPublic Instance`
+---@field unreachableGaps (System.Collections.Generic.HashSet*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Private Static`
+---@field hullVisibilityInterval System.Single
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SelectedAiTarget Barotrauma.AITarget
+---`Getter Public Instance`
+---@field SteeringManager Barotrauma.SteeringManager
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Steering Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Velocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance Virtual`
+---@field CanFlip System.Boolean
+---`Getter Public Instance Virtual`
+---@field IsMentallyUnstable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VisibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---`Getter Public Instance`
+---@field IsCurrentPathNullOrUnreachable System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentPathUnreachable System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentPathFinished System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsSteeringThroughGap System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsTryingToSteerThroughGap System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EscapeTarget Barotrauma.Gap
+_G['AIController'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['AIController'].DebugDraw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param requireNonDirty? System.Boolean
+---@param requireUnfinished? System.Boolean
+---@param nodePredicate? (System.Func*1Barotrauma*WayPoint*1System*Boolean)|(fun(arg:Barotrauma.WayPoint):(System.Boolean))
+---@return System.Boolean
+_G['AIController'].HasValidPath = function(requireNonDirty, requireUnfinished, nodePredicate) end
+
+---`Method Public Instance Virtual`
+---@param healer Barotrauma.Character
+---@param healAmount System.Single
+_G['AIController'].OnHealed = function(healer, healAmount) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['AIController'].OnAttacked = function(attacker, attackResult) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.AITarget
+_G['AIController'].SelectTarget = function(target) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIController'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIController'].Reset = function() end
+
+---`Method NonPublic Instance`
+_G['AIController'].ResetAITarget = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+_G['AIController'].FaceTarget = function(target) end
+
+---`Method Public Instance Virtual`
+---@overload fun(wall:Barotrauma.Structure, section:Barotrauma.WallSection, targetWorldPos:Microsoft.Xna.Framework.Vector2, deltaTime:System.Single):(System.Boolean)
+---@param gap Barotrauma.Gap
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param maxDistance? System.Single
+---@return System.Boolean
+_G['AIController'].SteerThroughGap = function(gap, targetWorldPos, deltaTime, maxDistance) end
+
+---`Method Public Instance`
+---@param wall Barotrauma.Structure
+---@param sectionIndex System.Int32
+---@param requiredHoleCount System.Int32
+---@return System.Boolean
+_G['AIController'].CanPassThroughHole = function(wall, sectionIndex, requiredHoleCount) end
+
+---`Method NonPublic Instance`
+---@param wall Barotrauma.Structure
+---@return System.Boolean
+_G['AIController'].IsWallDisabled = function(wall) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param targetInventory Barotrauma.CharacterInventory
+---@param equip System.Boolean
+---@param wear? System.Boolean
+---@param dropOtherIfCannotMove? System.Boolean
+---@param allowSwapping? System.Boolean
+---@param storeUnequipped? System.Boolean
+---@param targetTags? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['AIController'].TakeItem = function(item, targetInventory, equip, wear, dropOtherIfCannotMove, allowSwapping, storeUnequipped, targetTags) end
+
+---`Method Public Instance`
+---@param parentItem Barotrauma.Item
+---@param avoidDroppingInSea? System.Boolean
+_G['AIController'].UnequipEmptyItems = function(parentItem, avoidDroppingInSea) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param parentItem Barotrauma.Item
+---@param avoidDroppingInSea? System.Boolean
+_G['AIController'].UnequipEmptyItems = function(character, parentItem, avoidDroppingInSea) end
+
+---`Method Public Instance`
+---@param parentItem Barotrauma.Item
+---@param predicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param avoidDroppingInSea? System.Boolean
+---@param unequipMax? System.Nullable*1System*Int32
+_G['AIController'].UnequipContainedItems = function(parentItem, predicate, avoidDroppingInSea, unequipMax) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param parentItem Barotrauma.Item
+---@param predicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param avoidDroppingInSea? System.Boolean
+---@param unequipMax? System.Nullable*1System*Int32
+_G['AIController'].UnequipContainedItems = function(character, parentItem, predicate, avoidDroppingInSea, unequipMax) end
+
+---`Method Public Instance`
+_G['AIController'].ReequipUnequipped = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['AIController'].Escape = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+---@param canAttackDoors System.Boolean
+---@return System.Boolean
+_G['AIController'].UpdateEscape = function(deltaTime, canAttackDoors) end
+
+---`Method Public Instance`
+_G['AIController'].ResetEscape = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param from Barotrauma.AIState
+---@param to Barotrauma.AIState
+_G['AIController'].OnStateChanged = function(from, to) end
+
+---`Method NonPublic Instance Virtual`
+---@param previousTarget Barotrauma.AITarget
+---@param newTarget Barotrauma.AITarget
+_G['AIController'].OnTargetChanged = function(previousTarget, newTarget) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@return Barotrauma.AIController
+_G['AIController'] = function(c) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@return Barotrauma.AIController
+_G['AIController'].__new = function(c) end
+
diff --git a/Meta/Types/client/_00007FFD97DBF330.lua b/Meta/Types/client/_00007FFD97DBF330.lua
new file mode 100644
index 0000000..01ccef3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DBF330.lua
@@ -0,0 +1,588 @@
+---@meta
+---@class Barotrauma.EnemyAIController : Barotrauma.AIController
+---`Field Private Instance`
+---@field previousTargetingRestrictions Barotrauma.EnemyTargetingRestrictions
+---`Field Private Instance`
+---@field _state Barotrauma.AIState
+---`Field Public Instance`
+---@field TargetOutposts System.Boolean
+---`Field Private Instance`
+---@field updateTargetsInterval System.Single
+---`Field Private Instance`
+---@field updateMemoriesInverval System.Single
+---`Field Private Instance`
+---@field attackLimbSelectionInterval System.Single
+---`Field Private Instance`
+---@field outsideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field insideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field updateTargetsTimer System.Single
+---`Field Private Instance`
+---@field updateMemoriesTimer System.Single
+---`Field Private Instance`
+---@field attackLimbSelectionTimer System.Single
+---`Field Private Instance`
+---@field _attackLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field _previousAttackLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field lastAttackUpdateTime System.Double
+---`Field Private Instance`
+---@field _activeAttack Barotrauma.Attack
+---`Field Private Instance`
+---@field currentTargetMemory Barotrauma.AITargetMemory
+---`Field Private Instance`
+---@field targetValue System.Single
+---`Field Private Instance`
+---@field currentTargetingParams Barotrauma.CharacterParams.TargetParams
+---`Field Private Instance`
+---@field targetMemories (System.Collections.Generic.Dictionary*1Barotrauma*AITarget*1Barotrauma*AITargetMemory)|({[Barotrauma.AITarget]:(Barotrauma.AITargetMemory)})
+---`Field Private Instance`
+---@field requiredHoleCount System.Int32
+---`Field Private Instance`
+---@field canAttackWalls System.Boolean
+---`Field Private Instance`
+---@field canAttackDoors System.Boolean
+---`Field Private Instance`
+---@field canAttackItems System.Boolean
+---`Field Private Instance`
+---@field canAttackCharacters System.Boolean
+---`Field Private Instance`
+---@field priorityFearIncreasement System.Single
+---`Field Private Instance`
+---@field memoryFadeTime System.Single
+---`Field Private Instance`
+---@field avoidTimer System.Single
+---`Field Private Instance`
+---@field observeTimer System.Single
+---`Field Private Instance`
+---@field sweepTimer System.Single
+---`Field Private Instance`
+---@field circleRotation System.Single
+---`Field Private Instance`
+---@field circleDir System.Single
+---`Field Private Instance`
+---@field inverseDir System.Boolean
+---`Field Private Instance`
+---@field breakCircling System.Boolean
+---`Field Private Instance`
+---@field circleRotationSpeed System.Single
+---`Field Private Instance`
+---@field circleOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field circleFallbackDistance System.Single
+---`Field Private Instance`
+---@field strikeTimer System.Single
+---`Field Private Instance`
+---@field aggressionIntensity System.Single
+---`Field Private Instance`
+---@field CirclePhase Barotrauma.CirclePhase
+---`Field Private Instance`
+---@field currentAttackIntensity System.Single
+---`Field Private Instance`
+---@field playDeadTimer System.Single
+---`Field Private Instance`
+---@field disableTailCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field myBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field reverse System.Boolean
+---`Field Private Instance`
+---@field maxSteeringBuffer System.Single
+---`Field Private Instance`
+---@field minSteeringBuffer System.Single
+---`Field Private Instance`
+---@field steeringBufferIncreaseSpeed System.Single
+---`Field Private Instance`
+---@field steeringBuffer System.Single
+---`Field Private Instance`
+---@field _aiParams Barotrauma.CharacterParams.AIParams
+---`Field Private Instance`
+---@field _targetingTags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field movementMargin System.Single
+---`Field Private Instance`
+---@field targetHulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field hullWeights (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Private Instance`
+---@field patrolTarget Barotrauma.Hull
+---`Field Private Instance`
+---@field newPatrolTargetTimer System.Single
+---`Field Private Instance`
+---@field patrolTimerMargin System.Single
+---`Field Private Instance`
+---@field newPatrolTargetIntervalMin System.Single
+---`Field Private Instance`
+---@field newPatrolTargetIntervalMax System.Single
+---`Field Private Instance`
+---@field searchingNewHull System.Boolean
+---`Field Private Instance`
+---@field attackWorldPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field attackSimPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field reachTimer System.Single
+---`Field Private Instance`
+---@field attackLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field weights (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Private Instance`
+---@field aimTimer System.Single
+---`Field Private Instance`
+---@field visibilityCheckTimer System.Single
+---`Field Private Instance`
+---@field canSeeTarget System.Boolean
+---`Field Private Instance`
+---@field sinTime System.Single
+---`Field Private Instance`
+---@field blockCheckInterval System.Single
+---`Field Private Instance`
+---@field blockCheckTimer System.Single
+---`Field Private Instance`
+---@field isBlocked System.Boolean
+---`Field Private Instance`
+---@field attackVector System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field wallTarget Barotrauma.EnemyAIController.WallTarget
+---`Field Private Instance`
+---@field wallHits (System.Collections.Generic.List*1System*ValueTuple*2FarseerPhysics*Dynamics*Body*2System*Int32*2Microsoft*Xna*Framework*Vector2)|(System.ValueTuple*1FarseerPhysics*Dynamics*Body*1System*Int32*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field removals (System.Collections.Generic.List*1Barotrauma*AITarget)|(Barotrauma.AITarget[])
+---`Field Private Instance`
+---@field targetIgnoreTime System.Single
+---`Field Private Instance`
+---@field targetIgnoreTimer System.Single
+---`Field Private Instance`
+---@field ignoredTargets (System.Collections.Generic.HashSet*1Barotrauma*AITarget)|(Barotrauma.AITarget[])
+---`Field Private Instance`
+---@field stateResetCooldown System.Single
+---`Field Private Instance`
+---@field stateResetTimer System.Single
+---`Field Private Instance`
+---@field isStateChanged System.Boolean
+---`Field Private Instance`
+---@field activeTriggers (System.Collections.Generic.Dictionary*1Barotrauma*StatusEffect*AITrigger*1Barotrauma*CharacterParams*TargetParams)|({[Barotrauma.StatusEffect.AITrigger]:(Barotrauma.CharacterParams.TargetParams)})
+---`Field Private Instance`
+---@field inactiveTriggers (System.Collections.Generic.HashSet*1Barotrauma*StatusEffect*AITrigger)|(Barotrauma.StatusEffect.AITrigger[])
+---`Field Private Instance`
+---@field modifiedParams (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*IEnumerable*2Barotrauma*CharacterParams*TargetParams)|({[Barotrauma.Identifier]:((System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams)))})
+---`Field Private Instance`
+---@field tempParams (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*CharacterParams*TargetParams)|({[Barotrauma.Identifier]:(Barotrauma.CharacterParams.TargetParams)})
+---`Field Private Instance`
+---@field tempParamsList (System.Collections.Generic.List*1Barotrauma*CharacterParams*TargetParams)|(Barotrauma.CharacterParams.TargetParams[])
+---`Field Private Instance`
+---@field returnDir Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field returnTimer System.Single
+---`Field Private Instance`
+---@field targetLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Public Static`
+---@field DisableEnemyAI System.Boolean
+---`Field Public Static`
+---@field TargetingRestrictions Barotrauma.EnemyTargetingRestrictions
+---`Field Private Static`
+---@field minPriority System.Single
+---`Field Private Static`
+---@field PlayDeadCoolDown System.Single
+---`Field Private Static`
+---@field reachTimeOut System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field State Barotrauma.AIState
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PreviousState Barotrauma.AIState
+---`Getter Private Instance`
+---@field PathSteering Barotrauma.IndoorsSteeringManager
+---`Getter Private Instance`
+---@field IsAttackRunning System.Boolean
+---`Getter Private Instance`
+---@field IsCoolDownRunning System.Boolean
+---`Getter Public Instance`
+---@field CombatStrength System.Single
+---`Getter Private Instance`
+---@field Sight System.Single
+---`Getter Private Instance`
+---@field Hearing System.Single
+---`Getter Private Instance`
+---@field FleeHealthThreshold System.Single
+---`Getter Private Instance`
+---@field IsAggressiveBoarder System.Boolean
+---`Getter Private Instance`
+---@field FishAnimController Barotrauma.FishAnimController
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttackLimb Barotrauma.Limb
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ActiveAttack Barotrauma.Attack
+---`Getter Public Instance`
+---@field CurrentTargetMemory Barotrauma.AITargetMemory
+---`Getter Public Instance`
+---@field CanAttackDoors System.Boolean
+---`Getter Public Instance`
+---@field PriorityFearIncrement System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LatchOntoAI Barotrauma.LatchOntoAI
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwarmBehavior Barotrauma.SwarmBehavior
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PetBehavior Barotrauma.PetBehavior
+---`Getter Public Instance`
+---@field CurrentTargetingParams Barotrauma.CharacterParams.TargetParams
+---`Getter Public Instance`
+---@field AttackHumans System.Boolean
+---`Getter Public Instance`
+---@field AttackRooms System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance Virtual`
+---@field CanFlip System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnattackableSubmarines (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Getter Private Instance`
+---@field IsBeingChased System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Reverse System.Boolean
+---`Getter Public Instance`
+---@field AIParams Barotrauma.CharacterParams.AIParams
+---`Getter Private Instance`
+---@field IsLatchedOnSub System.Boolean
+_G['EnemyAIController'] = {}
+
+---`Method Private Instance`
+---@overload fun(tag:Barotrauma.Identifier, state:Barotrauma.AIState, priority?:System.Nullable*1System*Single, onlyExisting?:System.Boolean, ignoreAttacksIfNotInSameSub?:System.Boolean)
+---@param targetParams Barotrauma.CharacterParams.TargetParams
+---@param state Barotrauma.AIState
+---@param priority? System.Nullable*1System*Single
+_G['EnemyAIController'].ChangeParams = function(targetParams, state, priority) end
+
+---`Method Private Instance`
+---@overload fun(tag:Barotrauma.Identifier, state:Barotrauma.AIState, priority?:System.Nullable*1System*Single)
+---@param target Barotrauma.Character
+---@param state Barotrauma.AIState
+---@param priority? System.Nullable*1System*Single
+_G['EnemyAIController'].ChangeTargetState = function(target, state, priority) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].ResetOriginalState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param previousTarget Barotrauma.AITarget
+---@param newTarget Barotrauma.AITarget
+_G['EnemyAIController'].OnTargetChanged = function(previousTarget, newTarget) end
+
+---`Method NonPublic Instance Virtual`
+---@param from Barotrauma.AIState
+---@param to Barotrauma.AIState
+_G['EnemyAIController'].OnStateChanged = function(from, to) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].SetStateResetTimer = function() end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@return System.Single
+_G['EnemyAIController'].GetPerceivingRange = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@param dist? System.Single
+---@param distSquared? System.Single
+---@param checkVisibility? System.Boolean
+---@return System.Boolean
+_G['EnemyAIController'].CanPerceive = function(target, dist, distSquared, checkVisibility) end
+
+---`Method Public Instance`
+_G['EnemyAIController'].ReevaluateAttacks = function() end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param targetDir Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['EnemyAIController'].IsPositionInsideAllowedZone = function(pos, targetDir) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].SteerInsideLevel = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@overload fun(wall:Barotrauma.Structure, section:Barotrauma.WallSection, targetWorldPos:Microsoft.Xna.Framework.Vector2, deltaTime:System.Single):(System.Boolean)
+---@param gap Barotrauma.Gap
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param maxDistance? System.Single
+---@return System.Boolean
+_G['EnemyAIController'].SteerThroughGap = function(gap, targetWorldPos, deltaTime, maxDistance) end
+
+---`Method Public Instance`
+---@param wall Barotrauma.Structure
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['EnemyAIController'].CanPassThroughHole = function(wall, sectionIndex) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['EnemyAIController'].Escape = function(deltaTime) end
+
+---`Method Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param target Barotrauma.Character
+---@param targetLimbType? Barotrauma.LimbType
+---@return Barotrauma.Limb
+_G['EnemyAIController'].GetTargetLimb = function(attackLimb, target, targetLimbType) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Character
+_G['EnemyAIController'].GetOwner = function(item) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['EnemyAIController'].DebugDraw = function(spriteBatch) end
+
+---`Method Private Instance`
+---@param range System.Single
+---@return System.Single
+_G['EnemyAIController'].GetPerceptionRange = function(range) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsTargetBeingChasedBy = function(target, character) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsBeingChasedBy = function(c) end
+
+---`Method Private Static`
+---@param target Barotrauma.AITarget
+---@return System.Boolean
+_G['EnemyAIController'].IsTargetInPlayerTeam = function(target) end
+
+---`Method Private Instance`
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsAttackingOwner = function(other) end
+
+---`Method Private Instance`
+---@overload fun(targetTag:Barotrauma.Identifier):((System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams)))
+---@param targetingTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['EnemyAIController'].GetTargetParams = function(targetingTags) end
+
+---`Method Private Instance`
+---@param aiTarget Barotrauma.AITarget
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['EnemyAIController'].GetTargetingTags = function(aiTarget) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.AITarget
+_G['EnemyAIController'].SelectTarget = function(target) end
+
+---`Method Public Instance`
+---@param target Barotrauma.AITarget
+---@param priority System.Single
+_G['EnemyAIController'].SelectTarget = function(target, priority) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].ReleaseDragTargets = function() end
+
+---`Method Public Instance`
+---@param probability? System.Nullable*1System*Single
+_G['EnemyAIController'].EvaluatePlayDeadProbability = function(probability) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['EnemyAIController'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param followLastTarget? System.Boolean
+_G['EnemyAIController'].UpdateIdle = function(deltaTime, followLastTarget) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param followLastTarget? System.Boolean
+_G['EnemyAIController'].UpdatePatrol = function(deltaTime, followLastTarget) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].FindTargetHulls = function() end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@param otherTarget Barotrauma.AITarget
+---@return System.Boolean
+_G['EnemyAIController'].IsSameTarget = function(target, otherTarget) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateAttack = function(deltaTime) end
+
+---`Method Public Instance`
+---@param attack Barotrauma.Attack
+---@param targetEntity Barotrauma.ISpatialEntity
+_G['EnemyAIController'].AimRangedAttack = function(attack, targetEntity) end
+
+---`Method Private Instance`
+---@param attackingLimb Barotrauma.Limb
+---@param currentContexts (System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext)|(fun():(Barotrauma.AttackContext))
+---@param target Barotrauma.Entity
+---@return System.Boolean
+_G['EnemyAIController'].IsValidAttack = function(attackingLimb, currentContexts, target) end
+
+---`Method Private Instance`
+---@param attackWorldPos Microsoft.Xna.Framework.Vector2
+---@param ignoredLimb? Barotrauma.Limb
+---@return Barotrauma.Limb
+_G['EnemyAIController'].GetAttackLimb = function(attackWorldPos, ignoredLimb) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['EnemyAIController'].OnAttacked = function(attacker, attackResult) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@return Barotrauma.Item
+_G['EnemyAIController'].GetEquippedItem = function(limb) end
+
+---`Method Private Static`
+---@param dmg System.Single
+---@param vitality System.Single
+---@return System.Single
+_G['EnemyAIController'].GetRelativeDamage = function(dmg, vitality) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param attackSimPos Microsoft.Xna.Framework.Vector2
+---@param damageTarget Barotrauma.IDamageable
+---@param distance? System.Single
+---@param targetLimb? Barotrauma.Limb
+---@return System.Boolean
+_G['EnemyAIController'].UpdateLimbAttack = function(deltaTime, attackSimPos, damageTarget, distance, targetLimb) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param target Barotrauma.ISpatialEntity
+---@param weapon Barotrauma.Item
+---@return System.Boolean
+_G['EnemyAIController'].Aim = function(deltaTime, target, weapon) end
+
+---`Method Private Instance`
+---@param timer? System.Single
+_G['EnemyAIController'].SetAimTimer = function(timer) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param steerPos Microsoft.Xna.Framework.Vector2
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@return System.Boolean
+_G['EnemyAIController'].IsBlocked = function(deltaTime, steerPos, collisionCategory) end
+
+---`Method Private Instance`
+---@param attackWorldPos Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param followThrough System.Boolean
+---@param checkBlocking? System.Boolean
+---@param avoidObstacles? System.Boolean
+---@return System.Boolean
+_G['EnemyAIController'].UpdateFallBack = function(attackWorldPos, deltaTime, followThrough, checkBlocking, avoidObstacles) end
+
+---`Method Private Instance`
+---@param attack Barotrauma.Attack
+---@return Barotrauma.Limb
+_G['EnemyAIController'].GetLimbToRotate = function(attack) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateEating = function(deltaTime) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].ReleaseEatingTarget = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateFollow = function(deltaTime) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsLatchedTo = function(target, character) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsLatchedToSomeoneElse = function(target, character) end
+
+---`Method Public Instance`
+_G['EnemyAIController'].UpdateTargets = function() end
+
+---`Method Private Instance`
+---@param requiredHoleCount System.Int32
+_G['EnemyAIController'].UpdateWallTarget = function(requiredHoleCount) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['EnemyAIController'].TrySteerThroughGaps = function(deltaTime) end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@param addIfNotFound? System.Boolean
+---@param keepAlive? System.Boolean
+---@return Barotrauma.AITargetMemory
+_G['EnemyAIController'].GetTargetMemory = function(target, addIfNotFound, keepAlive) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].UpdateCurrentMemoryLocation = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].FadeMemories = function(deltaTime) end
+
+---`Method Public Instance`
+---@param target Barotrauma.AITarget
+_G['EnemyAIController'].IgnoreTarget = function(target) end
+
+---`Method Public Instance`
+---@param trigger Barotrauma.StatusEffect.AITrigger
+_G['EnemyAIController'].LaunchTrigger = function(trigger) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateTriggers = function(deltaTime) end
+
+---`Method Private Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['EnemyAIController'].TryResetOriginalState = function(tag) end
+
+---`Method Private Instance`
+---@param targetParams Barotrauma.CharacterParams.TargetParams
+_G['EnemyAIController'].ResetParams = function(targetParams) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@param seed System.String
+---@return Barotrauma.EnemyAIController
+_G['EnemyAIController'] = function(c, seed) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@param seed System.String
+---@return Barotrauma.EnemyAIController
+_G['EnemyAIController'].__new = function(c, seed) end
+
diff --git a/Meta/Types/client/_00007FFD97DC0AA8.lua b/Meta/Types/client/_00007FFD97DC0AA8.lua
new file mode 100644
index 0000000..de19e2e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC0AA8.lua
@@ -0,0 +1,528 @@
+---@meta
+---@class Barotrauma.HumanAIController : Barotrauma.AIController
+---`Field Private Instance`
+---@field objectiveManager Barotrauma.AIObjectiveManager
+---`Field Private Instance`
+---@field crouchRaycastTimer System.Single
+---`Field Private Instance`
+---@field reactTimer System.Single
+---`Field Private Instance`
+---@field unreachableClearTimer System.Single
+---`Field Private Instance`
+---@field shouldCrouch System.Boolean
+---`Field Public Instance`
+---@field AutoFaceMovement System.Boolean
+---`Field Private Instance`
+---@field flipTimer System.Single
+---`Field Public Instance`
+---@field UnreachableHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Public Instance`
+---@field UnsafeHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Public Instance`
+---@field IgnoredItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field dirtyHullSafetyCalculations (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field respondToAttackTimer System.Single
+---`Field Private Instance`
+---@field wasConscious System.Boolean
+---`Field Private Instance`
+---@field freezeAI System.Boolean
+---`Field Private Instance`
+---@field maxSteeringBuffer System.Single
+---`Field Private Instance`
+---@field minSteeringBuffer System.Single
+---`Field Private Instance`
+---@field steeringBufferIncreaseSpeed System.Single
+---`Field Private Instance`
+---@field steeringBuffer System.Single
+---`Field Private Instance`
+---@field obstacleRaycastIntervalShort System.Single
+---`Field Private Instance`
+---@field obstacleRaycastIntervalLong System.Single
+---`Field Private Instance`
+---@field obstacleRaycastTimer System.Single
+---`Field Private Instance`
+---@field isBlocked System.Boolean
+---`Field Private Instance`
+---@field enemyCheckInterval System.Single
+---`Field Private Instance`
+---@field enemySpotDistanceOutside System.Single
+---`Field Private Instance`
+---@field enemySpotDistanceInside System.Single
+---`Field Private Instance`
+---@field enemyCheckTimer System.Single
+---`Field Private Instance`
+---@field reportProblemsInterval System.Single
+---`Field Private Instance`
+---@field reportProblemsTimer System.Single
+---`Field Private Instance`
+---@field _aimSpeed System.Single
+---`Field Private Instance`
+---@field _aimAccuracy System.Single
+---`Field Private Instance`
+---@field previousAttackResults (System.Collections.Generic.Dictionary*1Barotrauma*Character*1Barotrauma*AttackResult)|({[Barotrauma.Character]:(Barotrauma.AttackResult)})
+---`Field Private Instance`
+---@field previousHealAmounts (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single)|({[Barotrauma.Character]:(System.Single)})
+---`Field Private Instance`
+---@field outsideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field insideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field structureDamageAccumulator (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single)|({[Barotrauma.Character]:(System.Single)})
+---`Field Private Instance`
+---@field knownHulls (System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Barotrauma*HumanAIController*HullSafety)|({[Barotrauma.Hull]:(Barotrauma.HumanAIController.HullSafety)})
+---`Field Private Instance`
+---@field itemsToRelocate (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field findItemState Barotrauma.HumanAIController.FindItemState
+---`Field Private Instance`
+---@field itemIndex System.Int32
+---`Field Private Instance`
+---@field draggedTimer System.Single
+---`Field Private Instance`
+---@field refuseDraggingTimer System.Single
+---`Field Public Static`
+---@field DebugAI System.Boolean
+---`Field Public Static`
+---@field DisableCrewAI System.Boolean
+---`Field Private Static`
+---@field characterWaitOnSwitch System.Single
+---`Field Private Static`
+---@field matchingItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field reactionTime System.Single
+---`Field Private Static`
+---@field crouchRaycastInterval System.Single
+---`Field Private Static`
+---@field sortObjectiveInterval System.Single
+---`Field Private Static`
+---@field clearUnreachableInterval System.Single
+---`Field Private Static`
+---@field FlipInterval System.Single
+---`Field Public Static`
+---@field HULL_SAFETY_THRESHOLD System.Single
+---`Field Public Static`
+---@field HULL_LOW_OXYGEN_PERCENTAGE System.Single
+---`Field Private Static`
+---@field RespondToAttackInterval System.Single
+---`Field Private Static`
+---@field RefuseDraggingThresholdHigh System.Single
+---`Field Private Static`
+---@field RefuseDraggingThresholdLow System.Single
+---`Field Private Static`
+---@field RefuseDraggingDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SortTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hearing System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReportRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FindWeaponsRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimAccuracy System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseOutsideWaypoints System.Boolean
+---`Getter Public Instance`
+---@field PathSteering Barotrauma.IndoorsSteeringManager
+---`Getter Public Instance`
+---@field AnimController Barotrauma.HumanoidAnimController
+---`Getter Public Instance`
+---@field ObjectiveManager Barotrauma.AIObjectiveManager
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentHullSafety System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MentalStateManager Barotrauma.MentalStateManager
+---`Getter Public Instance Virtual`
+---@field IsMentallyUnstable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShipCommandManager Barotrauma.ShipCommandManager
+_G['HumanAIController'] = {}
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAllBotsInTheCrew = function(predicate) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAllBotsInTheCrew = function(character, predicate) end
+
+---`Method Public Instance`
+---@param predicate? (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Int32
+_G['HumanAIController'].CountBotsInTheCrew = function(predicate) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param predicate? (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Int32
+_G['HumanAIController'].CountBotsInTheCrew = function(character, predicate) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['HumanAIController'].DebugDraw = function(spriteBatch) end
+
+---`Method Public Instance`
+_G['HumanAIController'].InitMentalStateManager = function() end
+
+---`Method Public Instance`
+_G['HumanAIController'].InitShipCommandManager = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['HumanAIController'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['HumanAIController'].CheckEnemies = function() end
+
+---`Method Private Instance`
+_G['HumanAIController'].UnequipUnnecessaryItems = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['HumanAIController'].HandleRelocation = function(item) end
+
+---`Method Public Instance`
+---@param containableItem Barotrauma.Item
+---@param suitableContainer Barotrauma.Item-ref
+---@return System.Boolean
+_G['HumanAIController'].FindSuitableContainer = function(containableItem, suitableContainer) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param containableItem Barotrauma.Item
+---@param ignoredItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@param itemIndex System.Int32-ref
+---@param suitableContainer Barotrauma.Item-ref
+---@return System.Boolean
+_G['HumanAIController'].FindSuitableContainer = function(character, containableItem, ignoredItems, itemIndex, suitableContainer) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['HumanAIController'].UpdateDragged = function(deltaTime) end
+
+---`Method NonPublic Instance`
+_G['HumanAIController'].ReportProblems = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param hull Barotrauma.Hull
+---@return System.Boolean
+_G['HumanAIController'].IsBallastFloraNoticeable = function(character, hull) end
+
+---`Method Public Static`
+---@param reporter Barotrauma.Character
+---@param order Barotrauma.Order
+---@param targetHull? Barotrauma.Hull
+_G['HumanAIController'].ReportProblem = function(reporter, order, targetHull) end
+
+---`Method Private Instance`
+_G['HumanAIController'].SpeakAboutIssues = function() end
+
+---`Method Public Instance Virtual`
+---@param healer Barotrauma.Character
+---@param healAmount System.Single
+_G['HumanAIController'].OnHealed = function(healer, healAmount) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['HumanAIController'].OnAttacked = function(attacker, attackResult) end
+
+---`Method Private Instance`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['HumanAIController'].RespondToAttack = function(attacker, attackResult) end
+
+---`Method Public Instance`
+---@param mode Barotrauma.AIObjectiveCombat.CombatMode
+---@param target Barotrauma.Character
+---@param delay? System.Single
+---@param abortCondition? (System.Func*1Barotrauma*AIObjective*1System*Boolean)|(fun(arg:Barotrauma.AIObjective):(System.Boolean))
+---@param onAbort? (System.Action)|(fun())
+---@param onCompleted? (System.Action)|(fun())
+---@param allowHoldFire? System.Boolean
+---@param speakWarnings? System.Boolean
+_G['HumanAIController'].AddCombatObjective = function(mode, target, delay, abortCondition, onAbort, onCompleted, allowHoldFire, speakWarnings) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param speak? System.Boolean
+_G['HumanAIController'].SetOrder = function(order, speak) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@return Barotrauma.AIObjective
+_G['HumanAIController'].SetForcedOrder = function(order) end
+
+---`Method Public Instance`
+_G['HumanAIController'].ClearForcedOrder = function() end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.AITarget
+_G['HumanAIController'].SelectTarget = function(target) end
+
+---`Method Public Instance Virtual`
+_G['HumanAIController'].Reset = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['HumanAIController'].Escape = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['HumanAIController'].CheckCrouching = function(deltaTime) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['HumanAIController'].AllowCampaignInteraction = function() end
+
+---`Method Public Instance`
+---@param hull Barotrauma.Hull
+---@param needsSuit System.Boolean-ref
+---@return System.Boolean
+_G['HumanAIController'].NeedsDivingGear = function(hull, needsSuit) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param conditionPercentage? System.Single
+---@param requireOxygenTank? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].HasDivingGear = function(character, conditionPercentage, requireOxygenTank) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param conditionPercentage? System.Single
+---@param requireOxygenTank? System.Boolean
+---@param requireSuitablePressureProtection? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].HasDivingSuit = function(character, conditionPercentage, requireOxygenTank, requireSuitablePressureProtection) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param conditionPercentage? System.Single
+---@param requireOxygenTank? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].HasDivingMask = function(character, conditionPercentage, requireOxygenTank) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param tagOrIdentifier Barotrauma.Identifier
+---@param items System.Collections.Generic.IEnumerable
+---@param containedTag? Barotrauma.Identifier
+---@param conditionPercentage? System.Single
+---@param requireEquipped? System.Boolean
+---@param recursive? System.Boolean
+---@param predicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].HasItem = function(character, tagOrIdentifier, items, containedTag, conditionPercentage, requireEquipped, recursive, predicate) end
+
+---`Method Public Static`
+---@param structure Barotrauma.Structure
+---@param damageAmount System.Single
+---@param character Barotrauma.Character
+_G['HumanAIController'].StructureDamaged = function(structure, damageAmount, character) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param thief Barotrauma.Character
+_G['HumanAIController'].ItemTaken = function(item, thief) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+_G['HumanAIController'].ApplyStealingReputationLoss = function(item) end
+
+---`Method Private Static`
+---@return System.Single
+_G['HumanAIController'].GetReactionTime = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].PropagateHullSafety = function(character, hull) end
+
+---`Method Public Instance`
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].AskToRecalculateHullSafety = function(hull) end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].RefreshHullSafety = function(hull) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param order Barotrauma.Order
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].RefreshTargets = function(character, order, hull) end
+
+---`Method Private Static`
+---@param caller Barotrauma.Character
+---@param target Barotrauma.HumanAIController.T2
+---@return System.Boolean
+_G['HumanAIController'].AddTargets = function(caller, target) end
+
+---`Method Public Static`
+---@param caller Barotrauma.Character
+---@param target Barotrauma.HumanAIController.T2
+_G['HumanAIController'].RemoveTargets = function(caller, target) end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+---@param safety Barotrauma.HumanAIController.HullSafety
+_G['HumanAIController'].StoreHullSafety = function(hull, safety) end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+---@param character Barotrauma.Character
+---@param visibleHulls? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@return System.Single
+_G['HumanAIController'].CalculateHullSafety = function(hull, character, visibleHulls) end
+
+---`Method Private Static`
+---@param hull Barotrauma.Hull
+---@param visibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@param character Barotrauma.Character
+---@param ignoreWater? System.Boolean
+---@param ignoreOxygen? System.Boolean
+---@param ignoreFire? System.Boolean
+---@param ignoreEnemies? System.Boolean
+---@return System.Single
+_G['HumanAIController'].CalculateHullSafety = function(hull, visibleHulls, character, ignoreWater, ignoreOxygen, ignoreFire, ignoreEnemies) end
+
+---`Method Public Instance`
+---@param hull Barotrauma.Hull
+---@param character Barotrauma.Character
+---@param visibleHulls? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@return System.Single
+_G['HumanAIController'].GetHullSafety = function(hull, character, visibleHulls) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@param visibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@param character Barotrauma.Character
+---@param ignoreWater? System.Boolean
+---@param ignoreOxygen? System.Boolean
+---@param ignoreFire? System.Boolean
+---@param ignoreEnemies? System.Boolean
+---@return System.Single
+_G['HumanAIController'].GetHullSafety = function(hull, visibleHulls, character, ignoreWater, ignoreOxygen, ignoreFire, ignoreEnemies) end
+
+---`Method Public Static`
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@param onlySameTeam? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].IsFriendly = function(me, other, onlySameTeam) end
+
+---`Method Public Instance`
+---@param other Barotrauma.Character
+---@param onlySameTeam? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].IsFriendly = function(other, onlySameTeam) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['HumanAIController'].IsInHostileFaction = function() end
+
+---`Method Public Static`
+---@param c Barotrauma.Character
+---@return System.Boolean
+_G['HumanAIController'].IsActive = function(c) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAnyBotInTheCrew = function(character, predicate) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAnyBotInTheCrew = function(predicate) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Character*1System*Boolean)|(fun(arg:Barotrauma.Character):(System.Boolean))
+---@param onlyActive? System.Boolean
+---@param onlyConnectedSubs? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAnyCrewMember = function(predicate, onlyActive, onlyConnectedSubs) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param action (System.Action*1Barotrauma*HumanAIController)|(fun(obj:Barotrauma.HumanAIController))
+---@param range? System.Single
+_G['HumanAIController'].DoForEachBot = function(character, action, range) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param target Barotrauma.Character
+---@param range System.Single
+---@return System.Boolean
+_G['HumanAIController'].CheckReportRange = function(character, target, range) end
+
+---`Method Private Static`
+---@param self Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['HumanAIController'].IsBotInTheCrew = function(self, other) end
+
+---`Method Public Static`
+---@param target Barotrauma.Items.Components.ItemComponent
+---@param team Barotrauma.CharacterTeamType
+---@param operatingCharacter Barotrauma.Character-ref
+---@return System.Boolean
+_G['HumanAIController'].IsItemTargetedBySomeone = function(target, team, operatingCharacter) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Items.Components.ItemComponent
+---@param other Barotrauma.Character-ref
+---@return System.Boolean
+_G['HumanAIController'].IsItemOperatedByAnother = function(target, other) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Item
+---@param other Barotrauma.Character-ref
+---@return System.Boolean
+_G['HumanAIController'].IsItemRepairedByAnother = function(target, other) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'] = function(c) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'].__new = function(c) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'] = function(c) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'].__new = function(c) end
+
diff --git a/Meta/Types/client/_00007FFD97DC1518.lua b/Meta/Types/client/_00007FFD97DC1518.lua
new file mode 100644
index 0000000..837ccfc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC1518.lua
@@ -0,0 +1,283 @@
+---@meta
+---@class Barotrauma.AIObjective : System.Object
+---`Field Public Instance`
+---@field SourceEventAction Barotrauma.EventAction
+---`Field Public Instance`
+---@field SourceObjective Barotrauma.AIObjective
+---`Field NonPublic Instance`
+---@field subObjectives (System.Collections.Generic.List*1Barotrauma*AIObjective)|(Barotrauma.AIObjective[])
+---`Field Private Instance`
+---@field _cumulatedDevotion System.Single
+---`Field Private Instance`
+---@field resetPriorityTimer System.Single
+---`Field Private Instance`
+---@field resetPriorityTime System.Single
+---`Field Private Instance`
+---@field _forceHighestPriority System.Boolean
+---`Field Public Instance`
+---@field character Barotrauma.Character
+---`Field Public Instance`
+---@field objectiveManager Barotrauma.AIObjectiveManager
+---`Field Public Instance`
+---@field Option Barotrauma.Identifier
+---`Field Private Instance`
+---@field _abandon System.Boolean
+---`Field Private Instance`
+---@field all (System.Collections.Generic.List*1Barotrauma*AIObjective)|(Barotrauma.AIObjective[])
+---`Field Public Instance`
+---@field AbortCondition (System.Func*1Barotrauma*AIObjective*1System*Boolean)|(fun(arg:Barotrauma.AIObjective):(System.Boolean))
+---`Field Private Instance`
+---@field Completed (System.Action)|(fun())
+---`Field Private Instance`
+---@field Abandoned (System.Action)|(fun())
+---`Field Private Instance`
+---@field Selected (System.Action)|(fun())
+---`Field Private Instance`
+---@field Deselected (System.Action)|(fun())
+---`Field Private Instance`
+---@field isCompleted System.Boolean
+---`Field Private Instance`
+---@field hasBeenChecked System.Boolean
+---`Getter Public Static`
+---@field ObjectiveIconColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---@field Devotion System.Single
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowSubObjectiveSorting System.Boolean
+---`Getter Public Instance Virtual`
+---@field PrioritizeIfSubObjectivesActive System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOnAlsoWhenInactive System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AbandonIfDisallowed System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field MaxDevotion System.Single
+---`Getter NonPublic Instance`
+---
`Setter NonPublic Instance`
+---@field CumulatedDevotion System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Priority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BasePriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PriorityModifier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceHighestPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceWalk System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreAtOutpost System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Abandon System.Boolean
+---`Getter Public Instance`
+---@field SubObjectives (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective)|(fun():(Barotrauma.AIObjective))
+---`Getter Public Instance`
+---@field CurrentSubObjective Barotrauma.AIObjective
+---`Getter NonPublic Instance`
+---@field HumanAIController Barotrauma.HumanAIController
+---`Getter NonPublic Instance`
+---@field PathSteering Barotrauma.IndoorsSteeringManager
+---`Getter NonPublic Instance`
+---@field SteeringManager Barotrauma.SteeringManager
+---`Getter Public Instance`
+---@field IsAllowed System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsCompleted System.Boolean
+_G['AIObjective'] = {}
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@param option Barotrauma.Identifier
+---@param targetEntity Barotrauma.Entity
+---@return Barotrauma.Sprite
+_G['AIObjective'].GetSprite = function(identifier, option, targetEntity) end
+
+---`Method Public Instance`
+---@return Barotrauma.Sprite
+_G['AIObjective'].GetSprite = function() end
+
+---`Method Public Instance`
+---@param includingSelf? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective)|(fun():(Barotrauma.AIObjective))
+_G['AIObjective'].GetSubObjectivesRecursive = function(includingSelf) end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjective'].GetActiveObjective = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjective'].TryComplete = function(deltaTime) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@param addFirst? System.Boolean
+_G['AIObjective'].AddSubObjective = function(objective, addFirst) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.T-ref
+_G['AIObjective'].RemoveSubObjective = function(objective) end
+
+---`Method Public Instance`
+_G['AIObjective'].SortSubObjectives = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjective'].IsIgnoredAtOutpost = function() end
+
+---`Method NonPublic Instance`
+_G['AIObjective'].HandleDisallowed = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjective'].GetPriority = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['AIObjective'].CalculatePriority = function() end
+
+---`Method Public Static`
+---@param selfPos Microsoft.Xna.Framework.Vector2
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param factorAtMaxDistance System.Single
+---@param verticalDistanceMultiplier? System.Single
+---@param maxDistance? System.Single
+---@param factorAtMinDistance? System.Single
+---@return System.Single
+_G['AIObjective'].GetDistanceFactor = function(selfPos, targetWorldPos, factorAtMaxDistance, verticalDistanceMultiplier, maxDistance, factorAtMinDistance) end
+
+---`Method NonPublic Instance`
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param factorAtMaxDistance System.Single
+---@param verticalDistanceMultiplier? System.Single
+---@param maxDistance? System.Single
+---@param factorAtMinDistance? System.Single
+---@return System.Single
+_G['AIObjective'].GetDistanceFactor = function(targetWorldPos, factorAtMaxDistance, verticalDistanceMultiplier, maxDistance, factorAtMinDistance) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjective'].UpdateDevotion = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param otherObjective Barotrauma.AIObjective.T
+---@return System.Boolean
+_G['AIObjective'].IsDuplicate = function(otherObjective) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjective'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param dictionary (System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*T1*1Barotrauma*AIObjective*T2)|({[Barotrauma.AIObjective.T1]:(Barotrauma.AIObjective.T2)})
+---@param collection (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective*T1)|(fun():(Barotrauma.AIObjective.T1))
+_G['AIObjective'].SyncRemovedObjectives = function(dictionary, collection) end
+
+---`Method NonPublic Instance`
+---@param objective Barotrauma.T-ref
+---@param constructor (System.Func*1Barotrauma*AIObjective*T)|(fun():(Barotrauma.AIObjective.T))
+---@param onCompleted? (System.Action)|(fun())
+---@param onAbandon? (System.Action)|(fun())
+---@return System.Boolean
+_G['AIObjective'].TryAddSubObjective = function(objective, constructor, onCompleted, onAbandon) end
+
+---`Method Public Instance Virtual`
+_G['AIObjective'].OnSelected = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjective'].OnDeselected = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjective'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjective'].OnAbandon = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjective'].Reset = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param deltaTime System.Single
+_G['AIObjective'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjective'].Check = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Boolean
+_G['AIObjective'].CheckObjectiveState = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjective'].CheckState = function() end
+
+---`Method Private Instance`
+_G['AIObjective'].CheckSubObjectives = function() end
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@param allowWearing System.Boolean
+---@return System.Boolean
+_G['AIObjective'].CanPutInInventory = function(character, item, allowWearing) end
+
+---`Method NonPublic Instance`
+---@param item Barotrauma.Item
+---@param allowWearing System.Boolean
+---@return System.Boolean
+_G['AIObjective'].CanEquip = function(item, allowWearing) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier System.Single
+---@param option? Barotrauma.Identifier
+---@return Barotrauma.AIObjective
+_G['AIObjective'] = function(character, objectiveManager, priorityModifier, option) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier System.Single
+---@param option? Barotrauma.Identifier
+---@return Barotrauma.AIObjective
+_G['AIObjective'].__new = function(character, objectiveManager, priorityModifier, option) end
+
diff --git a/Meta/Types/client/_00007FFD97DC2D90.lua b/Meta/Types/client/_00007FFD97DC2D90.lua
new file mode 100644
index 0000000..25255a5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC2D90.lua
@@ -0,0 +1,147 @@
+---@meta
+---@class Barotrauma.AITarget : System.Object
+---`Field Private Instance`
+---@field entity Barotrauma.Entity
+---`Field Private Instance`
+---@field soundRange System.Single
+---`Field Private Instance`
+---@field sightRange System.Single
+---`Field Private Instance`
+---@field sectorRad System.Single
+---`Field Private Instance`
+---@field sectorDir Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field SonarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SonarIconIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field inDetectable System.Boolean
+---`Field Public Instance`
+---@field InDetectableSetTime System.Double
+---`Field Public Instance`
+---@field MinSoundRange System.Single
+---`Field Public Instance`
+---@field MinSightRange System.Single
+---`Field Public Instance`
+---@field MaxSoundRange System.Single
+---`Field Public Instance`
+---@field MaxSightRange System.Single
+---`Field Public Static`
+---@field ShowAITargets System.Boolean
+---`Field Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*AITarget)|(Barotrauma.AITarget[])
+---`Getter Public Instance`
+---@field Entity Barotrauma.Entity
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadeOutTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Static System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StaticSound System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StaticSight System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SightRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SectorDegrees System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SectorDir Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SonarDisruption System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InDetectable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NeedsUpdate System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Type Barotrauma.AITarget.TargetType
+---`Getter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+_G['AITarget'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['AITarget'].Draw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AITarget'].ShouldBeIgnored = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AITarget'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].IncreaseSoundRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].IncreaseSightRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].DecreaseSoundRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].DecreaseSightRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AITarget'].HasSector = function() end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['AITarget'].IsWithinSector = function(worldPosition) end
+
+---`Method Public Instance`
+_G['AITarget'].Remove = function() end
+
+---`Method Public Instance`
+_G['AITarget'].Reset = function() end
+
+---`Constructor Public Instance`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DC2F60.lua b/Meta/Types/client/_00007FFD97DC2F60.lua
new file mode 100644
index 0000000..a83e487
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC2F60.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.AITargetMemory : System.Object
+---`Field Public Instance`
+---@field Target Barotrauma.AITarget
+---`Field Private Instance`
+---@field priority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Location Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Priority System.Single
+_G['AITargetMemory'] = {}
+
+---`Constructor Public Instance`
+---@param target Barotrauma.AITarget
+---@param priority System.Single
+---@return Barotrauma.AITargetMemory
+_G['AITargetMemory'] = function(target, priority) end
+
+---`Constructor Public Instance`
+---@param target Barotrauma.AITarget
+---@param priority System.Single
+---@return Barotrauma.AITargetMemory
+_G['AITargetMemory'].__new = function(target, priority) end
+
diff --git a/Meta/Types/client/_00007FFD97DC30E8.lua b/Meta/Types/client/_00007FFD97DC30E8.lua
new file mode 100644
index 0000000..6d2ff98
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC30E8.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Networking.ChatMessageType : System.Enum
+---`Field Public Static`
+---@field Default Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Error Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Dead Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Server Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Radio Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Private Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Console Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field MessageBox Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Order Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field ServerLog Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field ServerMessageBox Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field ServerMessageBoxInGame Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Team Barotrauma.Networking.ChatMessageType
+_G['ChatMessageType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DC3440.lua b/Meta/Types/client/_00007FFD97DC3440.lua
new file mode 100644
index 0000000..18802d2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC3440.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.AIChatMessage : System.Object
+---`Field Public Instance`
+---@field Message System.String
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field MessageType System.Nullable*1Barotrauma*Networking*ChatMessageType
+---`Field Public Instance`
+---@field SendDelay System.Single
+---`Field Public Instance`
+---@field SendTime System.Double
+_G['AIChatMessage'] = {}
+
+---`Constructor Public Instance`
+---@param message System.String
+---@param type System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param identifier? Barotrauma.Identifier
+---@param delay? System.Single
+---@return Barotrauma.AIChatMessage
+_G['AIChatMessage'] = function(message, type, identifier, delay) end
+
+---`Constructor Public Instance`
+---@param message System.String
+---@param type System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param identifier? Barotrauma.Identifier
+---@param delay? System.Single
+---@return Barotrauma.AIChatMessage
+_G['AIChatMessage'].__new = function(message, type, identifier, delay) end
+
diff --git a/Meta/Types/client/_00007FFD97DC3B90.lua b/Meta/Types/client/_00007FFD97DC3B90.lua
new file mode 100644
index 0000000..1a360d6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC3B90.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.AIObjectiveManager : System.Object
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field _waitTimer System.Single
+---`Field Private Instance`
+---@field currentOrder Barotrauma.AIObjective
+---`Field Public Instance`
+---@field FailedToFindDivingGearForDepth System.Boolean
+---`Field Public Static`
+---@field MaxObjectivePriority System.Single
+---`Field Public Static`
+---@field EmergencyObjectivePriority System.Single
+---`Field Public Static`
+---@field HighestOrderPriority System.Single
+---`Field Public Static`
+---@field LowestOrderPriority System.Single
+---`Field Public Static`
+---@field RunPriority System.Single
+---`Field Public Static`
+---@field baseDevotion System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Objectives (System.Collections.Generic.List*1Barotrauma*AIObjective)|(Barotrauma.AIObjective[])
+---`Getter Public Instance`
+---@field HumanAIController Barotrauma.HumanAIController
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaitTimer System.Single
+---`Getter Public Instance`
+---@field CurrentOrders (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentOrder Barotrauma.AIObjective
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForcedOrder Barotrauma.AIObjective
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentObjective Barotrauma.AIObjective
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DelayedObjectives (System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*1Barotrauma*CoroutineHandle)|({[Barotrauma.AIObjective]:(Barotrauma.CoroutineHandle)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FailedAutonomousObjectives System.Boolean
+_G['AIObjectiveManager'] = {}
+
+---`Method Public Instance`
+---@overload fun(objective:Barotrauma.AIObjective)
+---@overload fun(objective:Barotrauma.AIObjectiveManager.T)
+---@param objective Barotrauma.AIObjectiveManager.T
+---@param delay System.Single
+---@param callback? (System.Action)|(fun())
+_G['AIObjectiveManager'].AddObjective = function(objective, delay, callback) end
+
+---`Method Private Instance`
+_G['AIObjectiveManager'].ClearIgnored = function() end
+
+---`Method Public Instance`
+_G['AIObjectiveManager'].CreateAutonomousObjectives = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjectiveManager.T
+_G['AIObjectiveManager'].GetObjective = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjectiveManager'].GetCurrentObjective = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['AIObjectiveManager'].GetCurrentPriority = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveManager'].UpdateObjectives = function(deltaTime) end
+
+---`Method Public Instance`
+_G['AIObjectiveManager'].SortObjectives = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveManager'].DoCurrentObjective = function(deltaTime) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+_G['AIObjectiveManager'].SetForcedOrder = function(objective) end
+
+---`Method Public Instance`
+_G['AIObjectiveManager'].ClearForcedOrder = function() end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param speak System.Boolean
+_G['AIObjectiveManager'].SetOrder = function(order, speak) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjective
+_G['AIObjectiveManager'].CreateObjective = function(order, priorityModifier) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+_G['AIObjectiveManager'].DismissSelf = function(order) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].IsAllowedToWait = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].IsCurrentOrder = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].IsCurrentObjective = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].HasObjectiveOrOrder = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjectiveManager'].GetActiveObjective = function() end
+
+---`Method Public Instance`
+---@overload fun():(Barotrauma.AIObjectiveManager.T)
+---@param objective Barotrauma.AIObjective
+---@return Barotrauma.Order
+_G['AIObjectiveManager'].GetOrder = function(objective) end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjectiveManager.T
+_G['AIObjectiveManager'].GetLastActiveObjective = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjectiveManager.T
+_G['AIObjectiveManager'].GetFirstActiveObjective = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjectiveManager*T)|(fun():(Barotrauma.AIObjectiveManager.T))
+_G['AIObjectiveManager'].GetActiveObjectives = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].HasActiveObjective = function() end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@return System.Boolean
+_G['AIObjectiveManager'].IsOrder = function(objective) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].HasOrders = function() end
+
+---`Method Public Instance`
+---@param predicate? (System.Func*1Barotrauma*AIObjectiveManager*T*1System*Boolean)|(fun(arg:Barotrauma.AIObjectiveManager.T):(System.Boolean))
+---@return System.Boolean
+_G['AIObjectiveManager'].HasOrder = function(predicate) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@return System.Single
+_G['AIObjectiveManager'].GetOrderPriority = function(objective) end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['AIObjectiveManager'].GetCurrentOrderInfo = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.AIObjectiveManager
+_G['AIObjectiveManager'] = function(character) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.AIObjectiveManager
+_G['AIObjectiveManager'].__new = function(character) end
+
diff --git a/Meta/Types/client/_00007FFD97DC4470.lua b/Meta/Types/client/_00007FFD97DC4470.lua
new file mode 100644
index 0000000..b679b8d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC4470.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.AIObjectiveChargeBatteries : Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*PowerContainer
+---`Field Private Instance`
+---@field batteryList (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer)|(fun():(Barotrauma.Items.Components.PowerContainer))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+_G['AIObjectiveChargeBatteries'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param battery Barotrauma.Items.Components.PowerContainer
+---@return System.Boolean
+_G['AIObjectiveChargeBatteries'].IsValidTarget = function(battery) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveChargeBatteries'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer)|(fun():(Barotrauma.Items.Components.PowerContainer))
+_G['AIObjectiveChargeBatteries'].GetList = function() end
+
+---`Method Private Instance`
+---@param battery Barotrauma.Items.Components.PowerContainer
+---@return System.Boolean
+_G['AIObjectiveChargeBatteries'].IsReady = function(battery) end
+
+---`Method NonPublic Instance Virtual`
+---@param battery Barotrauma.Items.Components.PowerContainer
+---@return Barotrauma.AIObjective
+_G['AIObjectiveChargeBatteries'].ObjectiveConstructor = function(battery) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Items.Components.PowerContainer
+_G['AIObjectiveChargeBatteries'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier System.Single
+---@return Barotrauma.AIObjectiveChargeBatteries
+_G['AIObjectiveChargeBatteries'] = function(character, objectiveManager, option, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier System.Single
+---@return Barotrauma.AIObjectiveChargeBatteries
+_G['AIObjectiveChargeBatteries'].__new = function(character, objectiveManager, option, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DC4AA8.lua b/Meta/Types/client/_00007FFD97DC4AA8.lua
new file mode 100644
index 0000000..e261f64
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC4AA8.lua
@@ -0,0 +1,150 @@
+---@meta
+---@class Barotrauma.Items.Components.Powered : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field powerOnSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field powerOnSoundPlayed System.Boolean
+---`Field NonPublic Instance`
+---@field currPowerConsumption System.Single
+---`Field Private Instance`
+---@field voltage System.Single
+---`Field Private Instance`
+---@field minVoltage System.Single
+---`Field NonPublic Instance`
+---@field powerConsumption System.Single
+---`Field NonPublic Instance`
+---@field powerIn Barotrauma.Items.Components.Connection
+---`Field NonPublic Instance`
+---@field powerOut Barotrauma.Items.Components.Connection
+---`Field Private Static`
+---@field poweredList (System.Collections.Generic.List*1Barotrauma*Items*Components*Powered)|(Barotrauma.Items.Components.Powered[])
+---`Field Public Static`
+---@field ChangedConnections (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Public Static`
+---@field Grids (System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*GridInfo)|({[System.Int32]:(Barotrauma.Items.Components.GridInfo)})
+---`Field NonPublic Static`
+---@field UpdateInterval System.Single
+---`Field NonPublic Static`
+---@field MaxOverVoltageFactor System.Single
+---`Getter Public Static`
+---@field PoweredList (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Powered)|(fun():(Barotrauma.Items.Components.Powered))
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinVoltage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumption System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrPowerConsumption System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Voltage System.Single
+---`Getter Public Instance`
+---@field RelativeVoltage System.Single
+---`Getter Public Instance Virtual`
+---@field HasPower System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoweredByTinkering System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VulnerableToEMP System.Boolean
+_G['Components']['Powered'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Powered'].InitProjectSpecific = function(element) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['Components']['Powered'].UpdateOnActiveEffects = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Powered'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Powered'].OnItemLoaded = function() end
+
+---`Method Public Static`
+---@param useCache? System.Boolean
+_G['Components']['Powered'].UpdateGrids = function(useCache) end
+
+---`Method Private Static`
+---@overload fun(conn:Barotrauma.Items.Components.Connection):(Barotrauma.Items.Components.GridInfo)
+---@param conn Barotrauma.Items.Components.Connection
+---@param gridID System.Int32
+---@return Barotrauma.Items.Components.GridInfo
+_G['Components']['Powered'].PropagateGrid = function(conn, gridID) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['Components']['Powered'].UpdatePower = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Powered'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param load? System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['Powered'].MinMaxPowerOut = function(conn, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['Powered'].GetConnectionPowerOut = function(conn, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['Powered'].GridResolved = function(conn) end
+
+---`Method Public Static`
+---@param conn1 Barotrauma.Items.Components.Connection
+---@param conn2 Barotrauma.Items.Components.Connection
+---@return System.Boolean
+_G['Components']['Powered'].ValidPowerConnection = function(conn1, conn2) end
+
+---`Method NonPublic Instance`
+---@return System.Single
+_G['Components']['Powered'].GetAvailableInstantaneousBatteryPower = function() end
+
+---`Method NonPublic Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer)|(fun():(Barotrauma.Items.Components.PowerContainer))
+_G['Components']['Powered'].GetDirectlyConnectedBatteries = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Powered'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DC52B0.lua b/Meta/Types/client/_00007FFD97DC52B0.lua
new file mode 100644
index 0000000..12cf52e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC52B0.lua
@@ -0,0 +1,184 @@
+---@meta
+---@class Barotrauma.Items.Components.PowerContainer : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field chargeIndicator Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field rechargeSpeedSlider Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field capacity System.Single
+---`Field Private Instance`
+---@field adjustedCapacity System.Single
+---`Field Private Instance`
+---@field charge System.Single
+---`Field Private Instance`
+---@field prevCharge System.Single
+---`Field Private Instance`
+---@field maxRechargeSpeed System.Single
+---`Field Private Instance`
+---@field rechargeSpeed System.Single
+---`Field Private Instance`
+---@field lastSentCharge System.Single
+---`Field NonPublic Instance`
+---@field indicatorPosition Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field indicatorSize Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field isHorizontal System.Boolean
+---`Field Private Instance`
+---@field currPowerOutput System.Single
+---`Field Private Instance`
+---@field efficiency System.Single
+---`Field Private Instance`
+---@field flipIndicator System.Boolean
+---`Field Private Instance`
+---@field isRunning System.Boolean
+---`Field Public Static`
+---@field aiRechargeTargetRatio System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RechargeWarningIndicatorLow System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RechargeWarningIndicatorHigh System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrPowerOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IndicatorPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IndicatorSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutPut System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Capacity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Charge System.Single
+---`Getter Public Instance`
+---@field ChargePercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxRechargeSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RechargeSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExponentialRechargeSpeed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Efficiency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlipIndicator System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OutputDisabled System.Boolean
+---`Getter Public Instance`
+---@field RechargeRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasBeenTuned System.Boolean
+_G['Components']['PowerContainer'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['PowerContainer'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerContainer'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['PowerContainer'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['PowerContainer'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['PowerContainer'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Components']['PowerContainer'].InitProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['PowerContainer'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerContainer'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['PowerContainer'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param load? System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['PowerContainer'].MinMaxPowerOut = function(connection, load) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['PowerContainer'].GetConnectionPowerOut = function(connection, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['PowerContainer'].GridResolved = function(conn) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['PowerContainer'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['PowerContainer'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Components']['PowerContainer'].GetCapacity = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.PowerContainer
+_G['Components']['PowerContainer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.PowerContainer
+_G['Components']['PowerContainer'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DC58D0.lua b/Meta/Types/client/_00007FFD97DC58D0.lua
new file mode 100644
index 0000000..10794e1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC58D0.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.AIObjectiveCleanupItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field item Barotrauma.Item
+---`Field Private Instance`
+---@field ignoredContainers (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field decontainObjective Barotrauma.AIObjectiveDecontainItem
+---`Field Private Instance`
+---@field itemIndex System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsPriority System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+_G['AIObjectiveCleanupItem'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveCleanupItem'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveCleanupItem'].Act = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveCleanupItem'].CheckObjectiveState = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCleanupItem'].Reset = function() end
+
+---`Method Public Instance`
+_G['AIObjectiveCleanupItem'].DropTarget = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItem
+_G['AIObjectiveCleanupItem'] = function(item, character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItem
+_G['AIObjectiveCleanupItem'].__new = function(item, character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DC5CB0.lua b/Meta/Types/client/_00007FFD97DC5CB0.lua
new file mode 100644
index 0000000..96079a6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC5CB0.lua
@@ -0,0 +1,83 @@
+---@meta
+---@class Barotrauma.AIObjectiveCleanupItems : Barotrauma.AIObjectiveLoop*1Barotrauma*Item
+---`Field Public Instance`
+---@field prioritizedItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ForceOrderPriority System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field MaxTargets System.Int32
+_G['AIObjectiveCleanupItems'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveCleanupItems'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsValidTarget = function(target) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param checkInventory System.Boolean
+---@param allowUnloading? System.Boolean
+---@param requireValidContainer? System.Boolean
+---@param ignoreItemsMarkedForDeconstruction? System.Boolean
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsValidTarget = function(item, character, checkInventory, allowUnloading, requireValidContainer, ignoreItemsMarkedForDeconstruction) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AIObjectiveCleanupItems'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@return Barotrauma.AIObjective
+_G['AIObjectiveCleanupItems'].ObjectiveConstructor = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Item
+_G['AIObjectiveCleanupItems'].OnObjectiveCompleted = function(objective, target) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsItemInsideValidSubmarine = function(item, character) end
+
+---`Method Public Static`
+---@param container Barotrauma.Item
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsValidContainer = function(container, character) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCleanupItems'].OnDeselected = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, prioritizedItem?:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectiveCleanupItems
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param prioritizedItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItems
+_G['AIObjectiveCleanupItems'] = function(character, objectiveManager, prioritizedItems, priorityModifier) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, prioritizedItem?:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectiveCleanupItems
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param prioritizedItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItems
+_G['AIObjectiveCleanupItems'].__new = function(character, objectiveManager, prioritizedItems, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DC6AC0.lua b/Meta/Types/client/_00007FFD97DC6AC0.lua
new file mode 100644
index 0000000..23012be
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC6AC0.lua
@@ -0,0 +1,15 @@
+---@meta
+---@class Barotrauma.AIObjectiveCombat.CombatMode : System.Enum
+---`Field Public Static`
+---@field Defensive Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field Offensive Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field Arrest Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field Retreat Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field None Barotrauma.AIObjectiveCombat.CombatMode
+_G['AIObjectiveCombat']['CombatMode'] = {}
+_G['CombatMode'] = _G['AIObjectiveCombat']['CombatMode']
+
diff --git a/Meta/Types/client/_00007FFD97DC6C48.lua b/Meta/Types/client/_00007FFD97DC6C48.lua
new file mode 100644
index 0000000..cb95da8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC6C48.lua
@@ -0,0 +1,336 @@
+---@meta
+---@class Barotrauma.AIObjectiveCombat : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field initialMode Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Private Instance`
+---@field checkWeaponsTimer System.Single
+---`Field Private Instance`
+---@field ignoreWeaponTimer System.Single
+---`Field Private Instance`
+---@field holdFireTimer System.Single
+---`Field Private Instance`
+---@field hasAimed System.Boolean
+---`Field Private Instance`
+---@field isLethalWeapon System.Boolean
+---`Field Private Instance`
+---@field allowCooldown System.Boolean
+---`Field Private Instance`
+---@field _weapon Barotrauma.Item
+---`Field Private Instance`
+---@field _weaponComponent Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field findSafety Barotrauma.AIObjectiveFindSafety
+---`Field Private Instance`
+---@field weapons (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field ignoredWeapons (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field seekAmmunitionObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field retreatObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field followTargetObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field seekWeaponObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field retreatTarget Barotrauma.Hull
+---`Field Private Instance`
+---@field coolDownTimer System.Single
+---`Field Private Instance`
+---@field pathBackTimer System.Single
+---`Field Private Instance`
+---@field myBodies (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---`Field Private Instance`
+---@field aimTimer System.Single
+---`Field Private Instance`
+---@field reloadTimer System.Single
+---`Field Private Instance`
+---@field spreadTimer System.Single
+---`Field Private Instance`
+---@field canSeeTarget System.Boolean
+---`Field Private Instance`
+---@field visibilityCheckTimer System.Single
+---`Field Private Instance`
+---@field sqrDistance System.Single
+---`Field Private Instance`
+---@field distanceTimer System.Single
+---`Field Public Instance`
+---@field AllowHoldFire System.Boolean
+---`Field Public Instance`
+---@field SpeakWarnings System.Boolean
+---`Field Private Instance`
+---@field firstWarningTriggered System.Boolean
+---`Field Private Instance`
+---@field lastWarningTriggered System.Boolean
+---`Field Private Instance`
+---@field arrestingRegistered System.Boolean
+---`Field Public Instance`
+---@field holdFireCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Field Private Instance`
+---@field findHullTimer System.Single
+---`Field Private Static`
+---@field CheckWeaponsInterval System.Single
+---`Field Private Static`
+---@field IgnoredWeaponsClearTime System.Single
+---`Field Private Static`
+---@field GoodWeaponPriority System.Single
+---`Field Private Static`
+---@field DefaultCoolDown System.Single
+---`Field Private Static`
+---@field PathBackCheckTime System.Single
+---`Field Private Static`
+---@field VisibilityCheckInterval System.Single
+---`Field Private Static`
+---@field MaxDistance System.Single
+---`Field Private Static`
+---@field DistanceCheckInterval System.Single
+---`Field Private Static`
+---@field CloseDistanceThreshold System.Single
+---`Field Private Static`
+---@field FloorHeightApproximate System.Single
+---`Field Private Static`
+---@field ArrestTargetDistance System.Single
+---`Field Private Static`
+---@field findHullInterval System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Private Instance`
+---@field AllowCoolDown System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Enemy Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldPosition System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Weapon Barotrauma.Item
+---`Getter Private Instance`
+---@field WeaponComponent Barotrauma.Items.Components.ItemComponent
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ArrestHoldFireTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Mode Barotrauma.AIObjectiveCombat.CombatMode
+---`Getter Private Instance`
+---@field IsOffensiveOrArrest System.Boolean
+---`Getter Private Instance`
+---@field TargetEliminated System.Boolean
+---`Getter Private Instance`
+---@field IsEnemyDisabled System.Boolean
+---`Getter Private Instance`
+---@field AimSpeed System.Single
+---`Getter Private Instance`
+---@field AimAccuracy System.Single
+---`Getter Private Instance`
+---@field ShouldUnequipWeapon System.Boolean
+_G['AIObjectiveCombat'] = {}
+
+---`Method Private Instance`
+---@param margin System.Single
+---@return System.Boolean
+_G['AIObjectiveCombat'].IsEnemyClose = function(margin) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveCombat'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveCombat'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Move = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveCombat'].TryArm = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].OperateWeapon = function(deltaTime) end
+
+---`Method Private Instance`
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return Barotrauma.Item
+_G['AIObjectiveCombat'].FindWeapon = function(weaponComponent) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveCombat'].GetWeaponComponent = function(item) end
+
+---`Method Private Instance`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@param prioritizeMelee System.Boolean
+---@param canSeekAmmo System.Boolean
+---@param lethalDmg System.Single-ref
+---@return System.Single
+_G['AIObjectiveCombat'].GetWeaponPriority = function(weapon, prioritizeMelee, canSeekAmmo, lethalDmg) end
+
+---`Method Private Instance`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@param attack Barotrauma.Attack
+---@return System.Single
+_G['AIObjectiveCombat'].ApproximateStunDamage = function(weapon, attack) end
+
+---`Method Private Static`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@return System.Boolean
+_G['AIObjectiveCombat'].CanMeleeStunnerStun = function(weapon) end
+
+---`Method Private Instance`
+---@param weaponList (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemComponent)|(fun():(Barotrauma.Items.Components.ItemComponent))
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return Barotrauma.Item
+_G['AIObjectiveCombat'].GetWeapon = function(weaponList, weaponComponent) end
+
+---`Method Public Static`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@return System.Single
+_G['AIObjectiveCombat'].GetLethalDamage = function(weapon) end
+
+---`Method Private Static`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@return Barotrauma.Attack
+_G['AIObjectiveCombat'].GetAttackDefinition = function(weapon) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+_G['AIObjectiveCombat'].FindWeaponsFromInventory = function() end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@param weaponList (System.Collections.Generic.ICollection*1Barotrauma*Items*Components*ItemComponent)|(fun():(Barotrauma.Items.Components.ItemComponent))
+_G['AIObjectiveCombat'].GetWeapons = function(item, weaponList) end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].UnequipWeapon = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveCombat'].Equip = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Retreat = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Engage = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].RemoveFollowTarget = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].OnArrestTargetReached = function() end
+
+---`Method Private Instance`
+---@param ammunitionIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['AIObjectiveCombat'].SeekAmmunition = function(ammunitionIdentifiers) end
+
+---`Method Private Instance`
+---@param seekAmmo System.Boolean
+---@return System.Boolean
+_G['AIObjectiveCombat'].Reload = function(seekAmmo) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Attack = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].UseWeapon = function(deltaTime) end
+
+---`Method Private Instance`
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent
+---@return System.Single
+_G['AIObjectiveCombat'].GetReloadTime = function(weaponComponent) end
+
+---`Method Private Instance`
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveCombat'].SetReloadTime = function(weaponComponent) end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].ClearInputs = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveCombat'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveCombat'].OnAbandon = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCombat'].OnDeselected = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCombat'].Reset = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].SpeakNoWeapons = function() end
+
+---`Method Private Instance`
+---@param textIdentifier Barotrauma.Identifier
+---@param delay System.Single
+---@param minDurationBetweenSimilar System.Single
+_G['AIObjectiveCombat'].PlayerCrewSpeak = function(textIdentifier, delay, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param textIdentifier Barotrauma.Identifier
+---@param delay System.Single
+---@param minDurationBetweenSimilar System.Single
+_G['AIObjectiveCombat'].FriendlyGuardSpeak = function(textIdentifier, delay, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param textIdentifier Barotrauma.Identifier
+---@param delay System.Single
+---@param minDurationBetweenSimilar System.Single
+_G['AIObjectiveCombat'].Speak = function(textIdentifier, delay, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param newTimer System.Single
+_G['AIObjectiveCombat'].SetAimTimer = function(newTimer) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param enemy Barotrauma.Character
+---@param mode Barotrauma.AIObjectiveCombat.CombatMode
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param coolDown? System.Single
+---@return Barotrauma.AIObjectiveCombat
+_G['AIObjectiveCombat'] = function(character, enemy, mode, objectiveManager, priorityModifier, coolDown) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param enemy Barotrauma.Character
+---@param mode Barotrauma.AIObjectiveCombat.CombatMode
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param coolDown? System.Single
+---@return Barotrauma.AIObjectiveCombat
+_G['AIObjectiveCombat'].__new = function(character, enemy, mode, objectiveManager, priorityModifier, coolDown) end
+
diff --git a/Meta/Types/client/_00007FFD97DC7490.lua b/Meta/Types/client/_00007FFD97DC7490.lua
new file mode 100644
index 0000000..a7bfd1d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC7490.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.AIObjectiveContainItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field GetItemPriority (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---`Field Public Instance`
+---@field ignoredContainerIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field checkInventory System.Boolean
+---`Field Private Instance`
+---@field spawnItemIfNotFound System.Boolean
+---`Field Public Instance`
+---@field itemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field container Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field item Barotrauma.Item
+---`Field Public Instance`
+---@field TargetSlot System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field containedItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field _itemCount System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ItemToContain Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowToFindDivingGear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDangerousPressure System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionLevel System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExisting System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingWhenNecessary System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingPredicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveMax System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemCount System.Int32
+_G['AIObjectiveContainItem'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveContainItem'].CheckObjectiveState = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveContainItem'].CountItems = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveContainItem'].CheckItem = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveContainItem'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveContainItem'].IsInTargetSlot = function(item) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveContainItem'].Reset = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, item:Barotrauma.Item, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single):Barotrauma.AIObjectiveContainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveContainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveContainItem
+_G['AIObjectiveContainItem'] = function(character, itemIdentifiers, container, objectiveManager, priorityModifier, spawnItemIfNotFound) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, item:Barotrauma.Item, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single):Barotrauma.AIObjectiveContainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveContainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveContainItem
+_G['AIObjectiveContainItem'].__new = function(character, itemIdentifiers, container, objectiveManager, priorityModifier, spawnItemIfNotFound) end
+
diff --git a/Meta/Types/client/_00007FFD97DC7A20.lua b/Meta/Types/client/_00007FFD97DC7A20.lua
new file mode 100644
index 0000000..2110cc4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC7A20.lua
@@ -0,0 +1,93 @@
+---@meta
+---@class Barotrauma.AIObjectiveDecontainItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field GetItemPriority (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---`Field Private Instance`
+---@field itemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field sourceContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field targetContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field containObjective Barotrauma.AIObjectiveContainItem
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---@field GetItemObjective Barotrauma.AIObjectiveGetItem
+---`Getter Public Instance`
+---@field ContainObjective Barotrauma.AIObjectiveContainItem
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.Item
+---`Getter Public Instance`
+---@field TargetContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TakeWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DropIfFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingWhenNecessary System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingPredicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingMax System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbandonGetItemDialogueIdentifier System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbandonGetItemDialogueCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+_G['AIObjectiveDecontainItem'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveDecontainItem'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveDecontainItem'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveDecontainItem'].Reset = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveDecontainItem'].OnAbandon = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer?:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param sourceContainer Barotrauma.Items.Components.ItemContainer
+---@param targetContainer? Barotrauma.Items.Components.ItemContainer
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveDecontainItem
+_G['AIObjectiveDecontainItem'] = function(character, itemIdentifiers, objectiveManager, sourceContainer, targetContainer, priorityModifier) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer?:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param sourceContainer Barotrauma.Items.Components.ItemContainer
+---@param targetContainer? Barotrauma.Items.Components.ItemContainer
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveDecontainItem
+_G['AIObjectiveDecontainItem'].__new = function(character, itemIdentifiers, objectiveManager, sourceContainer, targetContainer, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DC7D30.lua b/Meta/Types/client/_00007FFD97DC7D30.lua
new file mode 100644
index 0000000..dd70a7b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC7D30.lua
@@ -0,0 +1,68 @@
+---@meta
+---@class Barotrauma.AIObjectiveEscapeHandcuffs : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field escapeProgress System.Int32
+---`Field Private Instance`
+---@field isBeingWatched System.Boolean
+---`Field Private Instance`
+---@field shouldSwitchTeams System.Boolean
+---`Field Private Instance`
+---@field escapeTimer System.Single
+---`Field Private Instance`
+---@field updateTimer System.Single
+---`Field Private Static`
+---@field EscapeTeamChangeIdentifier System.String
+---`Field Private Static`
+---@field EscapeIntervalTimer System.Single
+---`Field Private Static`
+---@field UpdateIntervalTimer System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+_G['AIObjectiveEscapeHandcuffs'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveEscapeHandcuffs'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveEscapeHandcuffs'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveEscapeHandcuffs'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveEscapeHandcuffs'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveEscapeHandcuffs'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param shouldSwitchTeams? System.Boolean
+---@param beginInstantly? System.Boolean
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveEscapeHandcuffs
+_G['AIObjectiveEscapeHandcuffs'] = function(character, objectiveManager, shouldSwitchTeams, beginInstantly, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param shouldSwitchTeams? System.Boolean
+---@param beginInstantly? System.Boolean
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveEscapeHandcuffs
+_G['AIObjectiveEscapeHandcuffs'].__new = function(character, objectiveManager, shouldSwitchTeams, beginInstantly, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DC8148.lua b/Meta/Types/client/_00007FFD97DC8148.lua
new file mode 100644
index 0000000..29eccf1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC8148.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class Barotrauma.AIObjectiveExtinguishFire : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field targetHull Barotrauma.Hull
+---`Field Private Instance`
+---@field getExtinguisherObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field gotoObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field sinTime System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectiveExtinguishFire'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveExtinguishFire'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveExtinguishFire'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveExtinguishFire'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveExtinguishFire'].Reset = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveExtinguishFire'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveExtinguishFire'].OnAbandon = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetHull Barotrauma.Hull
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFire
+_G['AIObjectiveExtinguishFire'] = function(character, targetHull, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetHull Barotrauma.Hull
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFire
+_G['AIObjectiveExtinguishFire'].__new = function(character, targetHull, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DC84C0.lua b/Meta/Types/client/_00007FFD97DC84C0.lua
new file mode 100644
index 0000000..0dc5692
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC84C0.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.AIObjectiveExtinguishFires : Barotrauma.AIObjectiveLoop*1Barotrauma*Hull
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveExtinguishFires'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param hull Barotrauma.Hull
+---@return System.Boolean
+_G['AIObjectiveExtinguishFires'].IsValidTarget = function(hull) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveExtinguishFires'].IsValidTarget = function(hull, character) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveExtinguishFires'].GetTargetPriority = function() end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@return System.Single
+_G['AIObjectiveExtinguishFires'].GetFireSeverity = function(hull) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+_G['AIObjectiveExtinguishFires'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Hull
+---@return Barotrauma.AIObjective
+_G['AIObjectiveExtinguishFires'].ObjectiveConstructor = function(target) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Hull
+_G['AIObjectiveExtinguishFires'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFires
+_G['AIObjectiveExtinguishFires'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFires
+_G['AIObjectiveExtinguishFires'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DC95E8.lua b/Meta/Types/client/_00007FFD97DC95E8.lua
new file mode 100644
index 0000000..8a9840f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC95E8.lua
@@ -0,0 +1,565 @@
+---@meta
+---@class Barotrauma.Hull : Barotrauma.MapEntity
+---`Field Private Instance`
+---@field serverUpdateDelay System.Single
+---`Field Private Instance`
+---@field remoteWaterVolume System.Single
+---`Field Private Instance`
+---@field remoteOxygenPercentage System.Single
+---`Field Private Instance`
+---@field remoteFireSources (Barotrauma.NetworkFireSource-arr)|(Barotrauma.Hull.NetworkFireSource[])
+---`Field Private Instance`
+---@field remoteBackgroundSections (System.Collections.Generic.List*1Barotrauma*BackgroundSection)|(Barotrauma.BackgroundSection[])
+---`Field Private Instance`
+---@field remoteDecals (System.Collections.Generic.List*1Barotrauma*Hull*RemoteDecal)|(Barotrauma.Hull.RemoteDecal[])
+---`Field Private Instance`
+---@field pendingDecalUpdates (System.Collections.Generic.HashSet*1Barotrauma*Decal)|(Barotrauma.Decal[])
+---`Field Private Instance`
+---@field lastAmbientLightEditTime System.Double
+---`Field Private Instance`
+---@field drawSurface System.Single
+---`Field Private Instance`
+---@field paintAmount System.Single
+---`Field Private Instance`
+---@field minimumPaintAmountToDraw System.Single
+---`Field Public Instance`
+---@field properties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Field Private Instance`
+---@field lethalPressure System.Single
+---`Field Private Instance`
+---@field surface System.Single
+---`Field Private Instance`
+---@field waterVolume System.Single
+---`Field Private Instance`
+---@field pressure System.Single
+---`Field Private Instance`
+---@field oxygen System.Single
+---`Field Private Instance`
+---@field update System.Boolean
+---`Field Public Instance`
+---@field Visible System.Boolean
+---`Field Private Instance`
+---@field waveY (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field waveVel (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field leftDelta (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field rightDelta (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field decals (System.Collections.Generic.List*1Barotrauma*Decal)|(Barotrauma.Decal[])
+---`Field Public Instance`
+---@field ConnectedGaps (System.Collections.Generic.List*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Private Instance`
+---@field moduleTags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field roomName System.String
+---`Field Public Instance`
+---@field OriginalAmbientLight System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Instance`
+---@field ambientLight Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field isWetRoom System.Boolean
+---`Field Private Instance`
+---@field avoidStaying System.Boolean
+---`Field Private Instance`
+---@field pendingSectionUpdates (System.Collections.Generic.HashSet*1System*Int32)|(System.Int32[])
+---`Field Public Instance`
+---@field xBackgroundMax System.Int32
+---`Field Public Instance`
+---@field yBackgroundMax System.Int32
+---`Field Private Instance`
+---@field networkUpdatePending System.Boolean
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field adjacentHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Static`
+---@field corners (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+---`Field Private Static`
+---@field uvCoords (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Static`
+---@field prevCorners (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+---`Field Private Static`
+---@field prevUVs (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Public Static`
+---@field HullList (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Public Static`
+---@field EntityGrids (System.Collections.Generic.List*1Barotrauma*EntityGrid)|(Barotrauma.EntityGrid[])
+---`Field Public Static`
+---@field ShowHulls System.Boolean
+---`Field Public Static`
+---@field EditWater System.Boolean
+---`Field Public Static`
+---@field EditFire System.Boolean
+---`Field Public Static`
+---@field WaveStiffness System.Single
+---`Field Public Static`
+---@field WaveSpread System.Single
+---`Field Public Static`
+---@field WaveDampening System.Single
+---`Field Public Static`
+---@field OxygenDistributionSpeed System.Single
+---`Field Public Static`
+---@field OxygenDeteriorationSpeed System.Single
+---`Field Public Static`
+---@field OxygenConsumptionSpeed System.Single
+---`Field Public Static`
+---@field WaveWidth System.Int32
+---`Field Public Static`
+---@field MaxCompress System.Single
+---`Field Public Static`
+---@field BackgroundSectionSize System.Int32
+---`Field Public Static`
+---@field BackgroundSectionsPerNetworkEvent System.Int32
+---`Field Public Static`
+---@field PressureBuildUpSpeed System.Single
+---`Field Public Static`
+---@field PressureDropSpeed System.Single
+---`Field Public Static`
+---@field MaxDecalsPerHull System.Int32
+---`Field Private Static`
+---@field sectorWidth System.Int32
+---`Field Private Static`
+---@field sectorHeight System.Int32
+---`Field Private Static`
+---@field minColorStrength System.Single
+---`Field Private Static`
+---@field maxColorStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawSurface System.Single
+---`Getter Public Instance Virtual`
+---@field SelectableInEditor System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawBelowWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawOverWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field OutpostModuleTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RoomName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AmbientLight Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LethalPressure System.Single
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CeilingHeight System.Single
+---`Getter Public Instance`
+---@field Surface System.Single
+---`Getter Public Instance`
+---@field WorldSurface System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterVolume System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Oxygen System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsAirlock System.Boolean
+---`Getter Private Instance`
+---@field ForceAsWetRoom System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsWetRoom System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvoidStaying System.Boolean
+---`Getter Public Instance`
+---@field WaterPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenPercentage System.Single
+---`Getter Public Instance`
+---@field Volume System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Pressure System.Single
+---`Getter Public Instance`
+---@field WaveY (System.Single-arr)|(System.Single[])
+---`Getter Public Instance`
+---@field WaveVel (System.Single-arr)|(System.Single[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundSections (System.Collections.Generic.List*1Barotrauma*BackgroundSection)|(Barotrauma.BackgroundSection[])
+---`Getter Public Instance`
+---@field SupportsPaintedColors System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AveragePaintedColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field IsRed System.Boolean
+---`Getter Public Instance`
+---@field IsGreen System.Boolean
+---`Getter Public Instance`
+---@field IsBlue System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FireSources (System.Collections.Generic.List*1Barotrauma*FireSource)|(Barotrauma.FireSource[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FakeFireSources (System.Collections.Generic.List*1Barotrauma*DummyFireSource)|(Barotrauma.DummyFireSource[])
+---`Getter Public Instance`
+---@field FireCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BallastFlora Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['Hull'] = {}
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param action (System.Action*1Barotrauma*Hull*BackgroundSectionNetworkUpdate)|(fun(obj:Barotrauma.Hull.BackgroundSectionNetworkUpdate))
+---@param sectorToUpdate System.Int32-ref
+_G['Hull'].SharedBackgroundSectionRead = function(msg, action, sectorToUpdate) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Hull'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Hull'].UpdateProjSpecific = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param item Barotrauma.Item
+_G['Hull'].ApplyFlowForces = function(deltaTime, item) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param amount System.Single
+---@param position Microsoft.Xna.Framework.Vector2
+---@param extinguishRealFires? System.Boolean
+---@param extinguishFakeFires? System.Boolean
+_G['Hull'].Extinguish = function(deltaTime, amount, position, extinguishRealFires, extinguishFakeFires) end
+
+---`Method Public Instance`
+---@param fire Barotrauma.FireSource
+_G['Hull'].RemoveFire = function(fire) end
+
+---`Method Public Instance`
+---@param includingThis System.Boolean
+---@param searchDepth? System.Nullable*1System*Int32
+---@param ignoreClosedGaps? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+_G['Hull'].GetConnectedHulls = function(includingThis, searchDepth, ignoreClosedGaps) end
+
+---`Method Private Instance`
+---@param connectedHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---@param step System.Int32-ref
+---@param searchDepth System.Int32
+---@param ignoreClosedGaps? System.Boolean
+_G['Hull'].GetAdjacentHulls = function(connectedHulls, step, searchDepth, ignoreClosedGaps) end
+
+---`Method Public Instance`
+---@param startPos Microsoft.Xna.Framework.Vector2
+---@param endPos Microsoft.Xna.Framework.Vector2
+---@param targetHull Barotrauma.Hull
+---@param maxDistance System.Single
+---@param distanceMultiplierPerClosedDoor? System.Single
+---@return System.Single
+_G['Hull'].GetApproximateDistance = function(startPos, endPos, targetHull, maxDistance, distanceMultiplierPerClosedDoor) end
+
+---`Method Private Instance`
+---@param startPos Microsoft.Xna.Framework.Vector2
+---@param endPos Microsoft.Xna.Framework.Vector2
+---@param connectedHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---@param target Barotrauma.Hull
+---@param distance System.Single
+---@param maxDistance System.Single
+---@param distanceMultiplierFromDoors? System.Single
+---@return System.Single
+_G['Hull'].GetApproximateHullDistance = function(startPos, endPos, connectedHulls, target, distance, maxDistance, distanceMultiplierFromDoors) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param guess? Barotrauma.Hull
+---@param useWorldCoordinates? System.Boolean
+---@param inclusive? System.Boolean
+---@return Barotrauma.Hull
+_G['Hull'].FindHull = function(position, guess, useWorldCoordinates, inclusive) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param guess? Barotrauma.Hull
+---@param useWorldCoordinates? System.Boolean
+---@param inclusive? System.Boolean
+---@return Barotrauma.Hull
+_G['Hull'].FindHullUnoptimized = function(position, guess, useWorldCoordinates, inclusive) end
+
+---`Method Public Static`
+---@param c? Barotrauma.Character
+_G['Hull'].DetectItemVisibility = function(c) end
+
+---`Method Private Instance`
+---@param other Barotrauma.Hull
+---@param allowIndirect? System.Boolean
+---@return System.Boolean
+_G['Hull'].CanSeeOther = function(other, allowIndirect) end
+
+---`Method Public Instance`
+---@return System.String
+_G['Hull'].CreateRoomName = function() end
+
+---`Method Private Instance`
+_G['Hull'].DetermineIsAirlock = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Hull'].LeadsOutside = function(character) end
+
+---`Method Private Instance`
+_G['Hull'].CreateBackgroundSections = function() end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Hull
+_G['Hull'].GetCleanTarget = function(worldPosition) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.BackgroundSection
+_G['Hull'].GetBackgroundSection = function(worldPosition) end
+
+---`Method Public Instance`
+---@param rectArea Microsoft.Xna.Framework.Rectangle
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*BackgroundSection)|(fun():(Barotrauma.BackgroundSection))
+_G['Hull'].GetBackgroundSectionsViaContaining = function(rectArea) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param row System.Int32
+---@return System.Boolean
+_G['Hull'].DoesSectionMatch = function(index, row) end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@param color System.Nullable*1Microsoft*Xna*Framework*Color
+---@param strength System.Nullable*1System*Single
+---@param requiresUpdate System.Boolean
+---@param isCleaning System.Boolean
+_G['Hull'].IncreaseSectionColorOrStrength = function(section, color, strength, requiresUpdate, isCleaning) end
+
+---`Method Private Instance`
+_G['Hull'].RefreshAveragePaintedColor = function() end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@param color System.Nullable*1Microsoft*Xna*Framework*Color
+---@param strength System.Nullable*1System*Single
+_G['Hull'].SetSectionColorOrStrength = function(section, color, strength) end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@param cleanVal System.Single
+---@param updateRequired System.Boolean
+_G['Hull'].CleanSection = function(section, cleanVal, updateRequired) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Hull
+_G['Hull'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Hull'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Hull'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param worldView Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['Hull'].IsVisible = function(worldView) end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Hull'].IsMouseOn = function(position) end
+
+---`Method Private Instance`
+---@param inGame? System.Boolean
+---@return Barotrauma.GUIComponent
+_G['Hull'].CreateEditingHUD = function(inGame) end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+---@param deltaTime System.Single
+_G['Hull'].UpdateEditing = function(cam, deltaTime) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Hull'].UpdateCheats = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Hull'].DrawDecals = function(spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+_G['Hull'].Draw = function(spriteBatch, editing, back) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Hull'].DrawSectionColors = function(spriteBatch) end
+
+---`Method Public Static`
+---@param cam Barotrauma.Camera
+---@param renderer Barotrauma.WaterRenderer
+_G['Hull'].UpdateVertices = function(cam, renderer) end
+
+---`Method Private Instance`
+---@param cam Barotrauma.Camera
+---@param entityGrid Barotrauma.EntityGrid
+---@param renderer Barotrauma.WaterRenderer
+_G['Hull'].UpdateVertices = function(cam, entityGrid, renderer) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Hull'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Hull'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Hull'].ApplyRemoteState = function() end
+
+---`Method Public Static`
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Hull'].GetBorders = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Hull'].Clone = function() end
+
+---`Method Public Static`
+---@overload fun(worldRect:Microsoft.Xna.Framework.Rectangle):(Barotrauma.EntityGrid)
+---@param submarine Barotrauma.Submarine
+---@return Barotrauma.EntityGrid
+_G['Hull'].GenerateEntityGrid = function(submarine) end
+
+---`Method Public Instance`
+---@param tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['Hull'].SetModuleTags = function(tags) end
+
+---`Method Public Instance Virtual`
+_G['Hull'].OnMapLoaded = function() end
+
+---`Method Public Instance`
+---@param submarine Barotrauma.Submarine
+_G['Hull'].AddToGrid = function(submarine) end
+
+---`Method Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2):(System.Int32)
+---@param xPos System.Single
+---@return System.Int32
+_G['Hull'].GetWaveIndex = function(xPos) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Hull'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+_G['Hull'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Hull'].Remove = function() end
+
+---`Method Public Instance`
+---@param fireSource Barotrauma.FireSource
+_G['Hull'].AddFireSource = function(fireSource) end
+
+---`Method Public Instance`
+---@overload fun(decalId:System.UInt32, worldPosition:Microsoft.Xna.Framework.Vector2, scale:System.Single, isNetworkEvent:System.Boolean, spriteIndex?:System.Nullable*1System*Int32):(Barotrauma.Decal)
+---@param decalName System.String
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param scale System.Single
+---@param isNetworkEvent System.Boolean
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['Hull'].AddDecal = function(decalName, worldPosition, scale, isNetworkEvent, spriteIndex) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Hull'].SharedStatusWrite = function(msg) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param backgroundSectionsEventData Barotrauma.BackgroundSectionsEventData-ref
+_G['Hull'].SharedBackgroundSectionsWrite = function(msg, backgroundSectionsEventData) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param newWaterVolume System.Single-ref
+---@param newFireSources Barotrauma.NetworkFireSource-arr-ref
+_G['Hull'].SharedStatusRead = function(msg, newWaterVolume, newFireSources) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'] = function(rectangle, submarine, id) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'].__new = function(rectangle, submarine, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'] = function(rectangle, submarine, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'].__new = function(rectangle, submarine, id) end
+
diff --git a/Meta/Types/client/_00007FFD97DC9B78.lua b/Meta/Types/client/_00007FFD97DC9B78.lua
new file mode 100644
index 0000000..93731ed
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DC9B78.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class Barotrauma.AIObjectiveFightIntruders : Barotrauma.AIObjectiveLoop*1Barotrauma*Character
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field IgnoreListClearInterval System.Single
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field TargetUpdateTimeMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCharactersInOtherSubs System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveFightIntruders'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveFightIntruders'].IsValidTarget = function(target) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@param targetCharactersInOtherSubs System.Boolean
+---@return System.Boolean
+_G['AIObjectiveFightIntruders'].IsValidTarget = function(target, character, targetCharactersInOtherSubs) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['AIObjectiveFightIntruders'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFightIntruders'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return Barotrauma.AIObjective
+_G['AIObjectiveFightIntruders'].ObjectiveConstructor = function(target) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Character
+_G['AIObjectiveFightIntruders'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFightIntruders
+_G['AIObjectiveFightIntruders'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFightIntruders
+_G['AIObjectiveFightIntruders'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCA280.lua b/Meta/Types/client/_00007FFD97DCA280.lua
new file mode 100644
index 0000000..410548a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCA280.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.AIObjectiveFindDivingGear : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field gearTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field getDivingGear Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field getOxygen Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field oxygenSourceSlotIndex System.Nullable*1System*Int32
+---`Field Public Static`
+---@field MIN_OXYGEN System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectiveFindDivingGear'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveFindDivingGear'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFindDivingGear'].Act = function(deltaTime) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param tag Barotrauma.Identifier
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveFindDivingGear'].IsSuitablePressureProtection = function(item, tag, character) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveFindDivingGear'].IsSuitableContainedOxygenSource = function(item) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+_G['AIObjectiveFindDivingGear'].TrySetTargetItem = function(item) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveFindDivingGear'].Reset = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveFindDivingGear'].GetMinOxygen = function(character) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param needsDivingSuit System.Boolean
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindDivingGear
+_G['AIObjectiveFindDivingGear'] = function(character, needsDivingSuit, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param needsDivingSuit System.Boolean
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindDivingGear
+_G['AIObjectiveFindDivingGear'].__new = function(character, needsDivingSuit, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCA790.lua b/Meta/Types/client/_00007FFD97DCA790.lua
new file mode 100644
index 0000000..8e7bf53
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCA790.lua
@@ -0,0 +1,117 @@
+---@meta
+---@class Barotrauma.AIObjectiveFindSafety : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field currentHullSafety System.Single
+---`Field Private Instance`
+---@field searchHullTimer System.Single
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field divingGearObjective Barotrauma.AIObjectiveFindDivingGear
+---`Field Private Instance`
+---@field resetPriority System.Boolean
+---`Field Private Instance`
+---@field currentSafeHull Barotrauma.Hull
+---`Field Private Instance`
+---@field previousSafeHull Barotrauma.Hull
+---`Field Private Instance`
+---@field cannotFindSafeHull System.Boolean
+---`Field Private Instance`
+---@field cannotFindDivingGear System.Boolean
+---`Field Private Instance`
+---@field findDivingGearAttempts System.Int32
+---`Field Private Instance`
+---@field retryCounter System.Int32
+---`Field Private Instance`
+---@field retryResetTime System.Single
+---`Field Private Instance`
+---@field retryTimer System.Single
+---`Field Private Instance`
+---@field hulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field hullSearchIndex System.Int32
+---`Field Private Instance`
+---@field bestHullValue System.Single
+---`Field Private Instance`
+---@field bestHullIsAirlock System.Boolean
+---`Field Private Instance`
+---@field potentialBestHull Barotrauma.Hull
+---`Field Private Instance`
+---@field stopWatch System.Diagnostics.Stopwatch
+---`Field Private Static`
+---@field PriorityIncrease System.Single
+---`Field Private Static`
+---@field PriorityDecrease System.Single
+---`Field Private Static`
+---@field SearchHullInterval System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+_G['AIObjectiveFindSafety'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveFindSafety'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFindSafety'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFindSafety'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFindSafety'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveFindSafety'].UpdateSimpleEscape = function(deltaTime) end
+
+---`Method Public Instance`
+---@param bestHull Barotrauma.Hull-ref
+---@param ignoredHulls? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@param allowChangingSubmarine? System.Boolean
+---@return Barotrauma.AIObjectiveFindSafety.HullSearchStatus
+_G['AIObjectiveFindSafety'].FindBestHull = function(bestHull, ignoredHulls, allowChangingSubmarine) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveFindSafety'].Reset = function() end
+
+---`Method Private Instance`
+---@param targetHull Barotrauma.Hull
+---@param minOxygen? System.Single
+---@return System.Boolean
+_G['AIObjectiveFindSafety'].NeedMoreDivingGear = function(targetHull, minOxygen) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindSafety
+_G['AIObjectiveFindSafety'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindSafety
+_G['AIObjectiveFindSafety'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCABA0.lua b/Meta/Types/client/_00007FFD97DCABA0.lua
new file mode 100644
index 0000000..f0c7df7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCABA0.lua
@@ -0,0 +1,69 @@
+---@meta
+---@class Barotrauma.AIObjectiveFixLeak : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field getWeldingTool Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field refuelObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field gotoObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field operateObjective Barotrauma.AIObjectiveOperateItem
+---`Field Public Instance`
+---@field isPriority System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Leak Barotrauma.Gap
+_G['AIObjectiveFixLeak'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveFixLeak'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFixLeak'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFixLeak'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveFixLeak'].Reset = function() end
+
+---`Method Public Static`
+---@param repairTool Barotrauma.Items.Components.RepairTool
+---@param character Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveFixLeak'].CalculateReach = function(repairTool, character) end
+
+---`Constructor Public Instance`
+---@param leak Barotrauma.Gap
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveFixLeak
+_G['AIObjectiveFixLeak'] = function(leak, character, objectiveManager, priorityModifier, isPriority) end
+
+---`Constructor Public Instance`
+---@param leak Barotrauma.Gap
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveFixLeak
+_G['AIObjectiveFixLeak'].__new = function(leak, character, objectiveManager, priorityModifier, isPriority) end
+
diff --git a/Meta/Types/client/_00007FFD97DCAF78.lua b/Meta/Types/client/_00007FFD97DCAF78.lua
new file mode 100644
index 0000000..d1b3950
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCAF78.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.AIObjectiveFixLeaks : Barotrauma.AIObjectiveLoop*1Barotrauma*Gap
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field PrioritizedHull Barotrauma.Hull
+_G['AIObjectiveFixLeaks'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param gap Barotrauma.Gap
+---@return System.Boolean
+_G['AIObjectiveFixLeaks'].IsValidTarget = function(gap) end
+
+---`Method Public Static`
+---@param gap Barotrauma.Gap
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveFixLeaks'].IsValidTarget = function(gap, character) end
+
+---`Method Public Static`
+---@param leak Barotrauma.Gap
+---@return System.Single
+_G['AIObjectiveFixLeaks'].GetLeakSeverity = function(leak) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFixLeaks'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Gap)|(fun():(Barotrauma.Gap))
+_G['AIObjectiveFixLeaks'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param gap Barotrauma.Gap
+---@return Barotrauma.AIObjective
+_G['AIObjectiveFixLeaks'].ObjectiveConstructor = function(gap) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Gap
+_G['AIObjectiveFixLeaks'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedHull? Barotrauma.Hull
+---@return Barotrauma.AIObjectiveFixLeaks
+_G['AIObjectiveFixLeaks'] = function(character, objectiveManager, priorityModifier, prioritizedHull) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedHull? Barotrauma.Hull
+---@return Barotrauma.AIObjectiveFixLeaks
+_G['AIObjectiveFixLeaks'].__new = function(character, objectiveManager, priorityModifier, prioritizedHull) end
+
diff --git a/Meta/Types/client/_00007FFD97DCB7A8.lua b/Meta/Types/client/_00007FFD97DCB7A8.lua
new file mode 100644
index 0000000..5a05fe9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCB7A8.lua
@@ -0,0 +1,215 @@
+---@meta
+---@class Barotrauma.Gap : Barotrauma.MapEntity
+---`Field Private Instance`
+---@field particleTimer System.Single
+---`Field Public Instance`
+---@field GlowEffectT System.Single
+---`Field Private Instance`
+---@field open System.Single
+---`Field Private Instance`
+---@field flowForce Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field flowTargetHull Barotrauma.Hull
+---`Field Private Instance`
+---@field openedTimer System.Single
+---`Field Private Instance`
+---@field higherSurface System.Single
+---`Field Private Instance`
+---@field lowerSurface System.Single
+---`Field Private Instance`
+---@field lerpedFlowForce Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field DisableHullRechecks System.Boolean
+---`Field Public Instance`
+---@field PassAmbientLight System.Boolean
+---`Field Private Instance`
+---@field outsideCollisionBlocker FarseerPhysics.Dynamics.Body
+---`Field Private Instance`
+---@field outsideColliderRaycastTimer System.Single
+---`Field Private Instance`
+---@field wasRoomToRoom System.Boolean
+---`Field Private Instance`
+---@field connectedDoor Barotrauma.Items.Components.Door
+---`Field Public Instance`
+---@field ConnectedWall Barotrauma.Structure
+---`Field Public Instance`
+---@field properties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Field Private Instance`
+---@field updateCount System.Int32
+---`Field Public Static`
+---@field GapList (System.Collections.Generic.List*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Public Static`
+---@field ShowGaps System.Boolean
+---`Field Private Static`
+---@field MaxFlowForce System.Single
+---`Field Private Static`
+---@field OutsideColliderRaycastIntervalLowPrio System.Single
+---`Field Private Static`
+---@field OutsideColliderRaycastIntervalHighPrio System.Single
+---`Getter Public Instance Virtual`
+---@field SelectableInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---@field IsDiagonal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Open System.Single
+---`Getter Public Instance`
+---@field Size System.Single
+---`Getter Public Instance`
+---@field PressureDistributionSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConnectedDoor Barotrauma.Items.Components.Door
+---`Getter Public Instance`
+---@field LerpedFlowForce Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field FlowTargetHull Barotrauma.Hull
+---`Getter Public Instance`
+---@field IsRoomToRoom System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['Gap'] = {}
+
+---`Method Public Instance Virtual`
+---@param worldView Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['Gap'].IsVisible = function(worldView) end
+
+---`Method Public Instance Virtual`
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+_G['Gap'].Draw = function(sb, editing, back) end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+---@param deltaTime System.Single
+_G['Gap'].UpdateEditing = function(cam, deltaTime) end
+
+---`Method Private Instance`
+---@param inGame? System.Boolean
+---@return Barotrauma.GUIComponent
+_G['Gap'].CreateEditingHUD = function(inGame) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Gap'].Clone = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Gap'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Static`
+_G['Gap'].UpdateHulls = function() end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Gap'].IsMouseOn = function(position) end
+
+---`Method Public Instance`
+_G['Gap'].AutoOrient = function() end
+
+---`Method Private Instance`
+_G['Gap'].FindHulls = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Gap'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Gap'].EmitParticles = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param hull1 Barotrauma.Hull
+---@param hull2 Barotrauma.Hull
+_G['Gap'].UpdateRoomToRoom = function(deltaTime, hull1, hull2) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param hull1 Barotrauma.Hull
+_G['Gap'].UpdateRoomToOut = function(deltaTime, hull1) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Gap'].RefreshOutsideCollider = function() end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+_G['Gap'].UpdateOutsideColliderState = function(hull) end
+
+---`Method Private Instance`
+---@param hull1 Barotrauma.Hull
+---@param hull2 Barotrauma.Hull
+---@param deltaTime System.Single
+_G['Gap'].UpdateOxygen = function(hull1, hull2, deltaTime) end
+
+---`Method Public Static`
+---@param gaps (System.Collections.Generic.IEnumerable*1Barotrauma*Gap)|(fun():(Barotrauma.Gap))
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@param allowedOrthogonalDist System.Single
+---@param allowRoomToRoom? System.Boolean
+---@return Barotrauma.Gap
+_G['Gap'].FindAdjacent = function(gaps, worldPos, allowedOrthogonalDist, allowRoomToRoom) end
+
+---`Method Public Instance Virtual`
+_G['Gap'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Gap'].Remove = function() end
+
+---`Method Public Instance Virtual`
+_G['Gap'].OnMapLoaded = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Gap
+_G['Gap'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Gap'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DCC3A0.lua b/Meta/Types/client/_00007FFD97DCC3A0.lua
new file mode 100644
index 0000000..e3c9303
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCC3A0.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.InvSlotType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Any Barotrauma.InvSlotType
+---`Field Public Static`
+---@field RightHand Barotrauma.InvSlotType
+---`Field Public Static`
+---@field LeftHand Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Head Barotrauma.InvSlotType
+---`Field Public Static`
+---@field InnerClothes Barotrauma.InvSlotType
+---`Field Public Static`
+---@field OuterClothes Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Headset Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Card Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Bag Barotrauma.InvSlotType
+---`Field Public Static`
+---@field HealthInterface Barotrauma.InvSlotType
+_G['InvSlotType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DCC718.lua b/Meta/Types/client/_00007FFD97DCC718.lua
new file mode 100644
index 0000000..c252734
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCC718.lua
@@ -0,0 +1,194 @@
+---@meta
+---@class Barotrauma.AIObjectiveGetItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field ignoredItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field GetItemPriority (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---`Field Public Instance`
+---@field ItemFilter (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---`Field Public Instance`
+---@field IdentifiersOrTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field spawnItemIfNotFound System.Boolean
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field originalTarget Barotrauma.Item
+---`Field Private Instance`
+---@field moveToTarget Barotrauma.ISpatialEntity
+---`Field Private Instance`
+---@field isDoneSeeking System.Boolean
+---`Field Private Instance`
+---@field currentSearchIndex System.Int32
+---`Field Public Instance`
+---@field ignoredContainerIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field ignoredIdentifiersOrTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field currItemPriority System.Single
+---`Field Private Instance`
+---@field checkInventory System.Boolean
+---`Field Private Instance`
+---@field _itemCount System.Int32
+---`Field Private Instance`
+---@field sw System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field itemCandidates (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Item*2System*Single)|(System.ValueTuple*1Barotrauma*Item*1System*Single[])
+---`Field Private Instance`
+---@field itemList (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Static`
+---@field DefaultReach System.Single
+---`Field Public Static`
+---@field MaxReach System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDangerousPressure System.Boolean
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowToFindDivingGear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MustBeSpecificItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowStealing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TakeWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowVariants System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Wear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireNonEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EvaluateCombatPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckPathForEachItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeakIfFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CannotFindDialogueIdentifierOverride System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CannotFindDialogueCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EquipSlotType System.Nullable*1Barotrauma*InvSlotType
+---`Getter Private Instance`
+---@field StopWatch System.Diagnostics.Stopwatch
+_G['AIObjectiveGetItem'] = {}
+
+---`Method Public Static`
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['AIObjectiveGetItem'].ParseGearTags = function(identifiersOrTags) end
+
+---`Method Public Static`
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['AIObjectiveGetItem'].ParseIgnoredTags = function(identifiersOrTags) end
+
+---`Method Public Static`
+---@param targetEntity Barotrauma.ISpatialEntity
+---@return (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+_G['AIObjectiveGetItem'].CreateEndNodeFilter = function(targetEntity) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CheckInventory = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CountItems = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveGetItem'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].FindTargetItem = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].HandlePotentialItems = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.ItemPrefab
+_G['AIObjectiveGetItem'].FindItemToSpawn = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CheckObjectiveState = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CheckItem = function(item) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveGetItem'].Reset = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].ResetInternal = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveGetItem'].OnAbandon = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].SpeakCannotFind = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, priorityModifier?:System.Single):Barotrauma.AIObjectiveGetItem
+---@overload fun(character:Barotrauma.Character, identifierOrTag:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, checkInventory?:System.Boolean, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveGetItem
+---@param character Barotrauma.Character
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param equip? System.Boolean
+---@param checkInventory? System.Boolean
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveGetItem
+_G['AIObjectiveGetItem'] = function(character, identifiersOrTags, objectiveManager, equip, checkInventory, priorityModifier, spawnItemIfNotFound) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, priorityModifier?:System.Single):Barotrauma.AIObjectiveGetItem
+---@overload fun(character:Barotrauma.Character, identifierOrTag:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, checkInventory?:System.Boolean, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveGetItem
+---@param character Barotrauma.Character
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param equip? System.Boolean
+---@param checkInventory? System.Boolean
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveGetItem
+_G['AIObjectiveGetItem'].__new = function(character, identifiersOrTags, objectiveManager, equip, checkInventory, priorityModifier, spawnItemIfNotFound) end
+
diff --git a/Meta/Types/client/_00007FFD97DCCD28.lua b/Meta/Types/client/_00007FFD97DCCD28.lua
new file mode 100644
index 0000000..4d0d756
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCCD28.lua
@@ -0,0 +1,85 @@
+---@meta
+---@class Barotrauma.AIObjectiveGetItems : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field ItemFilter (System.Func*1Barotrauma*Item*1Barotrauma*Identifier*1System*Boolean)|(fun(arg1:Barotrauma.Item, arg2:Barotrauma.Identifier):(System.Boolean))
+---`Field Private Instance`
+---@field gearTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field ignoredTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field subObjectivesCreated System.Boolean
+---`Field Public Instance`
+---@field achievedItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowStealing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TakeWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowVariants System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Wear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EvaluateCombatPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckPathForEachItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireNonEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAllItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireDivingSuitAdequate System.Boolean
+_G['AIObjectiveGetItems'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveGetItems'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveGetItems'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveGetItems'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveGetItems
+_G['AIObjectiveGetItems'] = function(character, objectiveManager, identifiersOrTags, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveGetItems
+_G['AIObjectiveGetItems'].__new = function(character, objectiveManager, identifiersOrTags, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCD708.lua b/Meta/Types/client/_00007FFD97DCD708.lua
new file mode 100644
index 0000000..1085b6f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCD708.lua
@@ -0,0 +1,184 @@
+---@meta
+---@class Barotrauma.AIObjectiveGoTo : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field findDivingGear Barotrauma.AIObjectiveFindDivingGear
+---`Field Private Instance`
+---@field repeat System.Boolean
+---`Field Private Instance`
+---@field waitUntilPathUnreachable System.Single
+---`Field Private Instance`
+---@field getDivingGearIfNeeded System.Boolean
+---`Field Public Instance`
+---@field requiredCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Field Public Instance`
+---@field endNodeFilter (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---`Field Public Instance`
+---@field PriorityGetter (System.Func*1System*Single)|(fun():(System.Single))
+---`Field Public Instance`
+---@field IsFollowOrder System.Boolean
+---`Field Public Instance`
+---@field IsWaitOrder System.Boolean
+---`Field Public Instance`
+---@field Mimic System.Boolean
+---`Field Public Instance`
+---@field ExtraDistanceWhileSwimming System.Single
+---`Field Public Instance`
+---@field ExtraDistanceOutsideSub System.Single
+---`Field Private Instance`
+---@field _closeEnoughMultiplier System.Single
+---`Field Private Instance`
+---@field _closeEnough System.Single
+---`Field Private Instance`
+---@field minDistance System.Single
+---`Field Private Instance`
+---@field seekGapsInterval System.Single
+---`Field Private Instance`
+---@field seekGapsTimer System.Single
+---`Field Private Instance`
+---@field cantFindDivingGear System.Boolean
+---`Field Private Instance`
+---@field ExoSuitRefuel Barotrauma.Identifier
+---`Field Private Instance`
+---@field ExoSuitOutOfFuel Barotrauma.Identifier
+---`Field Public Instance`
+---@field OverridePriority System.Nullable*1System*Single
+---`Field Private Instance`
+---@field avoidLookAheadDistance System.Single
+---`Field Private Instance`
+---@field pathWaitingTime System.Single
+---`Field Private Instance`
+---@field useScooter System.Boolean
+---`Field Private Instance`
+---@field checkScooterTimer System.Single
+---`Field Private Instance`
+---@field checkExoSuitTimer System.Single
+---`Field Private Static`
+---@field CheckScooterTime System.Single
+---`Field Private Static`
+---@field CheckExoSuitTime System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeakIfFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DebugLogWhenFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsePathingOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CloseEnoughMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CloseEnough System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreIfTargetDead System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowGoingOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FaceTargetOnCompleted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlwaysUseEuclideanDistance System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseDistanceRelativeToAimSourcePos System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DialogueIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Target Barotrauma.ISpatialEntity
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeakCannotReachCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetGap Barotrauma.Gap
+---`Getter Public Instance`
+---@field IsCloseEnough System.Boolean
+_G['AIObjectiveGoTo'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveGoTo'].GetPriority = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGoTo'].SpeakCannotReach = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveGoTo'].ForceAct = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveGoTo'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@return Barotrauma.Hull
+_G['AIObjectiveGoTo'].GetTargetHull = function() end
+
+---`Method Public Static`
+---@param target Barotrauma.ISpatialEntity
+---@return Barotrauma.Hull
+_G['AIObjectiveGoTo'].GetTargetHull = function(target) end
+
+---`Method Private Instance`
+---@param maxDistance System.Single
+_G['AIObjectiveGoTo'].SeekGaps = function(maxDistance) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveGoTo'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveGoTo'].OnAbandon = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGoTo'].StopMovement = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveGoTo'].OnCompleted = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveGoTo'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param luaKey__repeat? System.Boolean
+---@param getDivingGearIfNeeded? System.Boolean
+---@param priorityModifier? System.Single
+---@param closeEnough? System.Single
+---@return Barotrauma.AIObjectiveGoTo
+_G['AIObjectiveGoTo'] = function(target, character, objectiveManager, luaKey__repeat, getDivingGearIfNeeded, priorityModifier, closeEnough) end
+
+---`Constructor Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param luaKey__repeat? System.Boolean
+---@param getDivingGearIfNeeded? System.Boolean
+---@param priorityModifier? System.Single
+---@param closeEnough? System.Single
+---@return Barotrauma.AIObjectiveGoTo
+_G['AIObjectiveGoTo'].__new = function(target, character, objectiveManager, luaKey__repeat, getDivingGearIfNeeded, priorityModifier, closeEnough) end
+
diff --git a/Meta/Types/client/_00007FFD97DCDD88.lua b/Meta/Types/client/_00007FFD97DCDD88.lua
new file mode 100644
index 0000000..38924f3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCDD88.lua
@@ -0,0 +1,141 @@
+---@meta
+---@class Barotrauma.AIObjectiveIdle : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field behavior Barotrauma.AIObjectiveIdle.BehaviorType
+---`Field Private Instance`
+---@field newTargetIntervalMin System.Single
+---`Field Private Instance`
+---@field newTargetIntervalMax System.Single
+---`Field Private Instance`
+---@field standStillMin System.Single
+---`Field Private Instance`
+---@field standStillMax System.Single
+---`Field Private Instance`
+---@field walkDurationMin System.Single
+---`Field Private Instance`
+---@field walkDurationMax System.Single
+---`Field Private Instance`
+---@field currentTarget Barotrauma.Hull
+---`Field Private Instance`
+---@field newTargetTimer System.Single
+---`Field Private Instance`
+---@field searchingNewHull System.Boolean
+---`Field Private Instance`
+---@field standStillTimer System.Single
+---`Field Private Instance`
+---@field walkDuration System.Single
+---`Field Private Instance`
+---@field tooCloseCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field chairCheckTimer System.Single
+---`Field Private Instance`
+---@field autonomousObjectiveRetryTimer System.Single
+---`Field Private Instance`
+---@field targetHulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field hullWeights (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Public Instance`
+---@field PreferredOutpostModuleTypes (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field timerMargin System.Single
+---`Field Private Instance`
+---@field checkItemsInterval System.Single
+---`Field Private Instance`
+---@field checkItemsTimer System.Single
+---`Field Private Instance`
+---@field itemsToClean (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field ignoredItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field chairCheckInterval System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Behavior Barotrauma.AIObjectiveIdle.BehaviorType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetHull Barotrauma.Hull
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+_G['AIObjectiveIdle'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveIdle'].CheckObjectiveState = function() end
+
+---`Method Public Instance`
+---@param max? System.Single
+_G['AIObjectiveIdle'].CalculatePriority = function(max) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveIdle'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].SetTargetTimerLow = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].SetTargetTimerHigh = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].SetTargetTimerNormal = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveIdle'].IsSteeringFinished = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].Wander = function(deltaTime) end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param waitTime System.Single
+_G['AIObjectiveIdle'].FaceTargetAndWait = function(target, waitTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].FindTargetHulls = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].CleanupItems = function(deltaTime) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@return System.Boolean
+_G['AIObjectiveIdle'].IsForbidden = function(hull) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveIdle'].Reset = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveIdle'].OnDeselected = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveIdle
+_G['AIObjectiveIdle'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveIdle
+_G['AIObjectiveIdle'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCE270.lua b/Meta/Types/client/_00007FFD97DCE270.lua
new file mode 100644
index 0000000..f8463a7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCE270.lua
@@ -0,0 +1,103 @@
+---@meta
+---@class Barotrauma.AIObjectiveOperateItem : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field component Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field controller Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field operateTarget Barotrauma.Entity
+---`Field Private Instance`
+---@field requireEquip System.Boolean
+---`Field Private Instance`
+---@field useController System.Boolean
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Public Instance`
+---@field EndNodeFilter (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---`Field Public Instance`
+---@field completionCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Field Private Instance`
+---@field isDoneOperating System.Boolean
+---`Field Public Instance`
+---@field OverridePriority System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance Virtual`
+---@field PrioritizeIfSubObjectivesActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Override System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Repeat System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+---`Getter Public Instance`
+---@field OperateTarget Barotrauma.Entity
+---`Getter Public Instance`
+---@field Component Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveOperateItem'] = {}
+
+---`Method Public Instance Virtual`
+---@param otherObjective Barotrauma.AIObjectiveOperateItem.T
+---@return System.Boolean
+_G['AIObjectiveOperateItem'].IsDuplicate = function(otherObjective) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveOperateItem'].GetTarget = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveOperateItem'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveOperateItem'].Act = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveOperateItem'].CheckObjectiveState = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveOperateItem'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Items.Components.ItemComponent
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param requireEquip System.Boolean
+---@param operateTarget? Barotrauma.Entity
+---@param useController? System.Boolean
+---@param controller? Barotrauma.Items.Components.ItemComponent
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveOperateItem
+_G['AIObjectiveOperateItem'] = function(item, character, objectiveManager, option, requireEquip, operateTarget, useController, controller, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Items.Components.ItemComponent
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param requireEquip System.Boolean
+---@param operateTarget? Barotrauma.Entity
+---@param useController? System.Boolean
+---@param controller? Barotrauma.Items.Components.ItemComponent
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveOperateItem
+_G['AIObjectiveOperateItem'].__new = function(item, character, objectiveManager, option, requireEquip, operateTarget, useController, controller, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCE8A8.lua b/Meta/Types/client/_00007FFD97DCE8A8.lua
new file mode 100644
index 0000000..5a60f37
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCE8A8.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class Barotrauma.AIObjectivePrepare : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field getSingleItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field getAllItemsObjective Barotrauma.AIObjectiveGetItems
+---`Field Private Instance`
+---@field getMultipleItemsObjective Barotrauma.AIObjectiveGetItems
+---`Field Private Instance`
+---@field subObjectivesCreated System.Boolean
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field requiredItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field optionalItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOnAlsoWhenInactive System.Boolean
+---`Getter Public Instance Virtual`
+---@field PrioritizeIfSubObjectivesActive System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KeepActiveWhenReady System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FindAllItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EvaluateCombatPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireNonEmpty System.Boolean
+_G['AIObjectivePrepare'] = {}
+
+---`Method Private Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjectivePrepare'].GetSubObjective = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectivePrepare'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectivePrepare'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectivePrepare'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectivePrepare'].Reset = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, targetItem:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectivePrepare
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param optionalItems (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param requiredItems? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePrepare
+_G['AIObjectivePrepare'] = function(character, objectiveManager, optionalItems, requiredItems, priorityModifier) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, targetItem:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectivePrepare
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param optionalItems (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param requiredItems? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePrepare
+_G['AIObjectivePrepare'].__new = function(character, objectiveManager, optionalItems, requiredItems, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCEC30.lua b/Meta/Types/client/_00007FFD97DCEC30.lua
new file mode 100644
index 0000000..67a86fc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCEC30.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class Barotrauma.AIObjectivePumpWater : Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*Pump
+---`Field Private Instance`
+---@field pumpList (System.Collections.Generic.List*1Barotrauma*Items*Components*Pump)|(Barotrauma.Items.Components.Pump[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectivePumpWater'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectivePumpWater'].FindTargets = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param pump Barotrauma.Items.Components.Pump
+---@return System.Boolean
+_G['AIObjectivePumpWater'].IsValidTarget = function(pump) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Pump)|(fun():(Barotrauma.Items.Components.Pump))
+_G['AIObjectivePumpWater'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectivePumpWater'].GetTargetPriority = function() end
+
+---`Method Private Instance`
+---@param pump Barotrauma.Items.Components.Pump
+---@return System.Boolean
+_G['AIObjectivePumpWater'].IsReady = function(pump) end
+
+---`Method NonPublic Instance Virtual`
+---@param pump Barotrauma.Items.Components.Pump
+---@return Barotrauma.AIObjective
+_G['AIObjectivePumpWater'].ObjectiveConstructor = function(pump) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Items.Components.Pump
+_G['AIObjectivePumpWater'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePumpWater
+_G['AIObjectivePumpWater'] = function(character, objectiveManager, option, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePumpWater
+_G['AIObjectivePumpWater'].__new = function(character, objectiveManager, option, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DCF278.lua b/Meta/Types/client/_00007FFD97DCF278.lua
new file mode 100644
index 0000000..f17862e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCF278.lua
@@ -0,0 +1,127 @@
+---@meta
+---@class Barotrauma.Items.Components.Pump : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field pumpSpeedSlider Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field powerLight Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field autoControlIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field pumpOutEmitters (System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Vector2*2Barotrauma*Particles*ParticleEmitter)|(System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Barotrauma*Particles*ParticleEmitter[])
+---`Field Private Instance`
+---@field pumpInEmitters (System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Vector2*2Barotrauma*Particles*ParticleEmitter)|(System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Barotrauma*Particles*ParticleEmitter[])
+---`Field Private Instance`
+---@field flickerTimer System.Single
+---`Field Private Instance`
+---@field flickerFrequency System.Single
+---`Field Private Instance`
+---@field flowPercentage System.Single
+---`Field Private Instance`
+---@field maxFlow System.Single
+---`Field Public Instance`
+---@field TargetLevel System.Nullable*1System*Single
+---`Field Private Instance`
+---@field hijacked System.Boolean
+---`Field Private Instance`
+---@field pumpSpeedLockTimer System.Single
+---`Field Private Instance`
+---@field isActiveLockTimer System.Single
+---`Field Private Instance`
+---@field currFlow System.Single
+---`Field Private Static`
+---@field TinkeringSpeedIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PowerButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hijacked System.Boolean
+---`Getter Public Instance`
+---@field CurrentBrokenVolume System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxFlow System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOn System.Boolean
+---`Getter Public Instance`
+---@field CurrFlow System.Single
+---`Getter Public Instance Virtual`
+---@field HasPower System.Boolean
+---`Getter Public Instance`
+---@field IsAutoControlled System.Boolean
+---`Getter Public Instance Virtual`
+---@field UpdateWhenInactive System.Boolean
+---`Getter Public Instance Virtual`
+---@field CurrentStress System.Single
+_G['Components']['Pump'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['Pump'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Pump'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Pump'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Pump'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Pump'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Pump'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param allowMultiplePerShip? System.Boolean
+_G['Components']['Pump'].InfectBallast = function(identifier, allowMultiplePerShip) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Pump'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Pump'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Pump'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Pump'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pump
+_G['Components']['Pump'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pump
+_G['Components']['Pump'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DCF978.lua b/Meta/Types/client/_00007FFD97DCF978.lua
new file mode 100644
index 0000000..033235b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DCF978.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class Barotrauma.AIObjectiveRepairItem : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field refuelObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field repairTool Barotrauma.Items.Components.RepairTool
+---`Field Private Instance`
+---@field waitTimer System.Single
+---`Field Private Instance`
+---@field isPriority System.Boolean
+---`Field Private Instance`
+---@field conditionCheckTimer System.Single
+---`Field Private Instance`
+---@field previousCondition System.Single
+---`Field Private Static`
+---@field WaitTimeBeforeRepair System.Single
+---`Field Private Static`
+---@field conditionCheckDelay System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Item Barotrauma.Item
+_G['AIObjectiveRepairItem'] = {}
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveRepairItem'].IsRepairing = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveRepairItem'].IsRepairing = function(character, item) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRepairItem'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveRepairItem'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveRepairItem'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveRepairItem'].CheckPreviousCondition = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveRepairItem'].FindRepairTool = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveRepairItem'].OperateRepairTool = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveRepairItem'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveRepairItem
+_G['AIObjectiveRepairItem'] = function(character, item, objectiveManager, priorityModifier, isPriority) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveRepairItem
+_G['AIObjectiveRepairItem'].__new = function(character, item, objectiveManager, priorityModifier, isPriority) end
+
diff --git a/Meta/Types/client/_00007FFD97DD0068.lua b/Meta/Types/client/_00007FFD97DD0068.lua
new file mode 100644
index 0000000..476cbe6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD0068.lua
@@ -0,0 +1,90 @@
+---@meta
+---@class Barotrauma.AIObjectiveRepairItems : Barotrauma.AIObjectiveLoop*1Barotrauma*Item
+---`Field Public Instance`
+---@field RelevantSkill Barotrauma.Identifier
+---`Field Public Static`
+---@field RequiredSuccessFactor System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PrioritizedItem Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+_G['AIObjectiveRepairItems'] = {}
+
+---`Method Public Instance Virtual`
+---@param otherObjective Barotrauma.AIObjectiveRepairItems.T
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].IsDuplicate = function(otherObjective) end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveRepairItems'].CreateObjectives = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].IsValidTarget = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].IsValidTarget = function(item, character) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param humanAIController Barotrauma.HumanAIController
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].ViableForRepair = function(item, character, humanAIController) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].NearlyFullCondition = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRepairItems'].GetTargetPriority = function() end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param requiredSuccessFactor? System.Single
+---@return System.Single
+_G['AIObjectiveRepairItems'].GetTargetPriority = function(item, character, requiredSuccessFactor) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AIObjectiveRepairItems'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@return Barotrauma.AIObjective
+_G['AIObjectiveRepairItems'].ObjectiveConstructor = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Item
+_G['AIObjectiveRepairItems'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedItem? Barotrauma.Item
+---@return Barotrauma.AIObjectiveRepairItems
+_G['AIObjectiveRepairItems'] = function(character, objectiveManager, priorityModifier, prioritizedItem) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedItem? Barotrauma.Item
+---@return Barotrauma.AIObjectiveRepairItems
+_G['AIObjectiveRepairItems'].__new = function(character, objectiveManager, priorityModifier, prioritizedItem) end
+
diff --git a/Meta/Types/client/_00007FFD97DD0738.lua b/Meta/Types/client/_00007FFD97DD0738.lua
new file mode 100644
index 0000000..6d5d64e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD0738.lua
@@ -0,0 +1,112 @@
+---@meta
+---@class Barotrauma.AIObjectiveRescue : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field Target Barotrauma.Character
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field replaceOxygenObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field treatmentTimer System.Single
+---`Field Private Instance`
+---@field safeHull Barotrauma.Hull
+---`Field Private Instance`
+---@field findHullTimer System.Single
+---`Field Private Instance`
+---@field ignoreOxygen System.Boolean
+---`Field Private Instance`
+---@field findHullInterval System.Single
+---`Field Private Instance`
+---@field performedCpr System.Boolean
+---`Field Private Instance`
+---@field suitableItemIdentifiers (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field itemNameList (System.Collections.Generic.List*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field currentTreatmentSuitabilities (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Static`
+---@field TreatmentDelay System.Single
+---`Field Private Static`
+---@field CloseEnoughToTreat System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectiveRescue'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveRescue'].OnAbandon = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveRescue'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveRescue'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveRescue'].GiveTreatment = function(deltaTime) end
+
+---`Method Public Static`
+---@overload fun(inventory:Barotrauma.Inventory, itemIdentifier:Barotrauma.Identifier):(Barotrauma.Item)
+---@param inventory Barotrauma.Inventory
+---@param predicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@return Barotrauma.Item
+_G['AIObjectiveRescue'].FindMedicalItem = function(inventory, predicate) end
+
+---`Method Private Instance`
+_G['AIObjectiveRescue'].SpeakCannotTreat = function() end
+
+---`Method Private Instance`
+---@param affliction Barotrauma.Affliction
+---@param item Barotrauma.Item
+_G['AIObjectiveRescue'].ApplyTreatment = function(affliction, item) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveRescue'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRescue'].GetPriority = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param excludeBuffs? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['AIObjectiveRescue'].GetSortedAfflictions = function(character, excludeBuffs) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveRescue'].Reset = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveRescue'].OnDeselected = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetCharacter Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescue
+_G['AIObjectiveRescue'] = function(character, targetCharacter, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetCharacter Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescue
+_G['AIObjectiveRescue'].__new = function(character, targetCharacter, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DD0B38.lua b/Meta/Types/client/_00007FFD97DD0B38.lua
new file mode 100644
index 0000000..aaa9936
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD0B38.lua
@@ -0,0 +1,89 @@
+---@meta
+---@class Barotrauma.AIObjectiveRescueAll : Barotrauma.AIObjectiveLoop*1Barotrauma*Character
+---`Field Private Instance`
+---@field charactersWithMinorInjuries (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Static`
+---@field vitalityThreshold System.Single
+---`Field Private Static`
+---@field vitalityThresholdForOrders System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field InverseTargetPriority System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveRescueAll'] = {}
+
+---`Method Public Static`
+---@param manager Barotrauma.AIObjectiveManager
+---@param character Barotrauma.Character
+---@param target Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveRescueAll'].GetVitalityThreshold = function(manager, character, target) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveRescueAll'].IsValidTarget = function(target) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@param ignoredAsMinorWounds System.Boolean-ref
+---@return System.Boolean
+_G['AIObjectiveRescueAll'].IsValidTarget = function(target, character, ignoredAsMinorWounds) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['AIObjectiveRescueAll'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRescueAll'].GetTargetPriority = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveRescueAll'].GetVitalityFactor = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param ignoreTreatmentThreshold System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['AIObjectiveRescueAll'].GetTreatableAfflictions = function(character, ignoreTreatmentThreshold) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return Barotrauma.AIObjective
+_G['AIObjectiveRescueAll'].ObjectiveConstructor = function(target) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Character
+_G['AIObjectiveRescueAll'].OnObjectiveCompleted = function(objective, target) end
+
+---`Method Private Static`
+---@param target Barotrauma.Character
+---@param humanAI Barotrauma.HumanAIController
+---@return System.Boolean
+_G['AIObjectiveRescueAll'].IsValidTargetForAI = function(target, humanAI) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescueAll
+_G['AIObjectiveRescueAll'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescueAll
+_G['AIObjectiveRescueAll'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DD0FD0.lua b/Meta/Types/client/_00007FFD97DD0FD0.lua
new file mode 100644
index 0000000..3ac733c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD0FD0.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.AIObjectiveReturn : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field moveInsideObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field moveOutsideObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field usingEscapeBehavior System.Boolean
+---`Field Private Instance`
+---@field isSteeringThroughGap System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Target Barotrauma.Submarine
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveReturn'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveReturn'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveReturn'].Act = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveReturn'].CheckObjectiveState = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveReturn'].Reset = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveReturn'].OnAbandon = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param orderGiver Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveReturn
+_G['AIObjectiveReturn'] = function(character, orderGiver, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param orderGiver Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveReturn
+_G['AIObjectiveReturn'].__new = function(character, orderGiver, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/client/_00007FFD97DD2788.lua b/Meta/Types/client/_00007FFD97DD2788.lua
new file mode 100644
index 0000000..0b7ce8b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD2788.lua
@@ -0,0 +1,516 @@
+---@meta
+---@class Barotrauma.Limb : System.Object
+---`Field Public Instance`
+---@field LastAttackSoundTime System.Single
+---`Field Public Instance`
+---@field LastImpactSoundTime System.Single
+---`Field Private Instance`
+---@field wetTimer System.Single
+---`Field Private Instance`
+---@field dripParticleTimer System.Single
+---`Field Private Instance`
+---@field deadTimer System.Single
+---`Field Private Instance`
+---@field randomColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Instance`
+---@field tintEffectParams Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams
+---`Field Private Instance`
+---@field huskSpriteParams Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams
+---`Field NonPublic Instance`
+---@field _deformSprite Barotrauma.DeformableSprite
+---`Field Private Instance`
+---@field spriteAnimState (System.Collections.Generic.Dictionary*1Barotrauma*DecorativeSprite*1Barotrauma*Limb*SpriteState)|({[Barotrauma.DecorativeSprite]:(Barotrauma.Limb.SpriteState)})
+---`Field Private Instance`
+---@field DecorativeSpriteGroups (System.Collections.Generic.Dictionary*1System*Int32*1System*Collections*Generic*List*2Barotrauma*DecorativeSprite)|({[System.Int32]:((System.Collections.Generic.List*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[]))})
+---`Field Private Instance`
+---@field damageOverlayStrength System.Single
+---`Field Private Instance`
+---@field burnOverLayStrength System.Single
+---`Field Private Instance`
+---@field wearableTypeHidingSprites (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Private Instance`
+---@field wearableTypesToHide (System.Collections.Generic.HashSet*1Barotrauma*WearableType)|(Barotrauma.WearableType[])
+---`Field Private Instance`
+---@field enableHuskSprite System.Boolean
+---`Field Private Instance`
+---@field _texturePath System.String
+---`Field Private Instance`
+---@field _damagedTexturePath System.String
+---`Field Private Instance`
+---@field alphaClipEffectParams (System.Collections.Generic.Dictionary*1Barotrauma*WearableSprite*1System*Collections*Generic*Dictionary*2System*String*2System*Object)|({[Barotrauma.WearableSprite]:((System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)}))})
+---`Field Public Instance`
+---@field character Barotrauma.Character
+---`Field Public Instance`
+---@field ragdoll Barotrauma.Ragdoll
+---`Field Public Instance`
+---@field Params Barotrauma.RagdollParams.LimbParams
+---`Field Public Instance`
+---@field body Barotrauma.PhysicsBody
+---`Field Public Instance`
+---@field Hull Barotrauma.Hull
+---`Field Private Instance`
+---@field pullJoint FarseerPhysics.Dynamics.Joints.FixedMouseJoint
+---`Field Public Instance`
+---@field type Barotrauma.LimbType
+---`Field Private Instance`
+---@field ignoreCollisions System.Boolean
+---`Field Private Instance`
+---@field isSevered System.Boolean
+---`Field Private Instance`
+---@field severedFadeOutTimer System.Single
+---`Field Private Instance`
+---@field mouthPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field attack Barotrauma.Attack
+---`Field Private Instance`
+---@field dir Barotrauma.Direction
+---`Field Public Instance`
+---@field DebugTargetPos Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field DebugRefPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _hidden System.Boolean
+---`Field Private Instance`
+---@field _alpha System.Single
+---`Field Public Instance`
+---@field WearingItems (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Public Instance`
+---@field OtherWearables (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field appliedDamageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Field Private Instance`
+---@field tempModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Field Private Instance`
+---@field afflictionsCopy (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field temporarilyDisabled System.Boolean
+---`Field Private Instance`
+---@field reEnableTimer System.Single
+---`Field Private Instance`
+---@field originalIgnoreCollisions System.Boolean
+---`Field Private Instance`
+---@field contactBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field attachJoint FarseerPhysics.Dynamics.Joints.WeldJoint
+---`Field Private Instance`
+---@field colliderJoint FarseerPhysics.Dynamics.Joints.WeldJoint
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Public Instance`
+---@field FreezeBlinkState System.Boolean
+---`Field Private Static`
+---@field alphaClipEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Field Public Static`
+---@field SoundInterval System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Deformations (System.Collections.Generic.List*1Barotrauma*SpriteDeformations*SpriteDeformation)|(Barotrauma.SpriteDeformations.SpriteDeformation[])
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field NonConditionalDeformations (System.Collections.Generic.List*1Barotrauma*SpriteDeformations*SpriteDeformation)|(Barotrauma.SpriteDeformations.SpriteDeformation[])
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ConditionalDeformations (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*ConditionalSprite*2System*Collections*Generic*IEnumerable*3Barotrauma*SpriteDeformations*SpriteDeformation)|(System.ValueTuple*1Barotrauma*ConditionalSprite*1System*Collections*Generic*IEnumerable*2Barotrauma*SpriteDeformations*SpriteDeformation[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ActiveDeformations (System.Collections.Generic.List*1Barotrauma*SpriteDeformations*SpriteDeformation)|(Barotrauma.SpriteDeformations.SpriteDeformation[])
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field TintMask Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field HuskMask Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field TintHighlightThreshold System.Single
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field TintHighlightMultiplier System.Single
+---`Getter Public Instance`
+---@field DeformSprite Barotrauma.DeformableSprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DecorativeSprites (System.Collections.Generic.List*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])
+---`Getter Public Instance`
+---@field ActiveSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DefaultSpriteDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HairWithHatSprite Barotrauma.WearableSprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HuskSprite Barotrauma.WearableSprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HerpesSprite Barotrauma.WearableSprite
+---`Getter Public Instance`
+---@field TextureScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConditionalSprites (System.Collections.Generic.List*1Barotrauma*ConditionalSprite)|(Barotrauma.ConditionalSprite[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InitialLightSourceColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InitialLightSpriteAlpha System.Nullable*1System*Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LightSource Barotrauma.Lights.LightSource
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageOverlayStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BurnOverlayStrength System.Single
+---`Getter Public Instance`
+---@field HitSoundTag System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableHuskSprite System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SeveredFadeOutTime System.Single
+---`Getter Public Instance`
+---@field StepOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreCollisions System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MouthPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Getter Public Instance`
+---@field HealthIndex System.Int32
+---`Getter Public Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---@field AttackPriority System.Single
+---`Getter Public Instance`
+---@field DoesFlip System.Boolean
+---`Getter Public Instance`
+---@field DoesMirror System.Boolean
+---`Getter Public Instance`
+---@field SteerForce System.Single
+---`Getter Public Instance`
+---@field IsLowerBody System.Boolean
+---`Getter Public Instance`
+---@field IsLeg System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsSevered System.Boolean
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hidden System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hide System.Boolean
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AnimTargetPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Disabled System.Boolean
+---`Getter Public Instance`
+---@field LinearVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Dir System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Alpha System.Single
+---`Getter Public Instance`
+---@field RefJointIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointMaxForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointWorldAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointWorldAnchorB Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field PullJointLocalAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttachedRope Barotrauma.Items.Components.Rope
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field IsDead System.Boolean
+---`Getter Public Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---@field HealthPercentage System.Single
+---`Getter Public Instance`
+---@field IsHuman System.Boolean
+---`Getter Public Instance`
+---@field AIState Barotrauma.AIState
+---`Getter Public Instance`
+---@field IsFlipped System.Boolean
+---`Getter Public Instance`
+---@field CanBeSeveredAlive System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---@field StatusEffects (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Getter Public Instance`
+---@field IsStuck System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BlinkTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BlinkPhase System.Single
+---`Getter Private Instance`
+---@field TotalBlinkDurationOut System.Single
+_G['Limb'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Limb'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param force System.Single
+---@param pullFromCenter? System.Boolean
+_G['Limb'].MoveToPos = function(pos, force, pullFromCenter) end
+
+---`Method Public Instance`
+_G['Limb'].MirrorPullJoint = function() end
+
+---`Method Public Instance`
+---@overload fun(simPosition:Microsoft.Xna.Framework.Vector2, damage:System.Single, bleedingDamage:System.Single, burnDamage:System.Single, playSound:System.Boolean):(Barotrauma.AttackResult)
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param playSound System.Boolean
+---@param damageMultiplier? System.Single
+---@param penetration? System.Single
+---@param attacker? Barotrauma.Character
+---@return Barotrauma.AttackResult
+_G['Limb'].AddDamage = function(simPosition, afflictions, playSound, damageMultiplier, penetration, attacker) end
+
+---`Method Private Instance`
+---@param playSound System.Boolean
+---@param result Barotrauma.AttackResult
+_G['Limb'].AddDamageProjSpecific = function(playSound, result) end
+
+---`Method Public Instance`
+---@param armorSector Microsoft.Xna.Framework.Vector2
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Limb'].SectorHit = function(armorSector, simPosition) end
+
+---`Method NonPublic Instance`
+---@param armorSector Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['Limb'].GetArmorSectorSize = function(armorSector) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Limb'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param duration? System.Single
+---@param ignoreCollisions? System.Boolean
+_G['Limb'].HideAndDisable = function(duration, ignoreCollisions) end
+
+---`Method Public Instance`
+_G['Limb'].ReEnable = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Limb'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param attackSimPos Microsoft.Xna.Framework.Vector2
+---@param damageTarget Barotrauma.IDamageable
+---@param attackResult Barotrauma.AttackResult-ref
+---@param distance? System.Single
+---@param targetLimb? Barotrauma.Limb
+---@return System.Boolean
+_G['Limb'].UpdateAttack = function(deltaTime, attackSimPos, damageTarget, attackResult, distance, targetLimb) end
+
+---`Method Public Instance`
+---@param damageTarget Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param attackResult Barotrauma.AttackResult-ref
+_G['Limb'].ExecuteAttack = function(damageTarget, targetLimb, attackResult) end
+
+---`Method Private Instance`
+---@param target FarseerPhysics.Dynamics.Body
+---@param from Microsoft.Xna.Framework.Vector2
+---@param to Microsoft.Xna.Framework.Vector2
+_G['Limb'].StickTo = function(target, from, to) end
+
+---`Method Public Instance`
+_G['Limb'].Release = function() end
+
+---`Method Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param deltaTime System.Single
+_G['Limb'].ApplyStatusEffects = function(actionType, deltaTime) end
+
+---`Method Public Instance`
+_G['Limb'].Blink = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param referenceRotation System.Single
+_G['Limb'].UpdateBlink = function(deltaTime, referenceRotation) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*LimbJoint)|(fun():(Barotrauma.LimbJoint))
+_G['Limb'].GetConnectedJoints = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Limb)|(fun():(Barotrauma.Limb))
+_G['Limb'].GetConnectedLimbs = function() end
+
+---`Method Public Instance`
+_G['Limb'].Remove = function() end
+
+---`Method Private Instance`
+_G['Limb'].RemoveProjSpecific = function() end
+
+---`Method Public Instance`
+_G['Limb'].LoadParams = function() end
+
+---`Method Private Instance`
+_G['Limb'].LoadParamsProjSpecific = function() end
+
+---`Method Public Instance`
+---@param excludeConditionalSprites? System.Boolean
+---@return Barotrauma.Sprite
+_G['Limb'].GetActiveSprite = function(excludeConditionalSprites) end
+
+---`Method Public Instance`
+_G['Limb'].LoadHuskSprite = function() end
+
+---`Method Public Instance`
+_G['Limb'].LoadHerpesSprite = function() end
+
+---`Method Private Instance`
+_G['Limb'].RefreshDeformations = function() end
+
+---`Method Public Instance`
+_G['Limb'].RecreateSprites = function() end
+
+---`Method Private Instance`
+---@param sprite Barotrauma.Sprite
+_G['Limb'].CalculateHeadPosition = function(sprite) end
+
+---`Method Private Instance`
+---@overload fun(element:Barotrauma.ContentXElement, spriteParams:Barotrauma.RagdollParams.SpriteParams, path:System.String-ref):(System.String)
+---@param texturePath Barotrauma.ContentPath
+---@return System.String
+_G['Limb'].GetSpritePath = function(texturePath) end
+
+---`Method Public Static`
+---@param texturePath Barotrauma.ContentPath
+---@param characterInfo Barotrauma.CharacterInfo
+---@return System.String
+_G['Limb'].GetSpritePath = function(texturePath, characterInfo) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param disableDeformations? System.Boolean
+_G['Limb'].Draw = function(spriteBatch, cam, overrideColor, disableDeformations) end
+
+---`Method Public Instance`
+_G['Limb'].UpdateWearableTypesToHide = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Limb'].UpdateSpriteStates = function(deltaTime) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param startPos Microsoft.Xna.Framework.Vector2
+---@param isScreenSpace System.Boolean
+_G['Limb'].DrawDamageModifiers = function(spriteBatch, cam, startPos, isScreenSpace) end
+
+---`Method Private Instance`
+---@param wearable Barotrauma.WearableSprite
+---@param depthStep System.Single
+---@param color Microsoft.Xna.Framework.Color
+---@param alpha System.Single
+---@return System.ValueTuple*1Microsoft*Xna*Framework*Color*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single*1System*Single
+_G['Limb'].CalculateDrawParameters = function(wearable, depthStep, color, alpha) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param wearable Barotrauma.WearableSprite
+---@param alphaClipper Barotrauma.WearableSprite
+---@param spriteEffect Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['Limb'].ApplyAlphaClip = function(spriteBatch, wearable, alphaClipper, spriteEffect) end
+
+---`Method Private Instance`
+---@param wearable Barotrauma.WearableSprite
+---@param depthStep System.Single
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param color Microsoft.Xna.Framework.Color
+---@param alpha System.Single
+---@param spriteEffect Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['Limb'].DrawWearable = function(wearable, depthStep, spriteBatch, color, alpha, spriteEffect) end
+
+---`Method Private Instance`
+---@param type Barotrauma.WearableType
+---@return Barotrauma.WearableSprite
+_G['Limb'].GetWearableSprite = function(type) end
+
+---`Constructor Public Instance`
+---@param ragdoll Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param limbParams Barotrauma.RagdollParams.LimbParams
+---@return Barotrauma.Limb
+_G['Limb'] = function(ragdoll, character, limbParams) end
+
+---`Constructor Public Instance`
+---@param ragdoll Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param limbParams Barotrauma.RagdollParams.LimbParams
+---@return Barotrauma.Limb
+_G['Limb'].__new = function(ragdoll, character, limbParams) end
+
diff --git a/Meta/Types/client/_00007FFD97DD2C10.lua b/Meta/Types/client/_00007FFD97DD2C10.lua
new file mode 100644
index 0000000..07b38ee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD2C10.lua
@@ -0,0 +1,85 @@
+---@meta
+---@class Barotrauma.LimbJoint : System.Object
+---`Field Public Instance`
+---@field IsSevered System.Boolean
+---`Field Public Instance`
+---@field Params Barotrauma.RagdollParams.JointParams
+---`Field Public Instance`
+---@field ragdoll Barotrauma.Ragdoll
+---`Field Public Instance`
+---@field LimbA Barotrauma.Limb
+---`Field Public Instance`
+---@field LimbB Barotrauma.Limb
+---`Field Public Instance`
+---@field revoluteJoint FarseerPhysics.Dynamics.Joints.RevoluteJoint
+---`Field Public Instance`
+---@field weldJoint FarseerPhysics.Dynamics.Joints.WeldJoint
+---`Getter Public Instance`
+---@field CanBeSevered System.Boolean
+---`Getter Public Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---@field Joint FarseerPhysics.Dynamics.Joints.Joint
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---@field BodyA FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---@field BodyB FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WorldAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WorldAnchorB Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LocalAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LocalAnchorB Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimitEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LowerLimit System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UpperLimit System.Single
+---`Getter Public Instance`
+---@field JointAngle System.Single
+_G['LimbJoint'] = {}
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['LimbJoint'].UpdateDeformations = function(deltaTime) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['LimbJoint'].Draw = function(spriteBatch) end
+
+---`Method Public Instance`
+_G['LimbJoint'].LoadParams = function() end
+
+---`Constructor Public Instance`
+---@overload fun(limbA:Barotrauma.Limb, limbB:Barotrauma.Limb, jointParams:Barotrauma.RagdollParams.JointParams, ragdoll:Barotrauma.Ragdoll):Barotrauma.LimbJoint
+---@param limbA Barotrauma.Limb
+---@param limbB Barotrauma.Limb
+---@param anchor1 Microsoft.Xna.Framework.Vector2
+---@param anchor2 Microsoft.Xna.Framework.Vector2
+---@param weld? System.Boolean
+---@return Barotrauma.LimbJoint
+_G['LimbJoint'] = function(limbA, limbB, anchor1, anchor2, weld) end
+
+---`Constructor Public Instance`
+---@overload fun(limbA:Barotrauma.Limb, limbB:Barotrauma.Limb, jointParams:Barotrauma.RagdollParams.JointParams, ragdoll:Barotrauma.Ragdoll):Barotrauma.LimbJoint
+---@param limbA Barotrauma.Limb
+---@param limbB Barotrauma.Limb
+---@param anchor1 Microsoft.Xna.Framework.Vector2
+---@param anchor2 Microsoft.Xna.Framework.Vector2
+---@param weld? System.Boolean
+---@return Barotrauma.LimbJoint
+_G['LimbJoint'].__new = function(limbA, limbB, anchor1, anchor2, weld) end
+
diff --git a/Meta/Types/client/_00007FFD97DD2DE8.lua b/Meta/Types/client/_00007FFD97DD2DE8.lua
new file mode 100644
index 0000000..ad1240a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD2DE8.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Items.Components.LimbPos : System.Object
+---`Field Public Instance`
+---@field AllowUsingLimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimbType Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['Components']['LimbPos'] = {}
+
+---`Constructor Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param position Microsoft.Xna.Framework.Vector2
+---@param allowUsingLimb System.Boolean
+---@return Barotrauma.Items.Components.LimbPos
+_G['Components']['LimbPos'] = function(limbType, position, allowUsingLimb) end
+
+---`Constructor Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param position Microsoft.Xna.Framework.Vector2
+---@param allowUsingLimb System.Boolean
+---@return Barotrauma.Items.Components.LimbPos
+_G['Components']['LimbPos'].__new = function(limbType, position, allowUsingLimb) end
+
diff --git a/Meta/Types/client/_00007FFD97DD40A0.lua b/Meta/Types/client/_00007FFD97DD40A0.lua
new file mode 100644
index 0000000..761033b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD40A0.lua
@@ -0,0 +1,535 @@
+---@meta
+---@class Barotrauma.Ragdoll : System.Object
+---`Field NonPublic Instance`
+---@field inversedLimbDrawOrder (Barotrauma.Limb-arr)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1Barotrauma*Ragdoll*Impact)|(fun():(Barotrauma.Ragdoll.Impact))
+---`Field NonPublic Instance`
+---@field currentHull Barotrauma.Hull
+---`Field Private Instance`
+---@field accessRemovedCharacterErrorShown System.Boolean
+---`Field Private Instance`
+---@field limbs (Barotrauma.Limb-arr)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field frozen System.Boolean
+---`Field Private Instance`
+---@field limbDictionary (System.Collections.Generic.Dictionary*1Barotrauma*LimbType*1Barotrauma*Limb)|({[Barotrauma.LimbType]:(Barotrauma.Limb)})
+---`Field Public Instance`
+---@field LimbJoints (Barotrauma.LimbJoint-arr)|(Barotrauma.LimbJoint[])
+---`Field Private Instance`
+---@field simplePhysicsEnabled System.Boolean
+---`Field NonPublic Instance`
+---@field character Barotrauma.Character
+---`Field NonPublic Instance`
+---@field strongestImpact System.Single
+---`Field Private Instance`
+---@field splashSoundTimer System.Single
+---`Field Private Instance`
+---@field flowForceTolerance System.Single
+---`Field Private Instance`
+---@field flowStunTolerance System.Single
+---`Field Public Instance`
+---@field movement Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field targetMovement Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field overrideTargetMovement Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field floorY System.Single
+---`Field NonPublic Instance`
+---@field standOnFloorY System.Single
+---`Field NonPublic Instance`
+---@field floorFixture FarseerPhysics.Dynamics.Fixture
+---`Field NonPublic Instance`
+---@field floorNormal Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field surfaceY System.Single
+---`Field NonPublic Instance`
+---@field inWater System.Boolean
+---`Field NonPublic Instance`
+---@field headInWater System.Boolean
+---`Field NonPublic Instance`
+---@field onGround System.Boolean
+---`Field Private Instance`
+---@field lastFloorCheckPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lastFloorCheckIgnoreStairs System.Boolean
+---`Field Private Instance`
+---@field lastFloorCheckIgnorePlatforms System.Boolean
+---`Field Public Instance`
+---@field Stairs Barotrauma.Structure
+---`Field NonPublic Instance`
+---@field dir Barotrauma.Direction
+---`Field Public Instance`
+---@field TargetDir Barotrauma.Direction
+---`Field NonPublic Instance`
+---@field collider (System.Collections.Generic.List*1Barotrauma*PhysicsBody)|(Barotrauma.PhysicsBody[])
+---`Field NonPublic Instance`
+---@field colliderIndex System.Int32
+---`Field Private Instance`
+---@field prevCollisionCategory FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field impactTolerance System.Nullable*1System*Single
+---`Field Private Instance`
+---@field connectedLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field checkedJoints (System.Collections.Generic.List*1Barotrauma*LimbJoint)|(Barotrauma.LimbJoint[])
+---`Field NonPublic Instance`
+---@field levitatingCollider System.Boolean
+---`Field Private Instance`
+---@field bodyInRestTimer System.Single
+---`Field Private Instance`
+---@field BodyInRestDelay System.Single
+---`Field Public Instance`
+---@field forceStanding System.Boolean
+---`Field Public Instance`
+---@field forceNotStanding System.Boolean
+---`Field Private Instance`
+---@field validityResets System.Int32
+---`Field Private Instance`
+---@field floorYCheckTimer System.Single
+---`Field NonPublic Instance`
+---@field shouldHoldToRope System.Boolean
+---`Field NonPublic Instance`
+---@field shouldHangWithRope System.Boolean
+---`Field NonPublic Instance`
+---@field shouldBeDraggedWithRope System.Boolean
+---`Field Private Instance`
+---@field collisionsDisabled System.Boolean
+---`Field Private Instance`
+---@field lastObstacleRayCastTime System.Double
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Ragdoll)|(Barotrauma.Ragdoll[])
+---`Field Private Static`
+---@field ImpactDamageMultiplayer System.Single
+---`Field Private Static`
+---@field MaxImpactDamage System.Single
+---`Field Public Static`
+---@field MAX_SPEED System.Single
+---`Field Private Static`
+---@field FloorYStaleTime System.Single
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SpriteDeformations (System.Collections.Generic.HashSet*1Barotrauma*SpriteDeformations*SpriteDeformation)|(Barotrauma.SpriteDeformations.SpriteDeformation[])
+---`Getter Public Instance Abstract Virtual`
+---
`Setter NonPublic Instance Abstract Virtual`
+---@field RagdollParams Barotrauma.RagdollParams
+---`Getter Public Instance`
+---@field Limbs (Barotrauma.Limb-arr)|(Barotrauma.Limb[])
+---`Getter Public Instance`
+---@field HasMultipleLimbsOfSameType System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Frozen System.Boolean
+---`Getter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---@field OnGround System.Boolean
+---`Getter Public Instance`
+---@field ColliderHeightFromFloor System.Single
+---`Getter Public Instance`
+---@field IsStuck System.Boolean
+---`Getter Public Instance`
+---@field Collider Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ColliderIndex System.Int32
+---`Getter Public Instance`
+---@field FloorY System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---@field MainLimb Barotrauma.Limb
+---`Getter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SimplePhysicsEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetMovement Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Abstract Virtual`
+---@field HeadPosition System.Nullable*1System*Single
+---`Getter Public Instance Abstract Virtual`
+---@field HeadAngle System.Nullable*1System*Single
+---`Getter Public Instance Abstract Virtual`
+---@field TorsoPosition System.Nullable*1System*Single
+---`Getter Public Instance Abstract Virtual`
+---@field TorsoAngle System.Nullable*1System*Single
+---`Getter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---@field Draggable System.Boolean
+---`Getter Public Instance`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance`
+---@field Dir System.Single
+---`Getter Public Instance`
+---@field Direction Barotrauma.Direction
+---`Getter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---@field HeadInWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnorePlatforms System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsFlipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyInRest System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Invalid System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHoldingToRope System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHangingWithRope System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsDraggedWithRope System.Boolean
+_G['Ragdoll'] = {}
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].LogAccessedRemovedCharacterError = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Ragdoll'].UpdateProjSpecific = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param limbHull Barotrauma.Hull
+_G['Ragdoll'].Splash = function(limb, limbHull) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Ragdoll'].UpdateHullFlowForces = function(deltaTime) end
+
+---`Method Public Instance`
+_G['Ragdoll'].ForceRefreshFloorY = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param ignoreStairs? System.Boolean
+_G['Ragdoll'].RefreshFloorY = function(deltaTime, ignoreStairs) end
+
+---`Method Private Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param ignoreStairs? System.Boolean
+---@return System.Single
+_G['Ragdoll'].GetFloorY = function(simPosition, ignoreStairs) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Ragdoll'].GetSurfaceY = function() end
+
+---`Method Private Instance`
+---@return System.ValueTuple*1System*Single*1System*Single
+_G['Ragdoll'].GetWaterSurfaceAndCeilingY = function() end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param lerp? System.Boolean
+---@param ignorePlatforms? System.Boolean
+---@param forceMainLimbToCollider? System.Boolean
+---@param moveLatchers? System.Boolean
+_G['Ragdoll'].SetPosition = function(simPosition, lerp, ignorePlatforms, forceMainLimbToCollider, moveLatchers) end
+
+---`Method Public Instance`
+_G['Ragdoll'].HangWithRope = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].HoldToRope = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].DragWithRope = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].StopHangingWithRope = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].StopHoldingToRope = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].StopGettingDraggedWithRope = function() end
+
+---`Method NonPublic Instance`
+---@param limb Barotrauma.Limb
+---@param original Microsoft.Xna.Framework.Vector2
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param lerp? System.Boolean
+---@param ignorePlatforms? System.Boolean
+_G['Ragdoll'].TrySetLimbPosition = function(limb, original, simPosition, rotation, lerp, ignorePlatforms) end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CheckDistFromCollider = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param lowestSubPos System.Single
+_G['Ragdoll'].UpdateNetPlayerPositionProjSpecific = function(deltaTime, lowestSubPos) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Ragdoll'].UpdateNetPlayerPosition = function(deltaTime) end
+
+---`Method Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param excludeSevered? System.Boolean
+---@param excludeLimbsWithSecondaryType? System.Boolean
+---@param useSecondaryType? System.Boolean
+---@return Barotrauma.Limb
+_G['Ragdoll'].GetLimb = function(limbType, excludeSevered, excludeLimbsWithSecondaryType, useSecondaryType) end
+
+---`Method Public Instance`
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Ragdoll'].GetMouthPosition = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Ragdoll'].GetColliderBottom = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Limb
+_G['Ragdoll'].FindLowestLimb = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].ReleaseStuckLimbs = function() end
+
+---`Method Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param duration? System.Single
+---@param ignoreCollisions? System.Boolean
+_G['Ragdoll'].HideAndDisable = function(limbType, duration, ignoreCollisions) end
+
+---`Method Public Instance`
+_G['Ragdoll'].RestoreTemporarilyDisabled = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].Remove = function() end
+
+---`Method Public Static`
+_G['Ragdoll'].RemoveAll = function() end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].PlayImpactSound = function(limb) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['Ragdoll'].Draw = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Ragdoll'].GetDepthOffset = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Ragdoll'].DebugDraw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param collider Barotrauma.PhysicsBody-ref
+---@return System.Boolean
+_G['Ragdoll'].TryGetCollider = function(index, collider) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].SubtractMass = function(limb) end
+
+---`Method Public Instance Virtual`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['Ragdoll'].Recreate = function(ragdollParams) end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CreateColliders = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CreateJoints = function() end
+
+---`Method Private Instance`
+_G['Ragdoll'].SetInitialLimbPositions = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CreateLimbs = function() end
+
+---`Method Private Instance`
+_G['Ragdoll'].SetupDrawOrder = function() end
+
+---`Method Public Instance`
+---@param fileNameWithoutExtension? System.String
+_G['Ragdoll'].SaveRagdoll = function(fileNameWithoutExtension) end
+
+---`Method Public Instance`
+_G['Ragdoll'].ResetRagdoll = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].ResetJoints = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].ResetLimbs = function() end
+
+---`Method Public Instance`
+---@param jointParams Barotrauma.RagdollParams.JointParams
+_G['Ragdoll'].AddJoint = function(jointParams) end
+
+---`Method NonPublic Instance`
+---@param limbParams Barotrauma.RagdollParams.LimbParams
+_G['Ragdoll'].AddLimb = function(limbParams) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].AddLimb = function(limb) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].RemoveLimb = function(limb) end
+
+---`Method Public Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Ragdoll'].OnLimbCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param localNormal Microsoft.Xna.Framework.Vector2
+---@param impactPos Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+_G['Ragdoll'].ApplyImpact = function(f1, f2, localNormal, impactPos, velocity) end
+
+---`Method Public Instance`
+---@param impact System.Single
+---@param impactTolerance? System.Nullable*1System*Single
+---@return System.Single
+_G['Ragdoll'].GetImpactDamage = function(impact, impactTolerance) end
+
+---`Method Public Instance`
+---@param limbJoint Barotrauma.LimbJoint
+---@return System.Boolean
+_G['Ragdoll'].SeverLimbJoint = function(limbJoint) end
+
+---`Method Private Instance`
+---@param limbJoint Barotrauma.LimbJoint
+---@param playSound System.Boolean
+_G['Ragdoll'].SeverLimbJointProjSpecific = function(limbJoint, playSound) end
+
+---`Method NonPublic Instance`
+---@param limb Barotrauma.Limb
+---@return (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+_G['Ragdoll'].GetConnectedLimbs = function(limb) end
+
+---`Method Private Instance`
+---@param connectedLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---@param checkedJoints (System.Collections.Generic.List*1Barotrauma*LimbJoint)|(Barotrauma.LimbJoint[])
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].GetConnectedLimbs = function(connectedLimbs, checkedJoints, limb) end
+
+---`Method Private Instance`
+---@param impact System.Single
+---@param body FarseerPhysics.Dynamics.Body
+_G['Ragdoll'].ImpactProjSpecific = function(impact, body) end
+
+---`Method Public Instance Virtual`
+_G['Ragdoll'].Flip = function() end
+
+---`Method Private Instance`
+_G['Ragdoll'].FlipProjSpecific = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Ragdoll'].GetCenterOfMass = function() end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param amount System.Single
+---@param pullFromCenter? System.Boolean
+_G['Ragdoll'].MoveLimb = function(limb, pos, amount, pullFromCenter) end
+
+---`Method Public Instance`
+---@param condition? (System.Func*1Barotrauma*Limb*1System*Boolean)|(fun(arg:Barotrauma.Limb):(System.Boolean))
+_G['Ragdoll'].ResetPullJoints = function(condition) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Ragdoll'].UpdateAll = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param setSubmarine? System.Boolean
+_G['Ragdoll'].FindHull = function(worldPosition, setSubmarine) end
+
+---`Method Private Instance`
+_G['Ragdoll'].PreventOutsideCollision = function() end
+
+---`Method Public Instance`
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+---@param velocityChange Microsoft.Xna.Framework.Vector2
+---@param detachProjectiles? System.Boolean
+_G['Ragdoll'].Teleport = function(moveAmount, velocityChange, detachProjectiles) end
+
+---`Method Private Instance`
+_G['Ragdoll'].UpdateCollisionCategories = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Ragdoll'].UpdateRagdoll = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Ragdoll'].CheckBodyInRest = function(deltaTime) end
+
+---`Method Private Instance`
+---@overload fun():(System.Boolean)
+---@param body Barotrauma.PhysicsBody
+---@return System.Boolean
+_G['Ragdoll'].CheckValidity = function(body) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'] = function(character, seed, ragdollParams) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'].__new = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'] = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'].__new = function(character, seed, ragdollParams) end
+
diff --git a/Meta/Types/client/_00007FFD97DD4D60.lua b/Meta/Types/client/_00007FFD97DD4D60.lua
new file mode 100644
index 0000000..a8a5f1b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD4D60.lua
@@ -0,0 +1,299 @@
+---@meta
+---@class Barotrauma.AnimController : Barotrauma.Ragdoll
+---`Field NonPublic Instance`
+---@field rightShoulder Barotrauma.LimbJoint
+---`Field NonPublic Instance`
+---@field leftShoulder Barotrauma.LimbJoint
+---`Field NonPublic Instance`
+---@field upperArmLength System.Single
+---`Field NonPublic Instance`
+---@field forearmLength System.Single
+---`Field NonPublic Instance`
+---@field useItemTimer System.Single
+---`Field NonPublic Instance`
+---@field aiming System.Boolean
+---`Field NonPublic Instance`
+---@field wasAiming System.Boolean
+---`Field NonPublic Instance`
+---@field aimingMelee System.Boolean
+---`Field NonPublic Instance`
+---@field wasAimingMelee System.Boolean
+---`Field NonPublic Instance`
+---@field tempAnimations (System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimController*AnimSwap)|({[Barotrauma.AnimationType]:(Barotrauma.AnimController.AnimSwap)})
+---`Field NonPublic Instance`
+---@field expiredAnimations (System.Collections.Generic.HashSet*1Barotrauma*AnimationType)|(Barotrauma.AnimationType[])
+---`Field NonPublic Instance`
+---@field deathAnimTimer System.Single
+---`Field NonPublic Instance`
+---@field deathAnimDuration System.Single
+---`Field Public Instance`
+---@field Anim Barotrauma.AnimController.Animation
+---`Field Private Instance`
+---@field previousDirection Barotrauma.Direction
+---`Field Private Instance`
+---@field transformedHandlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field prevFootPos System.Single
+---`Field Private Instance`
+---@field defaultAnimations (System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimationParams)|({[Barotrauma.AnimationType]:(Barotrauma.AnimationParams)})
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field RightHandIKPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field LeftHandIKPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field IsAiming System.Boolean
+---`Getter Public Instance`
+---@field IsAimingMelee System.Boolean
+---`Getter NonPublic Instance`
+---@field Aiming System.Boolean
+---`Getter Public Instance`
+---@field ArmLength System.Single
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field WalkParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field RunParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field SwimSlowParams Barotrauma.SwimParams
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field SwimFastParams Barotrauma.SwimParams
+---`Getter Public Instance`
+---@field CurrentAnimationParams Barotrauma.AnimationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceSelectAnimationType Barotrauma.AnimationType
+---`Getter Public Instance`
+---@field CurrentGroundedParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance`
+---@field CurrentSwimParams Barotrauma.SwimParams
+---`Getter Public Instance`
+---@field CanWalk System.Boolean
+---`Getter Public Instance`
+---@field IsMovingBackwards System.Boolean
+---`Getter Public Instance`
+---@field IsMovingFast System.Boolean
+---`Getter Public Instance`
+---@field AllAnimParams (System.Collections.Generic.List*1Barotrauma*AnimationParams)|(Barotrauma.AnimationParams[])
+---`Getter Public Instance`
+---@field IsUsingItem System.Boolean
+---`Getter Public Instance`
+---@field IsClimbing System.Boolean
+---`Getter Public Instance`
+---@field AimSourceWorldPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field AimSourcePos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field AimSourceSimPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field HeadPosition System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field TorsoPosition System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field HeadAngle System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field TorsoAngle System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field StepSize System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AnimationTestPose System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field WalkPos System.Single
+---`Getter Public Instance`
+---@field IsAboveFloor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FlipLockTime System.Single
+_G['AnimController'] = {}
+
+---`Method NonPublic Instance`
+---@overload fun(p:Barotrauma.AnimationParams, v:System.Nullable*1System*Single):(System.Nullable*1System*Single)
+---@param p Barotrauma.AnimationParams
+---@param v Microsoft.Xna.Framework.Vector2
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['AnimController'].GetValidOrNull = function(p, v) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateAnimations = function(deltaTime) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateAnim = function(deltaTime) end
+
+---`Method Public Instance Abstract Virtual`
+---@param target Barotrauma.Character
+---@param deltaTime System.Single
+_G['AnimController'].DragCharacter = function(target, deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param type Barotrauma.AnimationType
+---@return System.Single
+_G['AnimController'].GetSpeed = function(type) end
+
+---`Method Public Instance`
+---@param useMaxSpeed System.Boolean
+---@return System.Single
+_G['AnimController'].GetCurrentSpeed = function(useMaxSpeed) end
+
+---`Method Public Instance`
+---@param type Barotrauma.AnimationType
+---@return Barotrauma.AnimationParams
+_G['AnimController'].GetAnimationParamsFromType = function(type) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['AnimController'].GetHeightFromFloor = function() end
+
+---`Method Public Instance`
+---@param time? System.Single
+_G['AnimController'].LockFlipping = function(time) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateConstantTorque = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateBlink = function(deltaTime) end
+
+---`Method Public Instance`
+---@param allowMovement System.Boolean
+---@param handWorldPos Microsoft.Xna.Framework.Vector2
+_G['AnimController'].UpdateUseItem = function(allowMovement, handWorldPos) end
+
+---`Method Public Instance`
+---@param rightHandPos Microsoft.Xna.Framework.Vector2
+---@param leftHandPos Microsoft.Xna.Framework.Vector2
+_G['AnimController'].Grab = function(rightHandPos, leftHandPos) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param item Barotrauma.Item
+---@param handlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param itemPos Microsoft.Xna.Framework.Vector2
+---@param aim System.Boolean
+---@param holdAngle System.Single
+---@param itemAngleRelativeToHoldAngle? System.Single
+---@param aimMelee? System.Boolean
+---@param targetPos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['AnimController'].HoldItem = function(deltaTime, item, handlePos, itemPos, aim, holdAngle, itemAngleRelativeToHoldAngle, aimMelee, targetPos) end
+
+---`Method Private Instance`
+---@param rightHand Barotrauma.Limb
+---@param leftHand Barotrauma.Limb
+---@param heldItem Barotrauma.Item
+---@return System.Single
+_G['AnimController'].GetAimWobble = function(rightHand, leftHand, heldItem) end
+
+---`Method Public Instance`
+---@param hand Barotrauma.Limb
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param armTorque? System.Single
+---@param handTorque? System.Single
+---@param maxAngularVelocity? System.Single
+_G['AnimController'].HandIK = function(hand, pos, armTorque, handTorque, maxAngularVelocity) end
+
+---`Method NonPublic Instance`
+_G['AnimController'].UpdateClimbing = function() end
+
+---`Method NonPublic Instance`
+---@param head Barotrauma.Limb
+_G['AnimController'].RotateHead = function(head) end
+
+---`Method Public Instance`
+---@param leftHandPos Microsoft.Xna.Framework.Vector2
+---@param rightHandPos Microsoft.Xna.Framework.Vector2
+---@param leftFootPos Microsoft.Xna.Framework.Vector2
+---@param rightFootPos Microsoft.Xna.Framework.Vector2
+---@param footMoveForce? System.Single
+_G['AnimController'].ApplyPose = function(leftHandPos, rightHandPos, leftFootPos, rightFootPos, footMoveForce) end
+
+---`Method Public Instance`
+_G['AnimController'].ApplyTestPose = function() end
+
+---`Method NonPublic Instance`
+_G['AnimController'].CalculateArmLengths = function() end
+
+---`Method NonPublic Instance`
+---@param limbTypeA Barotrauma.LimbType
+---@param limbTypeB Barotrauma.LimbType
+---@return Barotrauma.LimbJoint
+_G['AnimController'].GetJointBetweenLimbs = function(limbTypeA, limbTypeB) end
+
+---`Method NonPublic Instance`
+---@param matchingType Barotrauma.LimbType
+---@param ignoredTypes (System.Collections.Generic.IEnumerable*1Barotrauma*LimbType)|(fun():(Barotrauma.LimbType))
+---@return Barotrauma.LimbJoint
+_G['AnimController'].GetJoint = function(matchingType, ignoredTypes) end
+
+---`Method Public Instance Virtual`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['AnimController'].Recreate = function(ragdollParams) end
+
+---`Method Public Instance`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['AnimController'].RecreateAndRespawn = function(ragdollParams) end
+
+---`Method Private Instance`
+---@param animation Barotrauma.AnimController.Animation
+_G['AnimController'].StartAnimation = function(animation) end
+
+---`Method Private Instance`
+---@param animation Barotrauma.AnimController.Animation
+_G['AnimController'].StopAnimation = function(animation) end
+
+---`Method Public Instance`
+_G['AnimController'].StartUsingItem = function() end
+
+---`Method Public Instance`
+_G['AnimController'].StartClimbing = function() end
+
+---`Method Public Instance`
+_G['AnimController'].StopUsingItem = function() end
+
+---`Method Public Instance`
+_G['AnimController'].StopClimbing = function() end
+
+---`Method Public Instance`
+---@param animLoadInfo Barotrauma.StatusEffect.AnimLoadInfo
+---@param throwErrors System.Boolean
+---@return System.Boolean
+_G['AnimController'].TryLoadTemporaryAnimation = function(animLoadInfo, throwErrors) end
+
+---`Method Private Instance`
+_G['AnimController'].UpdateTemporaryAnimations = function() end
+
+---`Method Public Instance`
+---@param animationType Barotrauma.AnimationType
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param animParams Barotrauma.AnimationParams-ref
+---@param throwErrors System.Boolean
+---@return System.Boolean
+_G['AnimController'].TryLoadAnimation = function(animationType, file, animParams, throwErrors) end
+
+---`Method NonPublic Instance`
+---@param newParams Barotrauma.AnimationParams
+---@return System.Boolean
+_G['AnimController'].TrySwapAnimParams = function(newParams) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.AnimController
+_G['AnimController'] = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.AnimController
+_G['AnimController'].__new = function(character, seed, ragdollParams) end
+
diff --git a/Meta/Types/client/_00007FFD97DD53E0.lua b/Meta/Types/client/_00007FFD97DD53E0.lua
new file mode 100644
index 0000000..6146fcb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD53E0.lua
@@ -0,0 +1,128 @@
+---@meta
+---@class Barotrauma.FishAnimController : Barotrauma.AnimController
+---`Field Private Instance`
+---@field _ragdollParams Barotrauma.FishRagdollParams
+---`Field Private Instance`
+---@field _fishWalkParams Barotrauma.FishWalkParams
+---`Field Private Instance`
+---@field _fishRunParams Barotrauma.FishRunParams
+---`Field Private Instance`
+---@field _fishSwimSlowParams Barotrauma.FishSwimSlowParams
+---`Field Private Instance`
+---@field _fishSwimFastParams Barotrauma.FishSwimFastParams
+---`Field Private Instance`
+---@field flipTimer System.Single
+---`Field Private Instance`
+---@field flipCooldown System.Single
+---`Field Private Instance`
+---@field eatTimer System.Single
+---`Field Public Instance`
+---@field Reverse System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field RagdollParams Barotrauma.RagdollParams
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field FishRagdollParams Barotrauma.FishRagdollParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishWalkParams Barotrauma.FishWalkParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishRunParams Barotrauma.FishRunParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishSwimSlowParams Barotrauma.FishSwimSlowParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishSwimFastParams Barotrauma.FishSwimFastParams
+---`Getter Public Instance`
+---@field CurrentFishAnimation Barotrauma.IFishAnimation
+---`Getter Public Instance`
+---@field CurrentGroundedParams Barotrauma.FishGroundedParams
+---`Getter Public Instance`
+---@field CurrentSwimParams Barotrauma.FishSwimParams
+---`Getter Public Instance`
+---@field TailAngle System.Nullable*1System*Single
+---`Getter Public Instance`
+---@field FootTorque System.Single
+---`Getter Public Instance`
+---@field HeadTorque System.Single
+---`Getter Public Instance`
+---@field TorsoTorque System.Single
+---`Getter Public Instance`
+---@field TailTorque System.Single
+---`Getter Public Instance`
+---@field HeadMoveForce System.Single
+---`Getter Public Instance`
+---@field TorsoMoveForce System.Single
+---`Getter Public Instance`
+---@field FootMoveForce System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field WalkParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field RunParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimSlowParams Barotrauma.SwimParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimFastParams Barotrauma.SwimParams
+_G['FishAnimController'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateAnim = function(deltaTime) end
+
+---`Method Private Instance`
+---@param target Barotrauma.Character
+---@return System.Boolean
+_G['FishAnimController'].CanDrag = function(target) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.Character
+---@param deltaTime System.Single
+_G['FishAnimController'].DragCharacter = function(target, deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateSineAnim = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateWalkAnim = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateDying = function(deltaTime) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param angle System.Single
+---@param referenceLimb Barotrauma.Limb
+---@param torque System.Single
+_G['FishAnimController'].SmoothRotateWithoutWrapping = function(limb, angle, referenceLimb, torque) end
+
+---`Method Public Instance Virtual`
+_G['FishAnimController'].Flip = function() end
+
+---`Method Public Instance`
+---@param lerp? System.Boolean
+_G['FishAnimController'].Mirror = function(lerp) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.FishRagdollParams
+---@return Barotrauma.FishAnimController
+_G['FishAnimController'] = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.FishRagdollParams
+---@return Barotrauma.FishAnimController
+_G['FishAnimController'].__new = function(character, seed, ragdollParams) end
+
diff --git a/Meta/Types/client/_00007FFD97DD5B30.lua b/Meta/Types/client/_00007FFD97DD5B30.lua
new file mode 100644
index 0000000..b6c9112
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD5B30.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.HumanoidAnimController : Barotrauma.AnimController
+---`Field Private Instance`
+---@field _ragdollParams Barotrauma.HumanRagdollParams
+---`Field Private Instance`
+---@field _humanWalkParams Barotrauma.HumanWalkParams
+---`Field Private Instance`
+---@field _humanRunParams Barotrauma.HumanRunParams
+---`Field Private Instance`
+---@field _humanCrouchParams Barotrauma.HumanCrouchParams
+---`Field Private Instance`
+---@field _humanSwimSlowParams Barotrauma.HumanSwimSlowParams
+---`Field Private Instance`
+---@field _humanSwimFastParams Barotrauma.HumanSwimFastParams
+---`Field Private Instance`
+---@field upperLegLength System.Single
+---`Field Private Instance`
+---@field lowerLegLength System.Single
+---`Field Private Instance`
+---@field movementLerp System.Single
+---`Field Private Instance`
+---@field cprAnimTimer System.Single
+---`Field Private Instance`
+---@field cprPumpTimer System.Single
+---`Field Private Instance`
+---@field fallingProneAnimTimer System.Single
+---`Field Private Instance`
+---@field swimming System.Boolean
+---`Field Private Instance`
+---@field swimmingStateLockTimer System.Single
+---`Field Private Instance`
+---@field handCyclePos System.Single
+---`Field Private Instance`
+---@field legCyclePos System.Single
+---`Field Private Instance`
+---@field lastReviveTime System.Single
+---`Field Private Static`
+---@field SteepestWalkableSlopeNormalX System.Single
+---`Field Private Static`
+---@field SlowlyWalkableSlopeNormalX System.Single
+---`Field Private Static`
+---@field SteepestWalkableSlopeAngleDegrees System.Single
+---`Field Private Static`
+---@field SlowlyWalkableSlopeAngleDegrees System.Single
+---`Field Private Static`
+---@field MaxSpeedOnStairs System.Single
+---`Field Private Static`
+---@field SteepSlopePushMagnitude System.Single
+---`Field Public Static`
+---@field BreakFromGrabDistance System.Single
+---`Field Private Static`
+---@field FallingProneAnimDuration System.Single
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field RagdollParams Barotrauma.RagdollParams
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field HumanRagdollParams Barotrauma.HumanRagdollParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanWalkParams Barotrauma.HumanWalkParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanRunParams Barotrauma.HumanRunParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanCrouchParams Barotrauma.HumanCrouchParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanSwimSlowParams Barotrauma.HumanSwimSlowParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanSwimFastParams Barotrauma.HumanSwimFastParams
+---`Getter Public Instance`
+---@field CurrentGroundedParams Barotrauma.HumanGroundedParams
+---`Getter Public Instance`
+---@field CurrentSwimParams Barotrauma.HumanSwimParams
+---`Getter Public Instance`
+---@field CurrentHumanAnimParams Barotrauma.IHumanAnimation
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field WalkParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field RunParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimSlowParams Barotrauma.SwimParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimFastParams Barotrauma.SwimParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Crouching System.Boolean
+---`Getter Public Instance`
+---@field HeadLeanAmount System.Single
+---`Getter Public Instance`
+---@field TorsoLeanAmount System.Single
+---`Getter Public Instance`
+---@field FootMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field LegBendTorque System.Single
+---`Getter Public Instance`
+---@field HandMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field AimSourceSimPos Microsoft.Xna.Framework.Vector2
+_G['HumanoidAnimController'] = {}
+
+---`Method Public Instance Virtual`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['HumanoidAnimController'].Recreate = function(ragdollParams) end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].CalculateLegLengths = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['HumanoidAnimController'].UpdateAnim = function(deltaTime) end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].UpdateStanding = function() end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].UpdateStandingSimple = function() end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].UpdateSwimming = function() end
+
+---`Method Private Instance`
+---@param strength System.Single
+---@param moveHands? System.Boolean
+---@param moveTorso? System.Boolean
+---@param moveLegs? System.Boolean
+_G['HumanoidAnimController'].UpdateFallingProne = function(strength, moveHands, moveTorso, moveLegs) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['HumanoidAnimController'].UpdateCPR = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.Character
+---@param deltaTime System.Single
+_G['HumanoidAnimController'].DragCharacter = function(target, deltaTime) end
+
+---`Method Public Instance`
+_G['HumanoidAnimController'].Crouch = function() end
+
+---`Method Private Instance`
+---@param foot Barotrauma.Limb
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param legTorque System.Single
+---@param footTorque System.Single
+---@param footAngle System.Single
+_G['HumanoidAnimController'].FootIK = function(foot, pos, legTorque, footTorque, footAngle) end
+
+---`Method Public Instance Virtual`
+_G['HumanoidAnimController'].Flip = function() end
+
+---`Method Public Instance Virtual`
+---@param type Barotrauma.AnimationType
+---@return System.Single
+_G['HumanoidAnimController'].GetSpeed = function(type) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD6648.lua b/Meta/Types/client/_00007FFD97DD6648.lua
new file mode 100644
index 0000000..08afa14
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD6648.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.CanEnterSubmarine : System.Enum
+---`Field Public Static`
+---@field False Barotrauma.CanEnterSubmarine
+---`Field Public Static`
+---@field True Barotrauma.CanEnterSubmarine
+---`Field Public Static`
+---@field Partial Barotrauma.CanEnterSubmarine
+_G['CanEnterSubmarine'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97DD67C0.lua b/Meta/Types/client/_00007FFD97DD67C0.lua
new file mode 100644
index 0000000..5ed3197
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD67C0.lua
@@ -0,0 +1,218 @@
+---@meta
+---@class Barotrauma.RagdollParams : Barotrauma.EditableParams
+---`Field Private Instance`
+---@field limbScale System.Single
+---`Field Private Instance`
+---@field jointScale System.Single
+---`Field Private Instance`
+---@field isVariantScaleApplied System.Boolean
+---`Field Private Static`
+---@field allRagdolls (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*RagdollParams)|({[Barotrauma.Identifier]:((System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RagdollParams)|({[System.String]:(Barotrauma.RagdollParams)}))})
+---`Field Public Static`
+---@field MIN_SCALE System.Single
+---`Field Public Static`
+---@field MAX_SCALE System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Texture System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpritesheetOrientation System.Single
+---`Getter Public Instance`
+---@field IsSpritesheetOrientationHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimbScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JointScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextureScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourceRectScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ColliderHeightFromFloor System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanWalk System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Draggable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainLimb Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Colliders (System.Collections.Generic.List*1Barotrauma*RagdollParams*ColliderParams)|(Barotrauma.RagdollParams.ColliderParams[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Limbs (System.Collections.Generic.List*1Barotrauma*RagdollParams*LimbParams)|(Barotrauma.RagdollParams.LimbParams[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Joints (System.Collections.Generic.List*1Barotrauma*RagdollParams*JointParams)|(Barotrauma.RagdollParams.JointParams[])
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field Memento Barotrauma.Memento*1Barotrauma*RagdollParams
+_G['RagdollParams'] = {}
+
+---`Method NonPublic Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*RagdollParams*SubParam)|(fun():(Barotrauma.RagdollParams.SubParam))
+_G['RagdollParams'].GetAllSubParams = function() end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@return System.String
+_G['RagdollParams'].GetDefaultFileName = function(speciesName) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param contentPackage? Barotrauma.ContentPackage
+---@return System.String
+_G['RagdollParams'].GetDefaultFile = function(speciesName, contentPackage) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param contentPackage? Barotrauma.ContentPackage
+---@return System.String
+_G['RagdollParams'].GetFolder = function(speciesName, contentPackage) end
+
+---`Method Private Static`
+---@param root Barotrauma.ContentXElement
+---@param filePath System.String
+---@return System.String
+_G['RagdollParams'].GetFolder = function(root, filePath) end
+
+---`Method Public Static`
+---@overload fun(character:Barotrauma.Character):(Barotrauma.RagdollParams.T)
+---@overload fun(speciesName:Barotrauma.Identifier, characterParams:Barotrauma.CharacterParams, contentPackage:Barotrauma.ContentPackage):(Barotrauma.RagdollParams.T)
+---@param speciesName Barotrauma.Identifier
+---@param characterRootElement System.Xml.Linq.XElement
+---@param contentPackage Barotrauma.ContentPackage
+---@return Barotrauma.RagdollParams.T
+_G['RagdollParams'].GetDefaultRagdollParams = function(speciesName, characterRootElement, contentPackage) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param ragdollSpecies Barotrauma.Identifier
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param contentPackage Barotrauma.ContentPackage
+---@return Barotrauma.RagdollParams.T
+_G['RagdollParams'].GetRagdollParams = function(speciesName, ragdollSpecies, file, contentPackage) end
+
+---`Method Public Static`
+---@param fullPath System.String
+---@param speciesName Barotrauma.Identifier
+---@param mainElement System.Xml.Linq.XElement
+---@return Barotrauma.RagdollParams.T
+_G['RagdollParams'].CreateDefault = function(fullPath, speciesName, mainElement) end
+
+---`Method Public Static`
+_G['RagdollParams'].ClearCache = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param fullPath Barotrauma.ContentPath
+_G['RagdollParams'].UpdatePath = function(fullPath) end
+
+---`Method Public Instance`
+---@param fileNameWithoutExtension? System.String
+---@return System.Boolean
+_G['RagdollParams'].Save = function(fileNameWithoutExtension) end
+
+---`Method NonPublic Instance`
+---@param file Barotrauma.ContentPath
+---@param speciesName Barotrauma.Identifier
+---@return System.Boolean
+_G['RagdollParams'].Load = function(file, speciesName) end
+
+---`Method Public Instance`
+_G['RagdollParams'].Apply = function() end
+
+---`Method Public Instance Virtual`
+---@param forceReload? System.Boolean
+---@return System.Boolean
+_G['RagdollParams'].Reset = function(forceReload) end
+
+---`Method NonPublic Instance`
+_G['RagdollParams'].CreateColliders = function() end
+
+---`Method NonPublic Instance`
+_G['RagdollParams'].CreateLimbs = function() end
+
+---`Method NonPublic Instance`
+_G['RagdollParams'].CreateJoints = function() end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['RagdollParams'].Deserialize = function(element, alsoChildren, recursive) end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['RagdollParams'].Serialize = function(element, alsoChildren, recursive) end
+
+---`Method Public Instance`
+---@param editor Barotrauma.ParamsEditor
+---@param alsoChildren? System.Boolean
+---@param space? System.Int32
+_G['RagdollParams'].AddToEditor = function(editor, alsoChildren, space) end
+
+---`Method Public Instance`
+---@param variantFile System.Xml.Linq.XDocument
+_G['RagdollParams'].TryApplyVariantScale = function(variantFile) end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].StoreSnapshot = function() end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].Undo = function() end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].Redo = function() end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].ClearHistory = function() end
+
+---`Method Private Instance`
+---@param source Barotrauma.RagdollParams
+_G['RagdollParams'].RevertTo = function(source) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD7170.lua b/Meta/Types/client/_00007FFD97DD7170.lua
new file mode 100644
index 0000000..065519f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD7170.lua
@@ -0,0 +1,187 @@
+---@meta
+---@class Barotrauma.AnimationParams : Barotrauma.EditableParams
+---`Field Private Static`
+---@field allAnimations (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*AnimationParams)|({[Barotrauma.Identifier]:((System.Collections.Generic.Dictionary*1System*String*1Barotrauma*AnimationParams)|({[System.String]:(Barotrauma.AnimationParams)}))})
+---`Field Private Static`
+---@field errorMessages (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---@field IsGroundedAnimation System.Boolean
+---`Getter Public Instance`
+---@field IsSwimAnimation System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field AnimationType Barotrauma.AnimationType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MovementSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CycleSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HeadAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TorsoAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ArmIKStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandIKStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field Memento Barotrauma.Memento*1Barotrauma*AnimationParams
+_G['AnimationParams'] = {}
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param animType Barotrauma.AnimationType
+---@return System.String
+_G['AnimationParams'].GetDefaultFileName = function(speciesName, animType) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param animType Barotrauma.AnimationType
+---@return System.String
+_G['AnimationParams'].GetDefaultFile = function(speciesName, animType) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@return System.String
+_G['AnimationParams'].GetFolder = function(speciesName) end
+
+---`Method Private Static`
+---@param root Barotrauma.ContentXElement
+---@param filePath System.String
+---@return System.String
+_G['AnimationParams'].GetFolder = function(root, filePath) end
+
+---`Method Public Static`
+---@param filePaths (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---@param type Barotrauma.AnimationType
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['AnimationParams'].FilterAndSortFiles = function(filePaths, type) end
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@param animType Barotrauma.AnimationType
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].GetDefaultAnimParams = function(character, animType) end
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@param animType Barotrauma.AnimationType
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].GetAnimParams = function(character, animType, file, throwErrors) end
+
+---`Method Private Static`
+---@param speciesName Barotrauma.Identifier
+---@param animSpecies Barotrauma.Identifier
+---@param fallbackSpecies Barotrauma.Identifier
+---@param animType Barotrauma.AnimationType
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].GetAnimParams = function(speciesName, animSpecies, fallbackSpecies, animType, file, throwErrors) end
+
+---`Method Public Static`
+_G['AnimationParams'].ClearCache = function() end
+
+---`Method Public Static`
+---@overload fun(fullPath:System.String, speciesName:Barotrauma.Identifier, animationType:Barotrauma.AnimationType, animationParamsType:System.Type):(Barotrauma.AnimationParams)
+---@param fullPath System.String
+---@param speciesName Barotrauma.Identifier
+---@param animationType Barotrauma.AnimationType
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].Create = function(fullPath, speciesName, animationType) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AnimationParams'].Serialize = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AnimationParams'].Deserialize = function() end
+
+---`Method NonPublic Instance`
+---@param file Barotrauma.ContentPath
+---@param speciesName Barotrauma.Identifier
+---@return System.Boolean
+_G['AnimationParams'].Load = function(file, speciesName) end
+
+---`Method NonPublic Instance Virtual`
+---@param newPath Barotrauma.ContentPath
+_G['AnimationParams'].UpdatePath = function(newPath) end
+
+---`Method NonPublic Static`
+---@param footAngles (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---@return System.String
+_G['AnimationParams'].ParseFootAngles = function(footAngles) end
+
+---`Method NonPublic Static`
+---@param footAngles (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---@param value System.String
+_G['AnimationParams'].SetFootAngles = function(footAngles, value) end
+
+---`Method Public Static`
+---@param type Barotrauma.AnimationType
+---@param isHumanoid System.Boolean
+---@return System.Type
+_G['AnimationParams'].GetParamTypeFromAnimType = function(type, isHumanoid) end
+
+---`Method Public Instance Abstract Virtual`
+_G['AnimationParams'].StoreSnapshot = function() end
+
+---`Method NonPublic Instance`
+_G['AnimationParams'].StoreSnapshot = function() end
+
+---`Method Public Instance Virtual`
+_G['AnimationParams'].Undo = function() end
+
+---`Method Public Instance Virtual`
+_G['AnimationParams'].Redo = function() end
+
+---`Method Public Instance Virtual`
+_G['AnimationParams'].ClearHistory = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD7478.lua b/Meta/Types/client/_00007FFD97DD7478.lua
new file mode 100644
index 0000000..137e65d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD7478.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.SwimParams : Barotrauma.AnimationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SteerTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegTorque System.Single
+_G['SwimParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.SwimParams
+_G['SwimParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.SwimParams
+_G['SwimParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD7968.lua b/Meta/Types/client/_00007FFD97DD7968.lua
new file mode 100644
index 0000000..b795f19
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD7968.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.GroundedMovementParams : Barotrauma.AnimationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadPosition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoPosition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftHeadMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftOffset System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackwardsMovementMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SlideSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbBodyMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbHandMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbFootMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbStepHeight System.Single
+_G['GroundedMovementParams'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param element? System.Xml.Linq.XElement
+---@return System.Boolean
+_G['GroundedMovementParams'].Deserialize = function(element) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.GroundedMovementParams
+_G['GroundedMovementParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.GroundedMovementParams
+_G['GroundedMovementParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD7B20.lua b/Meta/Types/client/_00007FFD97DD7B20.lua
new file mode 100644
index 0000000..cdeb6a1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD7B20.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.HumanRagdollParams : Barotrauma.RagdollParams
+_G['HumanRagdollParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanRagdollParams
+_G['HumanRagdollParams'].GetDefaultRagdollParams = function(character) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRagdollParams
+_G['HumanRagdollParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRagdollParams
+_G['HumanRagdollParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD81C8.lua b/Meta/Types/client/_00007FFD97DD81C8.lua
new file mode 100644
index 0000000..0d82b46
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD81C8.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.HumanGroundedParams : Barotrauma.GroundedMovementParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GetUpForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadLeanAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoLeanAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootMoveStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootLiftHorizontalFactor System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepSizeWhenStanding Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field FootAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegBendTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandClampY System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ArmMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HandMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FixedHeadAngle System.Boolean
+_G['HumanGroundedParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanGroundedParams
+_G['HumanGroundedParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanGroundedParams
+_G['HumanGroundedParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD83F8.lua b/Meta/Types/client/_00007FFD97DD83F8.lua
new file mode 100644
index 0000000..7543373
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD83F8.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanWalkParams : Barotrauma.HumanGroundedParams
+_G['HumanWalkParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanWalkParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD85E8.lua b/Meta/Types/client/_00007FFD97DD85E8.lua
new file mode 100644
index 0000000..afa5342
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD85E8.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanRunParams : Barotrauma.HumanGroundedParams
+_G['HumanRunParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanRunParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD8898.lua b/Meta/Types/client/_00007FFD97DD8898.lua
new file mode 100644
index 0000000..4638449
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD8898.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.HumanCrouchParams : Barotrauma.HumanGroundedParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveDownAmountWhenStationary System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraHeadAngleWhenStationary System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraTorsoAngleWhenStationary System.Single
+_G['HumanCrouchParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanCrouchParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD8C70.lua b/Meta/Types/client/_00007FFD97DD8C70.lua
new file mode 100644
index 0000000..c007443
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD8C70.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.HumanSwimParams : Barotrauma.SwimParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegMoveAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegCycleLength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field FootAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandCycleSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ArmMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HandMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FixedHeadAngle System.Boolean
+_G['HumanSwimParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanSwimParams
+_G['HumanSwimParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanSwimParams
+_G['HumanSwimParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD8EA0.lua b/Meta/Types/client/_00007FFD97DD8EA0.lua
new file mode 100644
index 0000000..7763b9b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD8EA0.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanSwimFastParams : Barotrauma.HumanSwimParams
+_G['HumanSwimFastParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanSwimFastParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD9090.lua b/Meta/Types/client/_00007FFD97DD9090.lua
new file mode 100644
index 0000000..01a7dd3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD9090.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanSwimSlowParams : Barotrauma.HumanSwimParams
+_G['HumanSwimSlowParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanSwimSlowParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD9258.lua b/Meta/Types/client/_00007FFD97DD9258.lua
new file mode 100644
index 0000000..c290184
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD9258.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.FishRagdollParams : Barotrauma.RagdollParams
+_G['FishRagdollParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishRagdollParams
+_G['FishRagdollParams'].GetDefaultRagdollParams = function(character) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishRagdollParams
+_G['FishRagdollParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishRagdollParams
+_G['FishRagdollParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD9918.lua b/Meta/Types/client/_00007FFD97DD9918.lua
new file mode 100644
index 0000000..874a437
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD9918.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.FishGroundedParams : Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Flip System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipCooldown System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootMoveForce System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ColliderStandAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ColliderStandAngleInRadians System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngles System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAnglesInRadians (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field TailAngleInRadians System.Single
+_G['FishGroundedParams'] = {}
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['FishGroundedParams'].Check = function(character) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishGroundedParams
+_G['FishGroundedParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishGroundedParams
+_G['FishGroundedParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD9B38.lua b/Meta/Types/client/_00007FFD97DD9B38.lua
new file mode 100644
index 0000000..fb68b02
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD9B38.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.FishWalkParams : Barotrauma.FishGroundedParams
+---`Field NonPublic Static`
+---@field Empty Barotrauma.FishWalkParams
+_G['FishWalkParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishWalkParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DD9DE8.lua b/Meta/Types/client/_00007FFD97DD9DE8.lua
new file mode 100644
index 0000000..4f093fe
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DD9DE8.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.FishRunParams : Barotrauma.FishGroundedParams
+---`Field NonPublic Static`
+---@field Empty Barotrauma.FishRunParams
+_G['FishRunParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishRunParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DDA328.lua b/Meta/Types/client/_00007FFD97DDA328.lua
new file mode 100644
index 0000000..5f90ef7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDA328.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.FishSwimParams : Barotrauma.SwimParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseSineMovement System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Flip System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipCooldown System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Mirror System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MirrorLerp System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaveAmplitude System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaveLength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RotateTowardsMovement System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TailTorqueMultiplier System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngles System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UpdateAnimationWhenNotMoving System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAnglesInRadians (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field TailAngleInRadians System.Single
+_G['FishSwimParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishSwimParams
+_G['FishSwimParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishSwimParams
+_G['FishSwimParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DDA5A0.lua b/Meta/Types/client/_00007FFD97DDA5A0.lua
new file mode 100644
index 0000000..c119ba2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDA5A0.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.FishSwimFastParams : Barotrauma.FishSwimParams
+_G['FishSwimFastParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishSwimFastParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DDA7A8.lua b/Meta/Types/client/_00007FFD97DDA7A8.lua
new file mode 100644
index 0000000..a124fd9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDA7A8.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.FishSwimSlowParams : Barotrauma.FishSwimParams
+_G['FishSwimSlowParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishSwimSlowParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DDAAB8.lua b/Meta/Types/client/_00007FFD97DDAAB8.lua
new file mode 100644
index 0000000..5a351a9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDAAB8.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.Skill : System.Object
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field level System.Single
+---`Field Private Instance`
+---@field iconJobId Barotrauma.Identifier
+---`Field Public Instance`
+---@field PriceMultiplier System.Single
+---`Field Public Static`
+---@field MaximumSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HighestLevelDuringRound System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Level System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Icon Barotrauma.Sprite
+_G['Skill'] = {}
+
+---`Method Public Instance`
+---@param value System.Single
+---@param increasePastMax System.Boolean
+_G['Skill'].IncreaseSkill = function(value, increasePastMax) end
+
+---`Method Private Instance`
+---@return Barotrauma.Identifier
+_G['Skill'].GetIconJobId = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.SkillPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync):Barotrauma.Skill
+---@param identifier Barotrauma.Identifier
+---@param level System.Single
+---@return Barotrauma.Skill
+_G['Skill'] = function(identifier, level) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.SkillPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync):Barotrauma.Skill
+---@param identifier Barotrauma.Identifier
+---@param level System.Single
+---@return Barotrauma.Skill
+_G['Skill'].__new = function(identifier, level) end
+
diff --git a/Meta/Types/client/_00007FFD97DDAC90.lua b/Meta/Types/client/_00007FFD97DDAC90.lua
new file mode 100644
index 0000000..fbcbb1d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDAC90.lua
@@ -0,0 +1,29 @@
+---@meta
+---@class Barotrauma.SkillPrefab : System.Object
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field levelRange Barotrauma.Range*1System*Single
+---`Field Private Instance`
+---@field levelRangePvP Barotrauma.Range*1System*Single
+---`Field Public Instance`
+---@field PriceMultiplier System.Single
+---`Getter Public Instance`
+---@field IsPrimarySkill System.Boolean
+_G['SkillPrefab'] = {}
+
+---`Method Public Instance`
+---@param isPvP System.Boolean
+---@return Barotrauma.Range*1System*Single
+_G['SkillPrefab'].GetLevelRange = function(isPvP) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SkillPrefab
+_G['SkillPrefab'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SkillPrefab
+_G['SkillPrefab'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDB008.lua b/Meta/Types/client/_00007FFD97DDB008.lua
new file mode 100644
index 0000000..0befd44
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDB008.lua
@@ -0,0 +1,83 @@
+---@meta
+---@class Barotrauma.Job : System.Object
+---`Field Private Instance`
+---@field prefab Barotrauma.JobPrefab
+---`Field Private Instance`
+---@field skills (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Skill)|({[Barotrauma.Identifier]:(Barotrauma.Skill)})
+---`Field Public Instance`
+---@field Variant System.Int32
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Prefab Barotrauma.JobPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PrimarySkill Barotrauma.Skill
+_G['Job'] = {}
+
+---`Method Public Static`
+---@param isPvP System.Boolean
+---@param randSync Barotrauma.Rand.RandSync
+---@return Barotrauma.Job
+_G['Job'].Random = function(isPvP, randSync) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Skill)|(fun():(Barotrauma.Skill))
+_G['Job'].GetSkills = function() end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['Job'].GetSkillLevel = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@return Barotrauma.Skill
+_G['Job'].GetSkill = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@param newSkills (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+_G['Job'].OverrideSkills = function(newSkills) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param increase System.Single
+---@param increasePastMax System.Boolean
+_G['Job'].IncreaseSkillLevel = function(skillIdentifier, increase, increasePastMax) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param isPvPMode System.Boolean
+---@param spawnPoint? Barotrauma.WayPoint
+_G['Job'].GiveJobItems = function(character, isPvPMode, spawnPoint) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param isPvPMode System.Boolean
+---@param jobItem Barotrauma.JobPrefab.JobItem
+---@param allJobItems (System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab*JobItem)|(fun():(Barotrauma.JobPrefab.JobItem))
+---@param spawnPoint? Barotrauma.WayPoint
+---@param parentItem? Barotrauma.Item
+_G['Job'].InitializeJobItem = function(character, isPvPMode, jobItem, allJobItems, spawnPoint, parentItem) end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Job'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean):Barotrauma.Job
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync, variant:System.Int32, ...:Barotrauma.Skill):Barotrauma.Job
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Job
+_G['Job'] = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean):Barotrauma.Job
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync, variant:System.Int32, ...:Barotrauma.Skill):Barotrauma.Job
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Job
+_G['Job'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDB1E0.lua b/Meta/Types/client/_00007FFD97DDB1E0.lua
new file mode 100644
index 0000000..76a5ecb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDB1E0.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.JobVariant : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.JobPrefab
+---`Field Public Instance`
+---@field Variant System.Int32
+_G['JobVariant'] = {}
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@param variant System.Int32
+---@return Barotrauma.JobVariant
+_G['JobVariant'] = function(prefab, variant) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@param variant System.Int32
+---@return Barotrauma.JobVariant
+_G['JobVariant'].__new = function(prefab, variant) end
+
diff --git a/Meta/Types/client/_00007FFD97DDB628.lua b/Meta/Types/client/_00007FFD97DDB628.lua
new file mode 100644
index 0000000..8e500d3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDB628.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class Barotrauma.Decal : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.DecalPrefab
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field fadeTimer System.Single
+---`Field Public Instance`
+---@field Sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field affectedSections (System.Collections.Generic.HashSet*1Barotrauma*BackgroundSection)|(Barotrauma.BackgroundSection[])
+---`Field Private Instance`
+---@field hull Barotrauma.Hull
+---`Field Public Instance`
+---@field Scale System.Single
+---`Field Private Instance`
+---@field clippedSourceRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field cleaned System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FadeTimer System.Single
+---`Getter Public Instance`
+---@field FadeInTime System.Single
+---`Getter Public Instance`
+---@field FadeOutTime System.Single
+---`Getter Public Instance`
+---@field LifeTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseAlpha System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CenterPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NonClampedPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteIndex System.Int32
+_G['Decal'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param hull Barotrauma.Hull
+---@param depth System.Single
+_G['Decal'].Draw = function(spriteBatch, hull, depth) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Decal'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Decal'].ForceRefreshFadeTimer = function(val) end
+
+---`Method Public Instance`
+_G['Decal'].StopFadeIn = function() end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@return System.Boolean
+_G['Decal'].AffectsSection = function(section) end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Decal'].Clean = function(val) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Decal'].GetAlpha = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.DecalPrefab
+---@param scale System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['Decal'] = function(prefab, scale, worldPosition, hull, spriteIndex) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.DecalPrefab
+---@param scale System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['Decal'].__new = function(prefab, scale, worldPosition, hull, spriteIndex) end
+
diff --git a/Meta/Types/client/_00007FFD97DDB808.lua b/Meta/Types/client/_00007FFD97DDB808.lua
new file mode 100644
index 0000000..a5e371d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDB808.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.DecalManager : System.Object
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*DecalPrefab)|(fun():(Barotrauma.DecalPrefab))
+---`Field Public Static`
+---@field GrimeSprites (Barotrauma.PrefabCollection*1Barotrauma*GrimeSprite)|(fun():(Barotrauma.GrimeSprite))
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GrimeSpriteCount System.Int32
+_G['DecalManager'] = {}
+
+---`Method Public Static`
+---@param configFile Barotrauma.DecalsFile
+_G['DecalManager'].LoadFromFile = function(configFile) end
+
+---`Method Public Static`
+---@param configFile Barotrauma.DecalsFile
+_G['DecalManager'].RemoveByFile = function(configFile) end
+
+---`Method Public Static`
+_G['DecalManager'].SortAll = function() end
+
+---`Method Public Static`
+---@param decalName System.String
+---@param scale System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['DecalManager'].CreateDecal = function(decalName, scale, worldPosition, hull, spriteIndex) end
+
+---`Constructor Private Static`
+---@return Barotrauma.DecalManager
+_G['DecalManager'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.DecalManager
+_G['DecalManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DDB968.lua b/Meta/Types/client/_00007FFD97DDB968.lua
new file mode 100644
index 0000000..248ebb1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDB968.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.DecalPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Sprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field LifeTime System.Single
+---`Field Public Instance`
+---@field FadeOutTime System.Single
+---`Field Public Instance`
+---@field FadeInTime System.Single
+---`Getter Public Instance`
+---@field Name System.String
+_G['DecalPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['DecalPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.DecalsFile
+---@return Barotrauma.DecalPrefab
+_G['DecalPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.DecalsFile
+---@return Barotrauma.DecalPrefab
+_G['DecalPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97DDC3F8.lua b/Meta/Types/client/_00007FFD97DDC3F8.lua
new file mode 100644
index 0000000..65cab43
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDC3F8.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.RelatedItem : System.Object
+---`Field Private Instance`
+---@field type Barotrauma.RelatedItem.RelationType
+---`Field Public Instance`
+---@field StatusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Public Instance`
+---@field Msg Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field MsgTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field TargetSlot System.Int32
+---`Field Public Instance`
+---@field CharacterInventorySlotType Barotrauma.InvSlotType
+---`Field Public Instance`
+---@field ItemPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field Hide System.Boolean
+---`Field Public Instance`
+---@field Rotation System.Single
+---`Field Public Instance`
+---@field SetActive System.Boolean
+---`Field Public Instance`
+---@field BlameEquipperForDeath System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MatchOnEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireEmpty System.Boolean
+---`Getter Private Instance`
+---@field RequireOrMatchOnEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExcludedIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExcludeBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExcludeFullCondition System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowVariants System.Boolean
+---`Getter Public Instance`
+---@field Type Barotrauma.RelatedItem.RelationType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOptional System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JoinedIdentifiers System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Identifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JoinedExcludedIdentifiers System.String
+_G['RelatedItem'] = {}
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['RelatedItem'].MatchesItem = function(itemPrefab) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param parentItem Barotrauma.Item
+---@return System.Boolean
+_G['RelatedItem'].CheckRequirements = function(character, parentItem) end
+
+---`Method Private Instance`
+---@param parentItem Barotrauma.Item
+---@return System.Boolean
+_G['RelatedItem'].CheckContained = function(parentItem) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['RelatedItem'].Save = function(element) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param returnEmpty System.Boolean
+---@param parentDebugName System.String
+---@return Barotrauma.RelatedItem
+_G['RelatedItem'].Load = function(element, returnEmpty, parentDebugName) end
+
+---`Constructor Public Instance`
+---@overload fun(identifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), excludedIdentifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])):Barotrauma.RelatedItem
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.RelatedItem
+_G['RelatedItem'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@overload fun(identifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), excludedIdentifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])):Barotrauma.RelatedItem
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.RelatedItem
+_G['RelatedItem'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/client/_00007FFD97DDCE48.lua b/Meta/Types/client/_00007FFD97DDCE48.lua
new file mode 100644
index 0000000..88e3f08
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDCE48.lua
@@ -0,0 +1,281 @@
+---@meta
+---@class Barotrauma.Items.Components.Holdable : Barotrauma.Items.Components.Pickable
+---`Field NonPublic Instance`
+---@field handlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field scaledHandlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field prevPickKey Barotrauma.InputType
+---`Field Private Instance`
+---@field prevMsg Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field prevRequiredItems (System.Collections.Generic.Dictionary*1Barotrauma*RelatedItem*RelationType*1System*Collections*Generic*List*2Barotrauma*RelatedItem)|({[Barotrauma.RelatedItem.RelationType]:((System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[]))})
+---`Field Private Instance`
+---@field swingState System.Single
+---`Field Private Instance`
+---@field prevEquipper Barotrauma.Character
+---`Field Private Instance`
+---@field attachable System.Boolean
+---`Field Private Instance`
+---@field attached System.Boolean
+---`Field Private Instance`
+---@field attachedByDefault System.Boolean
+---`Field Private Instance`
+---@field attachTargetCell Voronoi2.VoronoiCell
+---`Field Private Instance`
+---@field body Barotrauma.PhysicsBody
+---`Field Public Instance`
+---@field HoldableStatValues (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field NonPublic Instance`
+---@field holdPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field aimPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field holdAngle System.Single
+---`Field NonPublic Instance`
+---@field aimAngle System.Single
+---`Field Private Instance`
+---@field swingAmount Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field loadedFromInstance System.Boolean
+---`Field Private Static`
+---@field MaxAttachDistance System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field IsAttached System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Pusher Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanPush System.Boolean
+---`Getter Public Instance`
+---@field Body Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Attached System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Aimable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ControlPose System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHandRotationForHoldAngle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Attachable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reattachable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimitedAttachable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttachedByDefault System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingWhenHolding System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingWhenAiming System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingWhenUsing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableHeadRotation System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableWhenRangedWeaponEquipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteDepthWhenDropped System.Single
+_G['Components']['Holdable'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Holdable'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['Holdable'].ValidateEventData = function(data) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Holdable'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Holdable'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Holdable'].OnPusherCollision = function(sender, other, contact) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Holdable'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Holdable'].Drop = function(dropper, setTransform) end
+
+---`Method Private Instance`
+---@param dropConnectedWires System.Boolean
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Holdable'].Drop = function(dropConnectedWires, dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Holdable'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Holdable'].Unequip = function(character) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].CanBeAttached = function(user) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Holdable'].CanBeDeattached = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].OnPicked = function(picker) end
+
+---`Method Public Instance`
+_G['Components']['Holdable'].AttachToWall = function() end
+
+---`Method Public Instance`
+_G['Components']['Holdable'].DeattachFromWall = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Holdable'].ParseMsg = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param useWorldCoordinates? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Holdable'].GetAttachPosition = function(user, useWorldCoordinates) end
+
+---`Method Private Instance`
+---@param maxDist System.Single
+---@return Voronoi2.VoronoiCell
+_G['Components']['Holdable'].GetAttachTargetCell = function(maxDist) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Holdable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.Rope
+_G['Components']['Holdable'].GetRope = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Holdable'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param swingPos Microsoft.Xna.Framework.Vector2-ref
+_G['Components']['Holdable'].UpdateSwingPos = function(deltaTime, swingPos) end
+
+---`Method NonPublic Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].UsageDisabledByRangedWeapon = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Holdable'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Holdable'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Holdable'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Holdable'].OnMapLoaded = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Holdable'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Holdable'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Holdable
+_G['Components']['Holdable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Holdable
+_G['Components']['Holdable'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDD760.lua b/Meta/Types/client/_00007FFD97DDD760.lua
new file mode 100644
index 0000000..300bc2a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDD760.lua
@@ -0,0 +1,86 @@
+---@meta
+---@class Barotrauma.Items.Components.IdCard : Barotrauma.Items.Components.Pickable
+---`Field Public Instance`
+---@field StoredOwnerAppearance Barotrauma.Items.Components.IdCard.OwnerAppearance
+---`Field Private Instance`
+---@field ownerNameLocalized System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubmarineSpecificID System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerTags System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Description System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerTagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerNameLocalized System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerJobId Barotrauma.Identifier
+---`Getter Public Instance`
+---@field OwnerJob Barotrauma.JobPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerHairIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerBeardIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerMoustacheIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerFaceAttachmentIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerHairColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerFacialHairColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerSkinColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerSheetIndex Microsoft.Xna.Framework.Vector2
+_G['Components']['IdCard'] = {}
+
+---`Method Public Instance`
+---@param spawnPoint Barotrauma.WayPoint
+---@param character Barotrauma.Character
+_G['Components']['IdCard'].Initialize = function(spawnPoint, character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['IdCard'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['IdCard'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+_G['Components']['IdCard'].OnItemLoaded = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.IdCard
+_G['Components']['IdCard'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.IdCard
+_G['Components']['IdCard'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDDB00.lua b/Meta/Types/client/_00007FFD97DDDB00.lua
new file mode 100644
index 0000000..ecd7de4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDDB00.lua
@@ -0,0 +1,57 @@
+---@meta
+---@class Barotrauma.Items.Components.LevelResource : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field trigger Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field holdable Barotrauma.Items.Components.Holdable
+---`Field Private Instance`
+---@field deattachTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeattachDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeattachTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomOffsetFromWall System.Single
+---`Getter Public Instance`
+---@field Attached System.Boolean
+_G['Components']['LevelResource'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['LevelResource'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['LevelResource'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['LevelResource'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['Components']['LevelResource'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['LevelResource'].CreateTriggerBody = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['LevelResource'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LevelResource
+_G['Components']['LevelResource'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LevelResource
+_G['Components']['LevelResource'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDE178.lua b/Meta/Types/client/_00007FFD97DDE178.lua
new file mode 100644
index 0000000..9565f07
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDE178.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.Items.Components.MeleeWeapon : Barotrauma.Items.Components.Holdable
+---`Field Private Instance`
+---@field hitPos System.Single
+---`Field Private Instance`
+---@field hitting System.Boolean
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field reload System.Single
+---`Field Private Instance`
+---@field reloadTimer System.Single
+---`Field Private Instance`
+---@field hitTargets (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1FarseerPhysics*Dynamics*Fixture)|(fun():(FarseerPhysics.Dynamics.Fixture))
+---`Field Public Instance`
+---@field PreferredContainedItems (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field serverLogger System.Text.StringBuilder
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Attack Barotrauma.Attack
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field User Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowHitMultiple System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitOnlyCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Swing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingForce Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Hitting System.Boolean
+_G['Components']['MeleeWeapon'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['MeleeWeapon'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MeleeWeapon'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MeleeWeapon'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['MeleeWeapon'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MeleeWeapon'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MeleeWeapon'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['MeleeWeapon'].ActivateNearbySleepingCharacters = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Components']['MeleeWeapon'].SetUser = function(character) end
+
+---`Method Private Instance`
+_G['Components']['MeleeWeapon'].EndHit = function() end
+
+---`Method Private Instance`
+_G['Components']['MeleeWeapon'].RestoreCollision = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['MeleeWeapon'].OnCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param targetFixture FarseerPhysics.Dynamics.Fixture
+_G['Components']['MeleeWeapon'].HandleImpact = function(targetFixture) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MeleeWeapon
+_G['Components']['MeleeWeapon'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MeleeWeapon
+_G['Components']['MeleeWeapon'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDE660.lua b/Meta/Types/client/_00007FFD97DDE660.lua
new file mode 100644
index 0000000..af7411f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDE660.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.Items.Components.Propulsion : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field useState System.Single
+---`Field Private Instance`
+---@field particles System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsableIn Barotrauma.Items.Components.Propulsion.UseEnvironment
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyToHands System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Particles System.String
+_G['Components']['Propulsion'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Propulsion'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Propulsion'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Propulsion
+_G['Components']['Propulsion'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Propulsion
+_G['Components']['Propulsion'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDF030.lua b/Meta/Types/client/_00007FFD97DDF030.lua
new file mode 100644
index 0000000..d8566c4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDF030.lua
@@ -0,0 +1,186 @@
+---@meta
+---@class Barotrauma.Items.Components.RangedWeapon : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field crosshairSprite Barotrauma.Sprite
+---`Field NonPublic Instance`
+---@field crosshairPointerSprite Barotrauma.Sprite
+---`Field NonPublic Instance`
+---@field crosshairPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field crosshairPointerPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field currentCrossHairScale System.Single
+---`Field NonPublic Instance`
+---@field currentCrossHairPointerScale System.Single
+---`Field Private Instance`
+---@field chargeSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field chargeSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field _chargeSoundWindupPitchSlide Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field particleEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field particleEmitterCharges (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field crossHairPosDirtyTimer System.Single
+---`Field Private Instance`
+---@field reload System.Single
+---`Field Private Instance`
+---@field barrelPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field suitableProjectiles (System.Collections.Generic.IReadOnlySet*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Field Private Instance`
+---@field currentChargingState Barotrauma.Items.Components.RangedWeapon.ChargingState
+---`Field Private Instance`
+---@field currentChargeTime System.Single
+---`Field Private Instance`
+---@field tryingToCharge System.Boolean
+---`Field Private Instance`
+---@field ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ChargeSoundWindupPitchSlide Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CrossHairScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ReloadTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelPos System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReloadSkillRequirement System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReloadNoSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldTrigger System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProjectileCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UnskilledSpread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Penetration System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WeaponDamageModifier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxChargeTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DualWieldReloadTimePenaltyMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DualWieldAccuracyPenalty System.Single
+---`Getter Public Instance`
+---@field TransformedBarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastProjectile Barotrauma.Items.Components.Projectile
+_G['Components']['RangedWeapon'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RangedWeapon'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['RangedWeapon'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['RangedWeapon'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['RangedWeapon'].DrawHUD = function(spriteBatch, character) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['RangedWeapon'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+---@param rangedWeaponElement Barotrauma.ContentXElement
+_G['Components']['RangedWeapon'].InitProjSpecific = function(rangedWeaponElement) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['RangedWeapon'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RangedWeapon'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['RangedWeapon'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['RangedWeapon'].GetSpread = function(user) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param originalPenalty System.Single
+---@param neutralValue System.Single
+---@return System.Single
+_G['Components']['RangedWeapon'].ApplyDualWieldPenaltyReduction = function(character, originalPenalty, neutralValue) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RangedWeapon'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RangedWeapon'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@param triggerOnUseOnContainers? System.Boolean
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['RangedWeapon'].FindProjectile = function(triggerOnUseOnContainers) end
+
+---`Method Private Instance`
+---@param projectile Barotrauma.Items.Components.Projectile
+---@return System.Boolean
+_G['Components']['RangedWeapon'].IsSuitableProjectile = function(projectile) end
+
+---`Method Private Instance`
+_G['Components']['RangedWeapon'].LaunchProjSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RangedWeapon
+_G['Components']['RangedWeapon'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RangedWeapon
+_G['Components']['RangedWeapon'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DDFC40.lua b/Meta/Types/client/_00007FFD97DDFC40.lua
new file mode 100644
index 0000000..a7323cf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DDFC40.lua
@@ -0,0 +1,218 @@
+---@meta
+---@class Barotrauma.Items.Components.RepairTool : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field particleEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field particleEmitterHitStructure (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field particleEmitterHitCharacter (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field particleEmitterHitItem (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*RelatedItem*2Barotrauma*Particles*ParticleEmitter)|(System.ValueTuple*1Barotrauma*RelatedItem*1Barotrauma*Particles*ParticleEmitter[])
+---`Field Private Instance`
+---@field prevProgressBarState System.Single
+---`Field Private Instance`
+---@field prevProgressBarTarget Barotrauma.Item
+---`Field Private Instance`
+---@field fixableEntities (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field nonFixableEntities (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field pickedPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field activeTimer System.Single
+---`Field Private Instance`
+---@field debugRayStartPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field debugRayEndPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field hitCharacters (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field fireSourcesInRange (System.Collections.Generic.List*1Barotrauma*FireSource)|(Barotrauma.FireSource[])
+---`Field Private Instance`
+---@field sinTime System.Single
+---`Field Private Instance`
+---@field repairTimer System.Single
+---`Field Private Instance`
+---@field previousGap Barotrauma.Gap
+---`Field Private Instance`
+---@field repairTimeOut System.Single
+---`Field Private Static`
+---@field hitBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Static`
+---@field currentTargets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsableIn Barotrauma.Items.Components.RepairTool.UseEnvironment
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UnskilledSpread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureFixAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelWallFixAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtinguishAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairThroughWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairMultiple System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairMultipleWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairThroughHoles System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOverlappingWallDist System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeattachSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitBrokenDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelRotation System.Single
+---`Getter Public Instance`
+---@field TransformedBarrelPos Microsoft.Xna.Framework.Vector2
+_G['Components']['RepairTool'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['RepairTool'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['RepairTool'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RepairTool'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RepairTool'].Use = function(deltaTime, character) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param raystart Microsoft.Xna.Framework.Vector2
+_G['Components']['RepairTool'].UseProjSpecific = function(deltaTime, raystart) end
+
+---`Method Private Instance`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param user Barotrauma.Character
+---@param degreeOfSuccess System.Single
+---@param ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+_G['Components']['RepairTool'].Repair = function(rayStart, rayEnd, deltaTime, user, degreeOfSuccess, ignoredBodies) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param hitPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param degreeOfSuccess System.Single
+---@param targetBody FarseerPhysics.Dynamics.Body
+---@return System.Boolean
+_G['Components']['RepairTool'].FixBody = function(user, hitPosition, deltaTime, degreeOfSuccess, targetBody) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+---@param targetStructure Barotrauma.Structure
+---@param sectionIndex System.Int32
+_G['Components']['RepairTool'].FixStructureProjSpecific = function(user, deltaTime, targetStructure, sectionIndex) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+---@param targetCharacter Barotrauma.Character
+_G['Components']['RepairTool'].FixCharacterProjSpecific = function(user, deltaTime, targetCharacter) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+---@param targetItem Barotrauma.Item
+---@param showProgressBar System.Boolean
+_G['Components']['RepairTool'].FixItemProjSpecific = function(user, deltaTime, targetItem, showProgressBar) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['RepairTool'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+---@param actionType Barotrauma.ActionType
+---@param targetItem? Barotrauma.Item
+---@param character? Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param structure? Barotrauma.Structure
+_G['Components']['RepairTool'].ApplyStatusEffectsOnTarget = function(user, deltaTime, actionType, targetItem, character, limb, structure) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DF0038.lua b/Meta/Types/client/_00007FFD97DF0038.lua
new file mode 100644
index 0000000..bb4b8de
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF0038.lua
@@ -0,0 +1,83 @@
+---@meta
+---@class Barotrauma.Items.Components.Sprayer : Barotrauma.Items.Components.RangedWeapon
+---`Field Private Instance`
+---@field debugRayStartPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field debugRayEndPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field particleEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field targetHull Barotrauma.Hull
+---`Field Private Instance`
+---@field rayStartWorldPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field color Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field targetSections (System.Collections.Generic.List*1Barotrauma*BackgroundSection)|(Barotrauma.BackgroundSection[])
+---`Field Private Instance`
+---@field spraySetting System.Int32
+---`Field Private Instance`
+---@field sprayArray (Microsoft.Xna.Framework.Point-arr)|(Microsoft.Xna.Framework.Point[])
+---`Field Private Instance`
+---@field liquidColors (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color)|({[Barotrauma.Identifier]:(Microsoft.Xna.Framework.Color)})
+---`Field Private Instance`
+---@field liquidContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SprayStrength System.Single
+_G['Components']['Sprayer'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Sprayer'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['Sprayer'].DrawHUD = function(spriteBatch, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Sprayer'].Use = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+---@param applyColors System.Boolean
+_G['Components']['Sprayer'].Spray = function(user, deltaTime, applyColors) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Sprayer'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Sprayer'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Sprayer'].InitProjSpecific = function(element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sprayer
+_G['Components']['Sprayer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sprayer
+_G['Components']['Sprayer'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF0548.lua b/Meta/Types/client/_00007FFD97DF0548.lua
new file mode 100644
index 0000000..8615496
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF0548.lua
@@ -0,0 +1,63 @@
+---@meta
+---@class Barotrauma.Items.Components.Throwable : Barotrauma.Items.Components.Holdable
+---`Field Private Instance`
+---@field throwAngle System.Single
+---`Field Private Instance`
+---@field midAir System.Boolean
+---`Field Private Instance`
+---@field throwState Barotrauma.Items.Components.Throwable.ThrowState
+---`Field Private Static`
+---@field ThrowAngleStart System.Single
+---`Field Private Static`
+---@field ThrowAngleEnd System.Single
+---`Field Private Static`
+---@field ContinuousCollisionThreshold System.Single
+---`Field Public Static`
+---@field WaterDragCoefficient System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentThrower Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ThrowForce System.Single
+_G['Components']['Throwable'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Throwable'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Throwable'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Throwable'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Throwable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Throwable'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Throwable
+_G['Components']['Throwable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Throwable
+_G['Components']['Throwable'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF0F88.lua b/Meta/Types/client/_00007FFD97DF0F88.lua
new file mode 100644
index 0000000..735a1ee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF0F88.lua
@@ -0,0 +1,217 @@
+---@meta
+---@class Barotrauma.Items.Components.Controller : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field chatBoxOriginalState System.Boolean
+---`Field Private Instance`
+---@field isHUDsHidden System.Boolean
+---`Field Private Instance`
+---@field limbPositions (System.Collections.Generic.List*1Barotrauma*Items*Components*LimbPos)|(Barotrauma.Items.Components.LimbPos[])
+---`Field Private Instance`
+---@field dir Barotrauma.Direction
+---`Field Private Instance`
+---@field userPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field focusTarget Barotrauma.Item
+---`Field Private Instance`
+---@field targetRotation System.Single
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Field Private Instance`
+---@field state System.Boolean
+---`Field Private Instance`
+---@field forceSelectNextFrame System.Boolean
+---`Field Private Instance`
+---@field lastUsed System.Double
+---`Getter Public Instance`
+---@field Direction Barotrauma.Direction
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UserPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field User Barotrauma.Character
+---`Getter Public Instance`
+---@field LimbPositions (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*LimbPos)|(fun():(Barotrauma.Items.Components.LimbPos))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsToggle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field State System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideHUD System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsableIn Barotrauma.Items.Components.Controller.UseEnvironment
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawUserBehind System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSelectingWhenSelectedByOther System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSelectingWhenSelectedByBot System.Boolean
+---`Getter Public Instance`
+---@field ControlCharacterPose System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UserInCorrectPosition System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAiming System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonInteractableWhenFlippedX System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonInteractableWhenFlippedY System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequirePower System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsSecondaryItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceUserToStayAttached System.Boolean
+_G['Components']['Controller'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['Controller'].DrawHUD = function(spriteBatch, character) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['Components']['Controller'].AddToGUIUpdateList = function(order) end
+
+---`Method Private Instance`
+---@param value System.Boolean
+---@param storeOriginalState System.Boolean
+_G['Components']['Controller'].ToggleChatBox = function(value, storeOriginalState) end
+
+---`Method Public Instance Virtual`
+---@param editor Barotrauma.SerializableEntityEditor
+_G['Components']['Controller'].CreateEditingHUD = function(editor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Controller'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Controller'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param activator? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].Use = function(deltaTime, activator) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Controller'].IsOutOfPower = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Item
+_G['Components']['Controller'].GetFocusTarget = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].Pick = function(picker) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Components']['Controller'].CancelUsing = function(character) end
+
+---`Method Public Instance Virtual`
+---@param activator Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].Select = function(activator) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].IsAttachedUser = function(character) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Controller'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Controller'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].HasAccess = function(character) end
+
+---`Method Private Instance`
+---@param value System.Boolean
+_G['Components']['Controller'].HideHUDs = function(value) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Controller'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Controller'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Controller'].SaveLimbPositions = function(element) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Controller'].LoadLimbPositions = function(element) end
+
+---`Method Private Instance`
+_G['Components']['Controller'].FlipLimbPositions = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Controller'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Controller'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Controller
+_G['Components']['Controller'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Controller
+_G['Components']['Controller'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF17A0.lua b/Meta/Types/client/_00007FFD97DF17A0.lua
new file mode 100644
index 0000000..4bb49df
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF17A0.lua
@@ -0,0 +1,157 @@
+---@meta
+---@class Barotrauma.Items.Components.Deconstructor : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field activateButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field inputInventoryHolder Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field outputInventoryHolder Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field outputDisplayListBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field inSufficientPowerWarning Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field pendingState System.Boolean
+---`Field Private Instance`
+---@field infoArea Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field progressTimer System.Single
+---`Field Private Instance`
+---@field progressState System.Single
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field userDeconstructorSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field inputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field outputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Public Instance`
+---@field RelocateOutputToMainSub System.Boolean
+---`Field Private Static`
+---@field TinkeringSpeedIncrease System.Single
+---`Getter Public Instance`
+---@field ActivateButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ActivateButtonText System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InfoText System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InfoAreaWidth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowOutput System.Boolean
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---@field InputContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field OutputContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeconstructItemsSimultaneously System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeconstructionSpeed System.Single
+_G['Components']['Deconstructor'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Deconstructor'].OnResolutionChanged = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Deconstructor'].CreateGUI = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Deconstructor'].Select = function(character) end
+
+---`Method Private Instance`
+---@param items (System.Collections.Immutable.ImmutableArray*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Components']['Deconstructor'].RefreshOutputDisplay = function(items) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param overlayComponent Barotrauma.GUICustomComponent
+_G['Components']['Deconstructor'].DrawOverLay = function(spriteBatch, overlayComponent) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Deconstructor'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['Components']['Deconstructor'].OnActivateButtonClicked = function(button, obj) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Deconstructor'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Deconstructor'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['Components']['Deconstructor'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Deconstructor'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['Deconstructor'].OnItemLoadedProjSpecific = function() end
+
+---`Method Private Instance`
+---@param container Barotrauma.Items.Components.ItemContainer
+_G['Components']['Deconstructor'].OnItemSlotsChanged = function(container) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Deconstructor'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param targetItem Barotrauma.Item
+---@param inputItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param validDeconstructItems (System.Collections.Generic.List*1Barotrauma*DeconstructItem)|(Barotrauma.DeconstructItem[])
+---@param allowRemove? System.Boolean
+_G['Components']['Deconstructor'].ProcessItem = function(targetItem, inputItems, validDeconstructItems, allowRemove) end
+
+---`Method Private Instance`
+_G['Components']['Deconstructor'].PutItemsToLinkedContainer = function() end
+
+---`Method Private Instance`
+_G['Components']['Deconstructor'].MoveInputQueue = function() end
+
+---`Method Private Instance`
+---@param checkRequiredOtherItems? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Item*2Barotrauma*DeconstructItem)|(fun():(System.ValueTuple*1Barotrauma*Item*1Barotrauma*DeconstructItem))
+_G['Components']['Deconstructor'].GetAvailableOutputs = function(checkRequiredOtherItems) end
+
+---`Method Public Instance`
+---@param active System.Boolean
+---@param user? Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+_G['Components']['Deconstructor'].SetActive = function(active, user, createNetworkEvent) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Deconstructor
+_G['Components']['Deconstructor'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Deconstructor
+_G['Components']['Deconstructor'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF1E38.lua b/Meta/Types/client/_00007FFD97DF1E38.lua
new file mode 100644
index 0000000..abc1462
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF1E38.lua
@@ -0,0 +1,155 @@
+---@meta
+---@class Barotrauma.Items.Components.Engine : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field spriteIndex System.Single
+---`Field Private Instance`
+---@field propellerSprite Barotrauma.SpriteSheet
+---`Field Private Instance`
+---@field powerIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field forceSlider Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field autoControlIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field particlesPerSec System.Int32
+---`Field Private Instance`
+---@field particleTimer System.Single
+---`Field Private Instance`
+---@field force System.Single
+---`Field Private Instance`
+---@field lastReceivedTargetForce System.Nullable*1System*Single
+---`Field Private Instance`
+---@field targetForce System.Single
+---`Field Private Instance`
+---@field maxForce System.Single
+---`Field Private Instance`
+---@field propellerDamage Barotrauma.Attack
+---`Field Private Instance`
+---@field damageTimer System.Single
+---`Field Private Instance`
+---@field hasPower System.Boolean
+---`Field Private Instance`
+---@field prevVoltage System.Single
+---`Field Private Instance`
+---@field controlLockTimer System.Single
+---`Field Public Instance`
+---@field User Barotrauma.Character
+---`Field Private Static`
+---@field ForceToPowerExponent System.Single
+---`Field Private Static`
+---@field PowerToForceExponent System.Single
+---`Field Private Static`
+---@field TinkeringForceIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AnimSpeed System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PropellerPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisablePropellerDamage System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---@field CurrentVolume System.Single
+---`Getter Public Instance`
+---@field CurrentBrokenVolume System.Single
+---`Getter Public Instance Virtual`
+---@field CurrentStress System.Single
+_G['Components']['Engine'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Engine'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Engine'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Engine'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Engine'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Engine'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Engine'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Engine'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Engine'].GridResolved = function(connection) end
+
+---`Method Private Instance`
+---@param noise System.Single
+_G['Components']['Engine'].UpdateAITargets = function(noise) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Engine'].UpdatePropellerDamage = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Engine'].UpdateAnimation = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Engine'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Engine'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Engine'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Engine'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Engine'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Engine
+_G['Components']['Engine'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Engine
+_G['Components']['Engine'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF3770.lua b/Meta/Types/client/_00007FFD97DF3770.lua
new file mode 100644
index 0000000..7c572d7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF3770.lua
@@ -0,0 +1,369 @@
+---@meta
+---@class Barotrauma.Items.Components.Fabricator : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field itemList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field selectedItemFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field selectedItemReqsFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field amountTextMax Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field amountInput Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field activateButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field itemFilterBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field outputSlot Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field inputInventoryHolder Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field outputInventoryHolder Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field itemCategoryButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field selectedItemCategory System.Nullable*1Barotrauma*MapEntityCategory
+---`Field Private Instance`
+---@field selectedItem Barotrauma.FabricationRecipe
+---`Field Private Instance`
+---@field displayingForCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field inSufficientPowerWarning Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field pendingFabricatedItem Barotrauma.FabricationRecipe
+---`Field Private Instance`
+---@field tooltip Barotrauma.Items.Components.Fabricator.ToolTip
+---`Field Private Instance`
+---@field requiredTimeBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field missingIngredientCounts (System.Collections.Generic.Dictionary*1Barotrauma*FabricationRecipe*RequiredItem*1System*Int32)|({[Barotrauma.FabricationRecipe.RequiredItem]:(System.Int32)})
+---`Field Private Instance`
+---@field ingredientHighlightTimer System.Single
+---`Field Private Instance`
+---@field LastSelectedRecipe Barotrauma.Option*1Barotrauma*Items*Components*Fabricator*SelectedRecipe
+---`Field Private Instance`
+---@field fabricationRecipes (System.Collections.Immutable.ImmutableDictionary*1System*UInt32*1Barotrauma*FabricationRecipe)|({[System.UInt32]:(Barotrauma.FabricationRecipe)})
+---`Field Private Instance`
+---@field fabricatedItem Barotrauma.FabricationRecipe
+---`Field Private Instance`
+---@field timeUntilReady System.Single
+---`Field Private Instance`
+---@field requiredTime System.Single
+---`Field Private Instance`
+---@field savedFabricatedItem System.String
+---`Field Private Instance`
+---@field savedTimeUntilReady System.Single
+---`Field Private Instance`
+---@field savedRequiredTime System.Single
+---`Field Private Instance`
+---@field availableIngredients (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field refreshIngredientsTimer System.Single
+---`Field Private Instance`
+---@field hasPower System.Boolean
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field inputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field outputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field amountToFabricate System.Int32
+---`Field Private Instance`
+---@field amountRemaining System.Int32
+---`Field Private Instance`
+---@field state Barotrauma.Items.Components.Fabricator.FabricatorState
+---`Field Private Instance`
+---@field progressState System.Single
+---`Field Private Instance`
+---@field fabricationLimits (System.Collections.Generic.Dictionary*1System*UInt32*1System*Int32)|({[System.UInt32]:(System.Int32)})
+---`Field Public Instance`
+---@field OnItemFabricated (System.Action*1Barotrauma*Item*1Barotrauma*Character)|(fun(arg1:Barotrauma.Item, arg2:Barotrauma.Character))
+---`Field Private Instance`
+---@field usedIngredients (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field linkedInventories (System.Collections.Generic.HashSet*1Barotrauma*Inventory)|(Barotrauma.Inventory[])
+---`Field Private Static`
+---@field MaxAmountToFabricate System.Int32
+---`Field Private Static`
+---@field RefreshIngredientsInterval System.Single
+---`Field Private Static`
+---@field TinkeringSpeedIncrease System.Single
+---`Field Public Static`
+---@field PlusOneQualityBonusThreshold System.Int32
+---`Field Public Static`
+---@field PlusTwoQualityBonusThreshold System.Int32
+---`Field Public Static`
+---@field PlusOneTarget System.Int32
+---`Field Public Static`
+---@field PlusTwoTarget System.Int32
+---`Field Public Static`
+---@field PlusOneLerp System.Single
+---`Field Public Static`
+---@field PlusTwoLerp System.Single
+---`Getter Public Instance`
+---@field ActivateButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---@field SelectedItem Barotrauma.FabricationRecipe
+---`Getter Public Instance`
+---@field SelectedItemIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CreateButtonText System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FabricationLimitReachedText System.String
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FabricationSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillRequirementMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AmountToFabricate System.Int32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field State Barotrauma.Items.Components.Fabricator.FabricatorState
+---`Getter Public Instance`
+---@field InputContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field OutputContainer Barotrauma.Items.Components.ItemContainer
+_G['Components']['Fabricator'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Fabricator'].OnResolutionChanged = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Fabricator'].CreateGUI = function() end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].RefreshActivateButtonText = function() end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].InitInventoryUIs = function() end
+
+---`Method Private Static`
+---@param fabricationRecipe Barotrauma.FabricationRecipe
+---@return Barotrauma.LocalizedString
+_G['Components']['Fabricator'].GetRecipeNameAndAmount = function(fabricationRecipe) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param overlayComponent Barotrauma.GUICustomComponent
+_G['Components']['Fabricator'].DrawInputOverLay = function(spriteBatch, overlayComponent) end
+
+---`Method Private Instance`
+---@param itemNameList (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---@return Barotrauma.LocalizedString
+_G['Components']['Fabricator'].GetSuitableIngredientText = function(itemNameList) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param overlayComponent Barotrauma.GUICustomComponent
+_G['Components']['Fabricator'].DrawOutputOverLay = function(spriteBatch, overlayComponent) end
+
+---`Method Private Instance`
+---@param category System.Nullable*1Barotrauma*MapEntityCategory
+---@param filter System.String
+---@return System.Boolean
+_G['Components']['Fabricator'].FilterEntities = function(category, filter) end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].HideEmptyItemListCategories = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Fabricator'].ClearFilter = function() end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param selectedItem Barotrauma.FabricationRecipe
+---@param overrideRequiredTime? System.Nullable*1System*Single
+---@return System.Boolean
+_G['Components']['Fabricator'].SelectItem = function(user, selectedItem, overrideRequiredTime) end
+
+---`Method Private Instance`
+---@param recipe Barotrauma.Items.Components.Fabricator.SelectedRecipe
+_G['Components']['Fabricator'].CreateSelectedItemUI = function(recipe) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param color Microsoft.Xna.Framework.Color
+_G['Components']['Fabricator'].HighlightRecipe = function(identifier, color) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['Components']['Fabricator'].StartButtonClicked = function(button, obj) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Fabricator'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Fabricator'].OnPlayerSkillsChanged = function() end
+
+---`Method Public Instance`
+_G['Components']['Fabricator'].RefreshSelectedItem = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Fabricator'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Fabricator'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Fabricator'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].OnItemLoadedProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Fabricator'].Select = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Components']['Fabricator'].SelectProjSpecific = function(character) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Fabricator'].Pick = function(picker) end
+
+---`Method Public Instance`
+---@param allowedIdentifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['Components']['Fabricator'].RemoveFabricationRecipes = function(allowedIdentifiers) end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].CreateRecipes = function() end
+
+---`Method Private Instance`
+---@param selectedItem Barotrauma.FabricationRecipe
+---@param user Barotrauma.Character
+---@param addToServerLog? System.Boolean
+_G['Components']['Fabricator'].StartFabricating = function(selectedItem, user, addToServerLog) end
+
+---`Method Private Instance`
+---@param user? Barotrauma.Character
+_G['Components']['Fabricator'].CancelFabricating = function(user) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Fabricator'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@return Barotrauma.Networking.Client
+_G['Components']['Fabricator'].GetUsingClient = function() end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].Fabricate = function() end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Fabricator'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Static`
+---@param skillLevel System.Single
+---@param target System.Single
+---@return System.Single
+_G['Components']['Fabricator'].CalculateBonusRollPercentage = function(skillLevel, target) end
+
+---`Method Private Static`
+---@param fabricatedItem Barotrauma.FabricationRecipe
+---@param user Barotrauma.Character
+---@return Barotrauma.Items.Components.Fabricator.QualityResult
+_G['Components']['Fabricator'].GetFabricatedItemQuality = function(fabricatedItem, user) end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].UpdateRequiredTimeProjSpecific = function() end
+
+---`Method Private Static`
+---@param user Barotrauma.Character
+---@param item Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['Components']['Fabricator'].AnyOneHasRecipeForItem = function(user, item) end
+
+---`Method Private Instance`
+---@param fabricableItem Barotrauma.FabricationRecipe
+---@param availableIngredients (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Fabricator'].CanBeFabricated = function(fabricableItem, availableIngredients, character) end
+
+---`Method Private Instance`
+---@param fabricableItem Barotrauma.FabricationRecipe
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['Fabricator'].GetRequiredTime = function(fabricableItem, user) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param skills (System.Collections.Immutable.ImmutableArray*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---@return System.Single
+_G['Components']['Fabricator'].FabricationDegreeOfSuccess = function(character, skills) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Components']['Fabricator'].GetSkillMultiplier = function() end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].RefreshAvailableIngredients = function() end
+
+---`Method Private Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Components']['Fabricator'].SortIngredients = function(items) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Components']['Fabricator'].GetSortedSuitableIngredients = function() end
+
+---`Method Private Instance`
+---@param targetItem Barotrauma.FabricationRecipe
+_G['Components']['Fabricator'].MoveIngredientsToInputContainer = function(targetItem) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Fabricator'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Fabricator'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Fabricator'].OnMapLoaded = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Fabricator'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Fabricator
+_G['Components']['Fabricator'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Fabricator
+_G['Components']['Fabricator'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF4650.lua b/Meta/Types/client/_00007FFD97DF4650.lua
new file mode 100644
index 0000000..91c593e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF4650.lua
@@ -0,0 +1,366 @@
+---@meta
+---@class Barotrauma.Items.Components.MiniMap : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field hullDatas (System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Barotrauma*Items*Components*MiniMap*HullData)|({[Barotrauma.Hull]:(Barotrauma.Items.Components.MiniMap.HullData)})
+---`Field Private Instance`
+---@field resetDataTime System.DateTime
+---`Field Private Instance`
+---@field submarineContainer Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field hullInfoFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field scissorComponent Barotrauma.GUIScissorComponent
+---`Field Private Instance`
+---@field miniMapContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field miniMapFrame Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field electricalFrame Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field reportFrame Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field searchBarFrame Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field searchBar Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field searchAutoComplete Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field searchedPrefab Barotrauma.ItemPrefab
+---`Field Private Instance`
+---@field tooltipHeader Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field tooltipFirstLine Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field tooltipSecondLine Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field tooltipThirdLine Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field noPowerTip Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field displayedSubs (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field prevResolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field cardRefreshTimer System.Single
+---`Field Private Instance`
+---@field cardsToDraw (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*MiniMapSprite)|(Barotrauma.Items.Components.MiniMapSprite[])
+---`Field Private Instance`
+---@field subEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Instance`
+---@field submarinePreview Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field currentMode Barotrauma.Items.Components.MiniMapMode
+---`Field Private Instance`
+---@field modeSwitchButtons (System.Collections.Immutable.ImmutableArray*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field elementSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field hullStatusComponents (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*MapEntity*1Barotrauma*Items*Components*MiniMapGUIComponent)|({[Barotrauma.MapEntity]:(Barotrauma.Items.Components.MiniMapGUIComponent)})
+---`Field Private Instance`
+---@field electricalMapComponents (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*MapEntity*1Barotrauma*Items*Components*MiniMapGUIComponent)|({[Barotrauma.MapEntity]:(Barotrauma.Items.Components.MiniMapGUIComponent)})
+---`Field Private Instance`
+---@field electricalChildren (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Items*Components*MiniMapGUIComponent*1Barotrauma*GUIComponent)|({[Barotrauma.Items.Components.MiniMapGUIComponent]:(Barotrauma.GUIComponent)})
+---`Field Private Instance`
+---@field doorChildren (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Items*Components*MiniMapGUIComponent*1Barotrauma*GUIComponent)|({[Barotrauma.Items.Components.MiniMapGUIComponent]:(Barotrauma.GUIComponent)})
+---`Field Private Instance`
+---@field weaponChildren (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Items*Components*MiniMapGUIComponent*1Barotrauma*GUIComponent)|({[Barotrauma.Items.Components.MiniMapGUIComponent]:(Barotrauma.GUIComponent)})
+---`Field Private Instance`
+---@field itemsFoundOnSub (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*ItemPrefab)|(Barotrauma.ItemPrefab[])
+---`Field Private Instance`
+---@field MiniMapBlips (System.Collections.Immutable.ImmutableHashSet*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field blipState System.Single
+---`Field Private Instance`
+---@field zoom System.Single
+---`Field Private Instance`
+---@field mapOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field dragMap System.Boolean
+---`Field Private Instance`
+---@field dragMapStart System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field recalculate System.Boolean
+---`Field Private Instance`
+---@field hasPower System.Boolean
+---`Field Public Static`
+---@field MiniMapBaseColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field WetHullColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field DoorIndicatorColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field NoPowerDoorColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field DefaultNeutralColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field HoverColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field BlueprintBlue Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field HullWaterColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field HullWaterLineColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field NoPowerColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field ElectricalBaseColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field NoPowerElectricalColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field cardRefreshDelay System.Single
+---`Field Private Static`
+---@field maxBlipState System.Single
+---`Field Private Static`
+---@field maxZoom System.Single
+---`Field Private Static`
+---@field minZoom System.Single
+---`Field Private Static`
+---@field defaultZoom System.Single
+---`Field Private Static`
+---@field dragTreshold System.Int32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Zoom System.Single
+---`Getter Private Instance`
+---@field IsPortableItemAllowed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsUsableOutsidePlayerSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireWaterDetectors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireOxygenDetectors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowHullIntegrity System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableHullStatus System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableElectricalView System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableItemFinder System.Boolean
+_G['Components']['MiniMap'] = {}
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].SetDefaultMode = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['MiniMap'].CreateGUI = function() end
+
+---`Method Private Static`
+---@param prefab Barotrauma.ItemPrefab
+---@return Barotrauma.Sprite
+_G['Components']['MiniMap'].GetPreviewSprite = function(prefab) end
+
+---`Method Private Static`
+---@param prefab1 Barotrauma.ItemPrefab
+---@param prefab2 Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['Components']['MiniMap'].DisplayAsSameItem = function(prefab1, prefab2) end
+
+---`Method Private Instance`
+---@param targetItem Barotrauma.Item
+---@return System.Boolean
+_G['Components']['MiniMap'].VisibleOnItemFinder = function(targetItem) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['Components']['MiniMap'].AddToGUIUpdateList = function(order) end
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].ClearHUD = function() end
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].RefreshHUD = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MiniMap'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.Submarine
+_G['Components']['MiniMap'].UpdateIDCards = function(sub) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['Components']['MiniMap'].DrawHUDFront = function(spriteBatch, container) end
+
+---`Method Private Instance`
+---@param sender Barotrauma.GUITextBox
+---@param key Microsoft.Xna.Framework.Input.Keys
+_G['Components']['MiniMap'].ControlSearchTooltip = function(sender, key) end
+
+---`Method Private Instance`
+---@param box Barotrauma.GUITextBox
+---@param text System.String
+---@return System.Boolean
+_G['Components']['MiniMap'].UpdateSearchTooltip = function(box, text) end
+
+---`Method Private Instance`
+---@param tooltip Barotrauma.GUIComponent
+---@param box Barotrauma.GUITextBox
+_G['Components']['MiniMap'].SetAutoCompletePosition = function(tooltip, box) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.ItemPrefab
+---@param parent Barotrauma.RectTransform
+_G['Components']['MiniMap'].CreateItemFrame = function(prefab, parent) end
+
+---`Method Private Instance`
+---@param text System.String
+_G['Components']['MiniMap'].SearchItems = function(text) end
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].UpdateHUDBack = function() end
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].HideModeSpecificFrames = function() end
+
+---`Method Private Static`
+---@param component Barotrauma.GUIComponent
+_G['Components']['MiniMap'].HideGUIComponent = function(component) end
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].UpdateHullStatus = function() end
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].UpdateElectricalView = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['Components']['MiniMap'].DrawHUDBack = function(spriteBatch, container) end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Point
+---@param header Barotrauma.LocalizedString
+---@param line1 Barotrauma.LocalizedString
+---@param line2 Barotrauma.LocalizedString
+---@param line3 Barotrauma.LocalizedString
+---@param line1Color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param line2Color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param line3Color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['MiniMap'].SetTooltip = function(pos, header, line1, line2, line3, line1Color, line2Color, line3Color) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.Submarine
+---@param container Microsoft.Xna.Framework.Rectangle
+_G['Components']['MiniMap'].BakeSubmarine = function(sub, container) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Components']['MiniMap'].DrawSubmarine = function(spriteBatch) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param item Barotrauma.Item
+---@param parent Microsoft.Xna.Framework.Rectangle
+---@param border Microsoft.Xna.Framework.Rectangle
+---@param inflate System.Int32
+_G['Components']['MiniMap'].DrawItem = function(spriteBatch, item, parent, border, inflate) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param structure Barotrauma.Structure
+---@param parent Microsoft.Xna.Framework.Rectangle
+---@param border Microsoft.Xna.Framework.Rectangle
+---@param inflate System.Int32
+_G['Components']['MiniMap'].DrawStructure = function(spriteBatch, structure, parent, border, inflate) end
+
+---`Method Private Static`
+---@overload fun(entity:Barotrauma.MapEntity, parentRect:Microsoft.Xna.Framework.RectangleF, worldBorders:Microsoft.Xna.Framework.RectangleF):(Microsoft.Xna.Framework.RectangleF)
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param parentRect Microsoft.Xna.Framework.RectangleF
+---@param worldBorders Microsoft.Xna.Framework.RectangleF
+---@return Microsoft.Xna.Framework.RectangleF
+_G['Components']['MiniMap'].ScaleRectToUI = function(rect, parentRect, worldBorders) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param hull Barotrauma.Hull
+---@param data Barotrauma.Items.Components.MiniMap.HullData
+---@param frame Barotrauma.GUIComponent
+_G['Components']['MiniMap'].DrawHullCards = function(spriteBatch, hull, data, frame) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@param linkedHulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+_G['Components']['MiniMap'].GetLinkedHulls = function(hull, linkedHulls) end
+
+---`Method Public Static`
+---@overload fun(sub:Barotrauma.Submarine, parent:Barotrauma.GUIComponent, settings:Barotrauma.Items.Components.MiniMapSettings):(Barotrauma.GUIFrame)
+---@param sub Barotrauma.Submarine
+---@param parent Barotrauma.GUIComponent
+---@param settings Barotrauma.Items.Components.MiniMapSettings
+---@param pointsOfInterest (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---@param elements System.Collections.Immutable.ImmutableDictionary
+---@return Barotrauma.GUIFrame
+_G['Components']['MiniMap'].CreateMiniMap = function(sub, parent, settings, pointsOfInterest, elements) end
+
+---`Method Private Static`
+---@param hulls (System.Collections.Immutable.ImmutableArray*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---@return (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Hull*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Hull)|({[Barotrauma.Hull]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*Hull)|(Barotrauma.Hull[]))})
+_G['Components']['MiniMap'].CombinedHulls = function(hulls) end
+
+---`Method Private Static`
+---@param mainHull Barotrauma.Hull
+---@param linkedHulls (System.Collections.Immutable.ImmutableArray*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---@param parent Barotrauma.GUIComponent
+---@param worldBorders Microsoft.Xna.Framework.RectangleF
+---@return Barotrauma.Items.Components.MiniMapHullData
+_G['Components']['MiniMap'].ConstructHullPolygon = function(mainHull, linkedHulls, parent, worldBorders) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['MiniMap'].ReceiveSignal = function(signal, connection) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['MiniMap'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+_G['Components']['MiniMap'].InitProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MiniMap'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['MiniMap'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MiniMap'].Pick = function(picker) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.MiniMap
+---@return Barotrauma.Items.Components.MiniMap
+_G['Components']['MiniMap'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.MiniMap
+---@return Barotrauma.Items.Components.MiniMap
+_G['Components']['MiniMap'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.MiniMap
+---@return Barotrauma.Items.Components.MiniMap
+_G['Components']['MiniMap'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.MiniMap
+---@return Barotrauma.Items.Components.MiniMap
+_G['Components']['MiniMap'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DF4D50.lua b/Meta/Types/client/_00007FFD97DF4D50.lua
new file mode 100644
index 0000000..2cbdeac
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF4D50.lua
@@ -0,0 +1,130 @@
+---@meta
+---@class Barotrauma.GUIButton : Barotrauma.GUIComponent
+---`Field NonPublic Instance`
+---@field textBlock Barotrauma.GUITextBlock
+---`Field NonPublic Instance`
+---@field frame Barotrauma.GUIFrame
+---`Field Public Instance`
+---@field OnClicked (Barotrauma.GUIButton.OnClickedHandler)|(fun(button:Barotrauma.GUIButton, obj:System.Object):(System.Boolean))
+---`Field Public Instance`
+---@field OnPressed (Barotrauma.GUIButton.OnPressedHandler)|(fun():(System.Boolean))
+---`Field Public Instance`
+---@field OnButtonDown (Barotrauma.GUIButton.OnButtonDownHandler)|(fun():(System.Boolean))
+---`Field Public Instance`
+---@field CanBeSelected System.Boolean
+---`Field Private Instance`
+---@field holdOverlay Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field requireHold System.Boolean
+---`Field Private Instance`
+---@field holdTimer System.Single
+---`Field Private Instance`
+---@field pulseTimer System.Single
+---`Field Private Instance`
+---@field pulseExpand System.Single
+---`Field Private Instance`
+---@field flashed System.Boolean
+---`Getter Public Instance`
+---@field TextBlock Barotrauma.GUITextBlock
+---`Getter Public Instance`
+---@field Frame Barotrauma.GUIFrame
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HoverColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SelectedColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PressedColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field OutlineColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoverTextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedTextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field DisabledTextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---@field FlashTimer System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Text Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceUpperCase Barotrauma.ForceUpperCase
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ToolTip Barotrauma.RichString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireHold System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldDurationSeconds System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Pulse System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClickSound Barotrauma.GUISoundType
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PlaySoundOnSelect System.Boolean
+_G['GUI']['Button'] = {}
+
+---`Method Public Instance Virtual`
+---@param style Barotrauma.GUIComponentStyle
+_G['GUI']['Button'].ApplyStyle = function(style) end
+
+---`Method Public Instance Virtual`
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param flashDuration? System.Single
+---@param useRectangleFlash? System.Boolean
+---@param useCircularFlash? System.Boolean
+---@param flashRectInflate? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['GUI']['Button'].Flash = function(color, flashDuration, useRectangleFlash, useCircularFlash, flashRectInflate) end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['Button'].Draw = function(spriteBatch) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['Button'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@overload fun(rectT:Barotrauma.RectTransform, textAlignment?:Barotrauma.Alignment, style?:System.String, color?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.GUIButton
+---@param rectT Barotrauma.RectTransform
+---@param text Barotrauma.LocalizedString
+---@param textAlignment? Barotrauma.Alignment
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.GUIButton
+_G['GUI']['Button'] = function(rectT, text, textAlignment, style, color) end
+
+---`Constructor Public Instance`
+---@overload fun(rectT:Barotrauma.RectTransform, textAlignment?:Barotrauma.Alignment, style?:System.String, color?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.GUIButton
+---@param rectT Barotrauma.RectTransform
+---@param text Barotrauma.LocalizedString
+---@param textAlignment? Barotrauma.Alignment
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.GUIButton
+_G['GUI']['Button'].__new = function(rectT, text, textAlignment, style, color) end
+
diff --git a/Meta/Types/client/_00007FFD97DF5780.lua b/Meta/Types/client/_00007FFD97DF5780.lua
new file mode 100644
index 0000000..c3b268f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF5780.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.Items.Components.OutpostTerminal : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field selectionUI Barotrauma.SubmarineSelection
+_G['Components']['OutpostTerminal'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['OutpostTerminal'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OutpostTerminal'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['OutpostTerminal'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OutpostTerminal
+_G['Components']['OutpostTerminal'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OutpostTerminal
+_G['Components']['OutpostTerminal'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF5AE8.lua b/Meta/Types/client/_00007FFD97DF5AE8.lua
new file mode 100644
index 0000000..53eda51
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF5AE8.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.Items.Components.OxygenGenerator : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field generatedAmount System.Single
+---`Field Private Instance`
+---@field ventList (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*Vent*2System*Single)|(System.ValueTuple*1Barotrauma*Items*Components*Vent*1System*Single[])
+---`Field Private Instance`
+---@field totalHullVolume System.Single
+---`Field Private Instance`
+---@field ventUpdateTimer System.Single
+---`Field Private Static`
+---@field VentUpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrFlow System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GeneratedAmount System.Single
+_G['Components']['OxygenGenerator'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OxygenGenerator'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['OxygenGenerator'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OxygenGenerator'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['OxygenGenerator'].GetVents = function() end
+
+---`Method Private Instance`
+---@param deltaOxygen System.Single
+---@param deltaTime System.Single
+_G['Components']['OxygenGenerator'].UpdateVents = function(deltaOxygen, deltaTime) end
+
+---`Method Public Instance`
+---@param targetVent Barotrauma.Items.Components.Vent
+---@return System.Single
+_G['Components']['OxygenGenerator'].GetVentOxygenFlow = function(targetVent) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenGenerator
+_G['Components']['OxygenGenerator'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenGenerator
+_G['Components']['OxygenGenerator'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF6AD0.lua b/Meta/Types/client/_00007FFD97DF6AD0.lua
new file mode 100644
index 0000000..74a4ad5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF6AD0.lua
@@ -0,0 +1,422 @@
+---@meta
+---@class Barotrauma.Items.Components.Reactor : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field powerLight Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field autoTempLight Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field graphTimer System.Single
+---`Field Private Instance`
+---@field updateGraphInterval System.Int32
+---`Field Private Instance`
+---@field fissionRateMeter Barotrauma.Sprite
+---`Field Private Instance`
+---@field turbineOutputMeter Barotrauma.Sprite
+---`Field Private Instance`
+---@field meterPointer Barotrauma.Sprite
+---`Field Private Instance`
+---@field sectorSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field tempMeterFrame Barotrauma.Sprite
+---`Field Private Instance`
+---@field tempMeterBar Barotrauma.Sprite
+---`Field Private Instance`
+---@field tempRangeIndicator Barotrauma.Sprite
+---`Field Private Instance`
+---@field graphLine Barotrauma.Sprite
+---`Field Private Instance`
+---@field graph Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field inventoryWindow Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field buttonArea Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field infographic Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field optimalRangeColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field offRangeColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field warningColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field temperatureColors (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Private Instance`
+---@field outputColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field loadColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field temperatureBoostSoundUp Barotrauma.RoundSound
+---`Field Private Instance`
+---@field temperatureBoostSoundDown Barotrauma.RoundSound
+---`Field Private Instance`
+---@field temperatureBoostUpButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field temperatureBoostDownButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field outputGraph (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field loadGraph (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field criticalHeatWarning Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field lowTemperatureWarning Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field criticalOutputWarning Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field inventoryContainer Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field paddedFrame Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field warningButtons (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*GUIButton)|({[System.String]:(Barotrauma.GUIButton)})
+---`Field Private Instance`
+---@field fissionRate System.Single
+---`Field Private Instance`
+---@field turbineOutput System.Single
+---`Field Private Instance`
+---@field temperature System.Single
+---`Field Private Instance`
+---@field autoTemp System.Boolean
+---`Field Private Instance`
+---@field fuelConsumptionRate System.Single
+---`Field Private Instance`
+---@field meltDownTimer System.Single
+---`Field Private Instance`
+---@field meltDownDelay System.Single
+---`Field Private Instance`
+---@field fireTimer System.Single
+---`Field Private Instance`
+---@field fireDelay System.Single
+---`Field Private Instance`
+---@field maxPowerOutput System.Single
+---`Field Private Instance`
+---@field minUpdatePowerOut System.Single
+---`Field Private Instance`
+---@field maxUpdatePowerOut System.Single
+---`Field Private Instance`
+---@field unsentChanges System.Boolean
+---`Field Private Instance`
+---@field sendUpdateTimer System.Single
+---`Field Private Instance`
+---@field degreeOfSuccess System.Single
+---`Field Private Instance`
+---@field optimalTemperature Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field allowedTemperature Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field optimalFissionRate Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field allowedFissionRate Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field optimalTurbineOutput Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field allowedTurbineOutput Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field signalControlledTargetFissionRate System.Nullable*1System*Single
+---`Field Private Instance`
+---@field signalControlledTargetTurbineOutput System.Nullable*1System*Single
+---`Field Private Instance`
+---@field lastReceivedFissionRateSignalTime System.Double
+---`Field Private Instance`
+---@field lastReceivedTurbineOutputSignalTime System.Double
+---`Field Private Instance`
+---@field temperatureBoost System.Single
+---`Field Private Instance`
+---@field _powerOn System.Boolean
+---`Field Private Instance`
+---@field lastUser Barotrauma.Character
+---`Field Private Instance`
+---@field prevAvailableFuel System.Single
+---`Field Private Static`
+---@field warningTexts (System.String-arr)|(System.String[])
+---`Field Private Static`
+---@field GraphSize System.Int32
+---`Field Private Static`
+---@field NetworkUpdateIntervalHigh System.Single
+---`Field Private Static`
+---@field TemperatureBoostAmount System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AutoTempSwitch Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PowerButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FissionRateScrollBar Barotrauma.GUIScrollBar
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TurbineOutputScrollBar Barotrauma.GUIScrollBar
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TriggerInfographic System.Boolean
+---`Getter Public Instance`
+---@field IsInfographicVisible System.Boolean
+---`Getter Public Instance`
+---@field AllowTemperatureBoost System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastAIUser Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastUserWasPlayer System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastUser Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPowerOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MeltdownDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Temperature System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FissionRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TurbineOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FuelConsumptionRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TemperatureCritical System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoTemp System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvailableFuel System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Load System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetFissionRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetTurbineOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CorrectTurbineOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExplosionDamagesOtherSubs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MeltedDownThisRound System.Boolean
+_G['Components']['Reactor'] = {}
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Reactor'].GetMaxOutput = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Reactor'].GetFuelConsumption = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Reactor'].CreateGUI = function() end
+
+---`Method Private Instance`
+---@param amount System.Single
+_G['Components']['Reactor'].ApplyTemperatureBoost = function(amount) end
+
+---`Method Private Instance`
+_G['Components']['Reactor'].InitInventoryUI = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Reactor'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['Components']['Reactor'].DrawTempMeter = function(spriteBatch, container) end
+
+---`Method Private Instance`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, container:Barotrauma.GUICustomComponent)
+---@param graph (System.Collections.Generic.IList*1System*Single)|(System.Single[])
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param maxVal System.Single
+---@param xOffset System.Single
+---@param color Microsoft.Xna.Framework.Color
+_G['Components']['Reactor'].DrawGraph = function(graph, spriteBatch, rect, maxVal, xOffset, color) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Reactor'].UpdateGraph = function(deltaTime) end
+
+---`Method Private Static`
+---@param graph (System.Collections.Generic.IList*1Barotrauma*Items*Components*Reactor*T)|(Barotrauma.Items.Components.Reactor.T[])
+---@param newValue Barotrauma.Items.Components.Reactor.T
+_G['Components']['Reactor'].UpdateGraph = function(graph, newValue) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['Components']['Reactor'].DrawFissionRateMeter = function(spriteBatch, container) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['Components']['Reactor'].DrawTurbineOutputMeter = function(spriteBatch, container) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Reactor'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param meterSprite Barotrauma.Sprite
+---@param value System.Single
+---@param range Microsoft.Xna.Framework.Vector2
+---@param optimalRange Microsoft.Xna.Framework.Vector2
+---@param allowedRange Microsoft.Xna.Framework.Vector2
+_G['Components']['Reactor'].DrawMeter = function(spriteBatch, rect, meterSprite, value, range, optimalRange, allowedRange) end
+
+---`Method Private Instance`
+_G['Components']['Reactor'].CreateInfrographic = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Reactor'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Reactor'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Reactor'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Components']['Reactor'].UpdateUIElementStates = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Reactor'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Reactor'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Reactor'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param load System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['Reactor'].MinMaxPowerOut = function(conn, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['Reactor'].GetConnectionPowerOut = function(conn, power, minMaxPower, load) end
+
+---`Method Private Instance`
+---@param fissionRate System.Single
+---@return System.Single
+_G['Components']['Reactor'].GetGeneratedHeat = function(fissionRate) end
+
+---`Method Private Instance`
+---@param minimumOutputRatio System.Single
+---@param minCondition? System.Single
+---@return System.Boolean
+_G['Components']['Reactor'].NeedMoreFuel = function(minimumOutputRatio, minCondition) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Reactor'].TooMuchFuel = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Reactor'].UpdateFailures = function(deltaTime) end
+
+---`Method Public Instance`
+---@param speed System.Single
+---@param deltaTime System.Single
+_G['Components']['Reactor'].UpdateAutoTemp = function(speed, deltaTime) end
+
+---`Method Public Instance`
+_G['Components']['Reactor'].PowerUpImmediately = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Reactor'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['Reactor'].MeltDown = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Reactor'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Reactor'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Reactor'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Reactor'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Reactor
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Reactor
+_G['Components']['Reactor'] = function(item, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Reactor
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Reactor
+_G['Components']['Reactor'].__new = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Reactor
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Reactor
+_G['Components']['Reactor'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Reactor
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Reactor
+_G['Components']['Reactor'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF7C10.lua b/Meta/Types/client/_00007FFD97DF7C10.lua
new file mode 100644
index 0000000..14b0436
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF7C10.lua
@@ -0,0 +1,464 @@
+---@meta
+---@class Barotrauma.Items.Components.Sonar : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field pathFinder Barotrauma.PathFinder
+---`Field Private Instance`
+---@field dynamicDockingIndicator System.Boolean
+---`Field Private Instance`
+---@field unsentChanges System.Boolean
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field activeTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field passiveTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field signalWarningText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field lowerAreaFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field zoomSlider Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field directionalModeSwitch Barotrauma.GUIButton
+---`Field Private Instance`
+---@field pingDragDirection System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field mineralScannerSwitch Barotrauma.GUIButton
+---`Field Private Instance`
+---@field controlContainer Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field sonarView Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field directionalPingBackground Barotrauma.Sprite
+---`Field Private Instance`
+---@field directionalPingButton (Barotrauma.Sprite-arr)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field pingCircle Barotrauma.Sprite
+---`Field Private Instance`
+---@field directionalPingCircle Barotrauma.Sprite
+---`Field Private Instance`
+---@field screenOverlay Barotrauma.Sprite
+---`Field Private Instance`
+---@field screenBackground Barotrauma.Sprite
+---`Field Private Instance`
+---@field sonarBlip Barotrauma.Sprite
+---`Field Private Instance`
+---@field lineSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field targetIcons (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Tuple*2Barotrauma*Sprite*2Microsoft*Xna*Framework*Color)|({[Barotrauma.Identifier]:(System.Tuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Color)})
+---`Field Private Instance`
+---@field displayBorderSize System.Single
+---`Field Private Instance`
+---@field sonarBlips (System.Collections.Generic.List*1Barotrauma*Items*Components*SonarBlip)|(Barotrauma.Items.Components.SonarBlip[])
+---`Field Private Instance`
+---@field prevPassivePingRadius System.Single
+---`Field Private Instance`
+---@field center Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field disruptionUpdateTimer System.Single
+---`Field Private Instance`
+---@field longRangeUpdateTimer System.Single
+---`Field Private Instance`
+---@field showDirectionalIndicatorTimer System.Single
+---`Field Private Instance`
+---@field nearbyObjects (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field nearbyObjectUpdateTimer System.Single
+---`Field Private Instance`
+---@field connectedSubs (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field connectedSubUpdateTimer System.Single
+---`Field Private Instance`
+---@field disruptedDirections (System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Vector2*2System*Single)|(System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1System*Single[])
+---`Field Private Instance`
+---@field markerDistances (System.Collections.Generic.Dictionary*1System*Object*1Barotrauma*CachedDistance)|({[System.Object]:(Barotrauma.CachedDistance)})
+---`Field Private Instance`
+---@field positiveColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field warningColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field negativeColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field markerColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field prevDockingDist System.Single
+---`Field Private Instance`
+---@field textBlocksToScaleAndNormalize (System.Collections.Generic.List*1Barotrauma*GUITextBlock)|(Barotrauma.GUITextBlock[])
+---`Field Private Instance`
+---@field isConnectedToSteering System.Boolean
+---`Field Private Instance`
+---@field cachedLocations (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*CachedLocation)|({[Barotrauma.Identifier]:(Barotrauma.CachedLocation)})
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field currentMode Barotrauma.Items.Components.Sonar.Mode
+---`Field Private Instance`
+---@field activePings (Barotrauma.Items.Components.ActivePing-arr)|(Barotrauma.Items.Components.Sonar.ActivePing[])
+---`Field Private Instance`
+---@field activePingsCount System.Int32
+---`Field Private Instance`
+---@field currentPingIndex System.Int32
+---`Field Private Instance`
+---@field zoom System.Single
+---`Field Private Instance`
+---@field useDirectionalPing System.Boolean
+---`Field Private Instance`
+---@field pingDirection Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field aiPingCheckPending System.Boolean
+---`Field Private Instance`
+---@field connectedTransducers (System.Collections.Generic.List*1Barotrauma*Items*Components*Sonar*ConnectedTransducer)|(Barotrauma.Items.Components.Sonar.ConnectedTransducer[])
+---`Field Private Instance`
+---@field hasMineralScanner System.Boolean
+---`Field Public Static`
+---@field controlBoxSize Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field controlBoxOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field sonarAreaSize System.Single
+---`Field Private Static`
+---@field blipColorGradient (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Sonar*BlipType*1Microsoft*Xna*Framework*Color-arr)|({[Barotrauma.Items.Components.Sonar.BlipType]:((Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[]))})
+---`Field Private Static`
+---@field caveLabel Barotrauma.LocalizedString
+---`Field Private Static`
+---@field enemyLabel Barotrauma.LocalizedString
+---`Field Private Static`
+---@field DirectionalPingDotProduct System.Single
+---`Field Private Static`
+---@field targetGroups (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Barotrauma*Character)|({[System.String]:((System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[]))})
+---`Field Private Static`
+---@field DisruptionUpdateInterval System.Single
+---`Field Private Static`
+---@field LongRangeUpdateInterval System.Single
+---`Field Private Static`
+---@field NearbyObjectUpdateInterval System.Single
+---`Field Private Static`
+---@field ConnectedSubUpdateInterval System.Single
+---`Field Public Static`
+---@field DefaultSonarRange System.Single
+---`Field Public Static`
+---@field PassivePowerConsumption System.Single
+---`Field Private Static`
+---@field DirectionalPingSector System.Single
+---`Field Private Static`
+---@field PingFrequency System.Single
+---`Field Private Static`
+---@field MinZoom System.Single
+---`Field Private Static`
+---@field MaxZoom System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SonarModeSwitch Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayRadius System.Single
+---`Getter Public Static`
+---@field GUISizeCalculation Microsoft.Xna.Framework.Vector2
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field MineralClusters (System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Vector2*2System*Collections*Generic*List*3Barotrauma*Item)|(System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1System*Collections*Generic*List*2Barotrauma*Item[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RightLayout System.Boolean
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---@field UseDirectionalPing System.Boolean
+---`Getter Public Instance`
+---@field ConnectedTransducers (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*SonarTransducer)|(fun():(Barotrauma.Items.Components.SonarTransducer))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DetectSubmarineWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseTransducers System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CenterOnTransducers System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HasMineralScanner System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseMineralScanner System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Zoom System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentMode Barotrauma.Items.Components.Sonar.Mode
+_G['Components']['Sonar'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Sonar'].OnResolutionChanged = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Sonar'].CreateGUI = function() end
+
+---`Method Private Instance`
+---@param direction Microsoft.Xna.Framework.Vector2
+_G['Components']['Sonar'].SetPingDirection = function(direction) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Sonar'].GetTransducerPos = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Sonar'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['Sonar'].AddMineralScannerSwitchToGUI = function() end
+
+---`Method Private Instance`
+_G['Components']['Sonar'].PreventMineralScannerOverlap = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Sonar'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param onButton System.Boolean
+---@return System.Boolean
+_G['Components']['Sonar'].MouseInDirectionalPingRing = function(rect, onButton) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['Components']['Sonar'].DrawSonar = function(spriteBatch, rect) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param transducerCenter Microsoft.Xna.Framework.Vector2
+---@param signalStrength System.Single
+_G['Components']['Sonar'].DrawOwnSubmarineBorders = function(spriteBatch, transducerCenter, signalStrength) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param width System.Int32
+_G['Components']['Sonar'].DrawLine = function(spriteBatch, start, luaKey__end, color, width) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param width System.Int32
+_G['Components']['Sonar'].DrawLineSprite = function(spriteBatch, start, luaKey__end, color, width) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param transducerCenter Microsoft.Xna.Framework.Vector2
+---@param signalStrength System.Single
+_G['Components']['Sonar'].DrawDockingPorts = function(spriteBatch, transducerCenter, signalStrength) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param steering Barotrauma.Items.Components.Steering
+---@param transducerCenter Microsoft.Xna.Framework.Vector2-ref
+_G['Components']['Sonar'].DrawDockingIndicator = function(spriteBatch, steering, transducerCenter) end
+
+---`Method Private Instance`
+---@param pingSource Microsoft.Xna.Framework.Vector2
+---@param worldPingRadius System.Single
+_G['Components']['Sonar'].UpdateDisruptions = function(pingSource, worldPingRadius) end
+
+---`Method Public Instance`
+---@param explosion Barotrauma.Explosion
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['Components']['Sonar'].RegisterExplosion = function(explosion, worldPosition) end
+
+---`Method Private Instance`
+---@param pingSource Microsoft.Xna.Framework.Vector2
+---@param transducerPos Microsoft.Xna.Framework.Vector2
+---@param pingRadius System.Single
+---@param prevPingRadius System.Single
+---@param displayScale System.Single
+---@param range System.Single
+---@param passive System.Boolean
+---@param pingStrength? System.Single
+---@param needsToBeInSector? Barotrauma.AITarget
+_G['Components']['Sonar'].Ping = function(pingSource, transducerPos, pingRadius, prevPingRadius, displayScale, range, passive, pingStrength, needsToBeInSector) end
+
+---`Method Private Instance`
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param pingSource Microsoft.Xna.Framework.Vector2
+---@param transducerPos Microsoft.Xna.Framework.Vector2
+---@param pingRadius System.Single
+---@param prevPingRadius System.Single
+---@param lineStep System.Single
+---@param zStep System.Single
+---@param range System.Single
+---@param pingStrength System.Single
+---@param passive System.Boolean
+---@param blipType? Barotrauma.Items.Components.Sonar.BlipType
+---@param needsToBeInSector? Barotrauma.AITarget
+_G['Components']['Sonar'].CreateBlipsForLine = function(point1, point2, pingSource, transducerPos, pingRadius, prevPingRadius, lineStep, zStep, range, pingStrength, passive, blipType, needsToBeInSector) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.Submarine
+---@param pingSource Microsoft.Xna.Framework.Vector2
+---@param transducerPos Microsoft.Xna.Framework.Vector2
+---@param pingRadius System.Single
+---@param prevPingRadius System.Single
+---@param range System.Single
+---@param passive System.Boolean
+_G['Components']['Sonar'].CreateBlipsForSubmarineWalls = function(sub, pingSource, transducerPos, pingRadius, prevPingRadius, range, passive) end
+
+---`Method Private Instance`
+---@param blip Barotrauma.Items.Components.SonarBlip
+---@param transducerPos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Sonar'].CheckBlipVisibility = function(blip, transducerPos) end
+
+---`Method Private Instance`
+---@param resourcePos Microsoft.Xna.Framework.Vector2
+---@param transducerPos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Sonar'].CheckResourceMarkerVisibility = function(resourcePos, transducerPos) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param blip Barotrauma.Items.Components.SonarBlip
+---@param transducerPos Microsoft.Xna.Framework.Vector2
+---@param center Microsoft.Xna.Framework.Vector2
+---@param strength System.Single
+---@param blipScale System.Single
+_G['Components']['Sonar'].DrawBlip = function(spriteBatch, blip, transducerPos, center, strength, blipScale) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param label System.String
+---@param iconIdentifier Barotrauma.Identifier
+---@param targetIdentifier Barotrauma.Identifier
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param transducerPosition Microsoft.Xna.Framework.Vector2
+---@param distanceThresholds Barotrauma.Range*1System*Single
+---@param offset Barotrauma.Range*1System*Single
+---@param minOffset System.Single
+_G['Components']['Sonar'].DrawOffsetMarker = function(spriteBatch, label, iconIdentifier, targetIdentifier, worldPosition, transducerPosition, distanceThresholds, offset, minOffset) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param label System.String
+---@param iconIdentifier Barotrauma.Identifier
+---@param targetIdentifier System.Object
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param transducerPosition Microsoft.Xna.Framework.Vector2
+---@param scale System.Single
+---@param center Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param onlyShowTextOnMouseOver? System.Boolean
+_G['Components']['Sonar'].DrawMarker = function(spriteBatch, label, iconIdentifier, targetIdentifier, worldPosition, transducerPosition, scale, center, radius, onlyShowTextOnMouseOver) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Sonar'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Sonar'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Sonar'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Components']['Sonar'].UpdateGUIElements = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Sonar'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Sonar'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AITarget)|(fun():(Barotrauma.AITarget))
+_G['Components']['Sonar'].GetAITargets = function() end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Sonar'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Sonar'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Sonar'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Private Instance`
+---@param dir Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.LocalizedString
+_G['Components']['Sonar'].GetDirectionName = function(dir) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Sonar'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Sonar'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Sonar'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'] = function(item, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'].__new = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF7F90.lua b/Meta/Types/client/_00007FFD97DF7F90.lua
new file mode 100644
index 0000000..2e949e7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF7F90.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.Items.Components.SonarTransducer : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field sendSignalTimer System.Single
+---`Field Public Instance`
+---@field ConnectedSonar Barotrauma.Items.Components.Sonar
+---`Field Private Static`
+---@field SendSignalInterval System.Single
+_G['Components']['SonarTransducer'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['SonarTransducer'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['SonarTransducer'].GetCurrentPowerConsumption = function(connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SonarTransducer
+_G['Components']['SonarTransducer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SonarTransducer
+_G['Components']['SonarTransducer'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF8C88.lua b/Meta/Types/client/_00007FFD97DF8C88.lua
new file mode 100644
index 0000000..da37090
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF8C88.lua
@@ -0,0 +1,338 @@
+---@meta
+---@class Barotrauma.Items.Components.Steering : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field steeringModeSwitch Barotrauma.GUIButton
+---`Field Private Instance`
+---@field autopilotIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field manualPilotIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field maintainPosTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field levelEndTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field levelStartTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field statusContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field dockingContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field dockingNetworkMessagePending System.Boolean
+---`Field Private Instance`
+---@field dockingButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field dockText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field undockText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field steerArea Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field pressureWarningText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field iceSpireWarningText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field tipContainer Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field noPowerTip Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field autoPilotMaintainPosTip Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field autoPilotLevelStartTip Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field autoPilotLevelEndTip Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field maintainPosIndicator Barotrauma.Sprite
+---`Field Private Instance`
+---@field maintainPosOriginIndicator Barotrauma.Sprite
+---`Field Private Instance`
+---@field steeringIndicator Barotrauma.Sprite
+---`Field Private Instance`
+---@field connectedPorts (System.Collections.Generic.List*1Barotrauma*Items*Components*DockingPort)|(Barotrauma.Items.Components.DockingPort[])
+---`Field Private Instance`
+---@field checkConnectedPortsTimer System.Single
+---`Field Public Instance`
+---@field ActiveDockingSource Barotrauma.Items.Components.DockingPort
+---`Field Public Instance`
+---@field DockingTarget Barotrauma.Items.Components.DockingPort
+---`Field Private Instance`
+---@field keyboardInput Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field inputCumulation System.Single
+---`Field Private Instance`
+---@field swapDestinationOrder System.Nullable*1System*Boolean
+---`Field Private Instance`
+---@field enterOutpostPrompt Barotrauma.GUIMessageBox
+---`Field Private Instance`
+---@field exitOutpostPrompt Barotrauma.GUIMessageBox
+---`Field Private Instance`
+---@field levelStartSelected System.Boolean
+---`Field Private Instance`
+---@field levelEndSelected System.Boolean
+---`Field Private Instance`
+---@field maintainPos System.Boolean
+---`Field Private Instance`
+---@field steerRadius System.Single
+---`Field Private Instance`
+---@field disableControls System.Boolean
+---`Field Private Instance`
+---@field targetVelocity Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field steeringInput Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field autoPilot System.Boolean
+---`Field Private Instance`
+---@field posToMaintain System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field steeringPath Barotrauma.SteeringPath
+---`Field Private Instance`
+---@field pathFinder Barotrauma.PathFinder
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field unsentChanges System.Boolean
+---`Field Private Instance`
+---@field autopilotRayCastTimer System.Single
+---`Field Private Instance`
+---@field autopilotRecalculatePathTimer System.Single
+---`Field Private Instance`
+---@field avoidStrength Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field neutralBallastLevel System.Single
+---`Field Private Instance`
+---@field steeringAdjustSpeed System.Single
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field sonar Barotrauma.Items.Components.Sonar
+---`Field Private Instance`
+---@field controlledSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field navigateTactically System.Boolean
+---`Field Private Instance`
+---@field showIceSpireWarning System.Boolean
+---`Field Private Instance`
+---@field connectedSubs (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field connectedSubUpdateTimer System.Single
+---`Field Private Instance`
+---@field lastReceivedSteeringSignalTime System.Double
+---`Field Private Instance`
+---@field debugDrawObstacles (System.Collections.Generic.List*1Barotrauma*Items*Components*Steering*ObstacleDebugInfo)|(Barotrauma.Items.Components.Steering.ObstacleDebugInfo[])
+---`Field Public Instance`
+---@field DockingSources (System.Collections.Generic.List*1Barotrauma*Items*Components*DockingPort)|(Barotrauma.Items.Components.DockingPort[])
+---`Field Private Instance`
+---@field searchedConnectedDockingPort System.Boolean
+---`Field Private Instance`
+---@field dockingModeEnabled System.Boolean
+---`Field Private Static`
+---@field CheckConnectedPortsInterval System.Single
+---`Field Public Static`
+---@field AutopilotMinDistToPathNode System.Single
+---`Field Private Static`
+---@field AutopilotRayCastInterval System.Single
+---`Field Private Static`
+---@field RecalculatePathInterval System.Single
+---`Field Private Static`
+---@field AutoPilotSteeringLerp System.Single
+---`Field Private Static`
+---@field AutoPilotMaxSpeed System.Single
+---`Field Private Static`
+---@field AIPilotMaxSpeed System.Single
+---`Field Public Static`
+---@field PressureWarningThreshold System.Single
+---`Field Private Static`
+---@field DefaultSteeringAdjustSpeed System.Single
+---`Field Private Static`
+---@field ConnectedSubUpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ControlContainer Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelStartSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelEndSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaintainPos System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SteerRadius System.Nullable*1System*Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableControls System.Boolean
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AITacticalTarget Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AIRamTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoPilot System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeutralBallastLevel System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockingAssistThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field TargetVelocityLengthSquared System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SteeringInput Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field SteeringPath Barotrauma.SteeringPath
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PosToMaintain System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockingModeEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseAutoDocking System.Boolean
+_G['Components']['Steering'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Steering'].CreateGUI = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Steering'].OnResolutionChanged = function() end
+
+---`Method Public Instance`
+---@param sonarView Barotrauma.GUICustomComponent
+_G['Components']['Steering'].AttachToSonarHUD = function(sonarView) end
+
+---`Method Private Static`
+---@param steeringVector Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Steering'].MapSquareToCircle = function(steeringVector) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['Components']['Steering'].DrawHUD = function(spriteBatch, rect) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param transducerCenter Microsoft.Xna.Framework.Vector2
+---@param displayScale System.Single
+---@param displayRadius System.Single
+---@param center Microsoft.Xna.Framework.Vector2
+_G['Components']['Steering'].DebugDrawHUD = function(spriteBatch, transducerCenter, displayScale, displayRadius, center) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Steering'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param btn Barotrauma.GUIButton
+---@param userdata System.Object
+---@return System.Boolean
+_G['Components']['Steering'].NudgeButtonClicked = function(btn, userdata) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Steering'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Steering'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Steering'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Components']['Steering'].UpdateGUIElements = function() end
+
+---`Method Private Instance`
+_G['Components']['Steering'].FindConnectedDockingPort = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Steering'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Steering'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Steering'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Steering'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+_G['Components']['Steering'].IncreaseSkillLevel = function(user, deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Steering'].UpdateAutoPilot = function(deltaTime) end
+
+---`Method Private Instance`
+---@param node Barotrauma.PathNode
+---@param nextNode Barotrauma.PathNode
+---@return System.Nullable*1System*Single
+_G['Components']['Steering'].GetNodePenalty = function(node, nextNode) end
+
+---`Method Private Instance`
+_G['Components']['Steering'].UpdatePath = function() end
+
+---`Method Public Instance`
+_G['Components']['Steering'].SetDestinationLevelStart = function() end
+
+---`Method Public Instance`
+_G['Components']['Steering'].SetDestinationLevelEnd = function() end
+
+---`Method Private Instance`
+_G['Components']['Steering'].SetDestinationTactical = function() end
+
+---`Method Private Instance`
+_G['Components']['Steering'].SetMaintainPosition = function() end
+
+---`Method Private Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param slowdownAmount System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Steering'].GetSteeringVelocity = function(worldPosition, slowdownAmount) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Steering'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Steering'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Steering
+_G['Components']['Steering'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Steering
+_G['Components']['Steering'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF8FF0.lua b/Meta/Types/client/_00007FFD97DF8FF0.lua
new file mode 100644
index 0000000..b61a99e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF8FF0.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Items.Components.Vent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field oxygenFlow System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenFlow System.Single
+_G['Components']['Vent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Vent'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Vent
+_G['Components']['Vent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Vent
+_G['Components']['Vent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF9718.lua b/Meta/Types/client/_00007FFD97DF9718.lua
new file mode 100644
index 0000000..895bcf6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF9718.lua
@@ -0,0 +1,152 @@
+---@meta
+---@class Barotrauma.Items.Components.PowerTransfer : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field powerIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field highVoltageIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field lowVoltageIndicator Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field powerLabel Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field loadLabel Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field prevLanguage Barotrauma.LanguageIdentifier
+---`Field Private Instance`
+---@field signalConnections (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Instance`
+---@field connectionDirty (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Boolean)|({[Barotrauma.Items.Components.Connection]:(System.Boolean)})
+---`Field Private Instance`
+---@field connectedRecipients (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Collections*Generic*HashSet*2Barotrauma*Items*Components*Connection)|({[Barotrauma.Items.Components.Connection]:((System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[]))})
+---`Field Private Instance`
+---@field overloadCooldownTimer System.Single
+---`Field NonPublic Instance`
+---@field powerLoad System.Single
+---`Field NonPublic Instance`
+---@field isBroken System.Boolean
+---`Field Private Instance`
+---@field extraLoad System.Single
+---`Field Private Instance`
+---@field extraLoadSetTime System.Single
+---`Field Private Instance`
+---@field canTransfer System.Boolean
+---`Field Private Instance`
+---@field prevSentPowerValue System.Int32
+---`Field Private Instance`
+---@field powerSignal System.String
+---`Field Private Instance`
+---@field prevSentLoadValue System.Int32
+---`Field Private Instance`
+---@field loadSignal System.String
+---`Field Private Static`
+---@field recipientsToRefresh (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerTransfer)|(Barotrauma.Items.Components.PowerTransfer[])
+---`Field Private Static`
+---@field OverloadCooldown System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PowerConnections (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerLoad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBeOverloaded System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OverloadVoltage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Overload System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraLoad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanTransfer System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+_G['Components']['PowerTransfer'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerTransfer'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['Components']['PowerTransfer'].InitProjectSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerTransfer'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerTransfer'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['PowerTransfer'].GetConnectionPowerOut = function(conn, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['PowerTransfer'].Pick = function(picker) end
+
+---`Method NonPublic Instance`
+_G['Components']['PowerTransfer'].RefreshConnections = function() end
+
+---`Method Private Instance`
+---@param c Barotrauma.Items.Components.Connection
+---@param connected (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+_G['Components']['PowerTransfer'].GetConnected = function(c, connected) end
+
+---`Method Public Instance`
+_G['Components']['PowerTransfer'].SetAllConnectionsDirty = function() end
+
+---`Method Public Instance`
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['PowerTransfer'].SetConnectionDirty = function(connection) end
+
+---`Method Public Instance Virtual`
+_G['Components']['PowerTransfer'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['PowerTransfer'].ReceiveSignal = function(signal, connection) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['PowerTransfer'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97DF9B30.lua b/Meta/Types/client/_00007FFD97DF9B30.lua
new file mode 100644
index 0000000..e6ae88c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF9B30.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.Items.Components.ArithmeticComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field receivedSignal (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field timeFrame System.Single
+---`Field NonPublic Instance`
+---@field signalSender (Barotrauma.Character-arr)|(Barotrauma.Character[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClampMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClampMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimeFrame System.Single
+_G['Components']['ArithmeticComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ArithmeticComponent'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['ArithmeticComponent'].Calculate = function(signal1, signal2) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ArithmeticComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['ArithmeticComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['ArithmeticComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DF9CD8.lua b/Meta/Types/client/_00007FFD97DF9CD8.lua
new file mode 100644
index 0000000..76bade1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DF9CD8.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.AdderComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['AdderComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['AdderComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AdderComponent
+_G['Components']['AdderComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AdderComponent
+_G['Components']['AdderComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFA160.lua b/Meta/Types/client/_00007FFD97DFA160.lua
new file mode 100644
index 0000000..641abe0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFA160.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Items.Components.AndComponent : Barotrauma.Items.Components.BooleanOperatorComponent
+_G['Components']['AndComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param numTrueInputs System.Int32
+---@return System.Boolean
+_G['Components']['AndComponent'].GetOutput = function(numTrueInputs) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AndComponent
+_G['Components']['AndComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AndComponent
+_G['Components']['AndComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFA660.lua b/Meta/Types/client/_00007FFD97DFA660.lua
new file mode 100644
index 0000000..ee7948b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFA660.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.Items.Components.ButtonTerminal : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field terminalButtonStyles (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field containerHolder Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field containerIndicator Barotrauma.GUIImage
+---`Field Private Instance`
+---@field indicatorStyleRed Barotrauma.GUIComponentStyle
+---`Field Private Instance`
+---@field indicatorStyleGreen Barotrauma.GUIComponentStyle
+---`Field Private Instance`
+---@field requiredSignalCount System.Int32
+---`Field Private Instance`
+---@field buttonSignalDefinitions (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Signals (System.String-arr)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ActivatingItems System.String
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Container Barotrauma.Items.Components.ItemContainer
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ActivatingItemPrefabs (System.Collections.Generic.HashSet*1Barotrauma*ItemPrefab)|(Barotrauma.ItemPrefab[])
+---`Getter Private Instance`
+---@field IsActivated System.Boolean
+_G['Components']['ButtonTerminal'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ButtonTerminal'].CreateGUI = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ButtonTerminal'].OnResolutionChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ButtonTerminal'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['ButtonTerminal'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ButtonTerminal'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ButtonTerminal'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['ButtonTerminal'].OnItemLoadedProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ButtonTerminal'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['ButtonTerminal'].LoadSignals = function() end
+
+---`Method Private Instance`
+_G['Components']['ButtonTerminal'].LoadActivatingItems = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ButtonTerminal'].Reset = function() end
+
+---`Method Private Instance`
+---@param signalIndex System.Int32
+---@param sender Barotrauma.Character
+---@param ignoreState? System.Boolean
+---@param overrideSignal? System.String
+---@return System.Boolean
+_G['Components']['ButtonTerminal'].SendSignal = function(signalIndex, sender, ignoreState, overrideSignal) end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['ButtonTerminal'].ValidateEventData = function(data) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ButtonTerminal'].Write = function(msg, extraData) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ButtonTerminal
+_G['Components']['ButtonTerminal'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ButtonTerminal
+_G['Components']['ButtonTerminal'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFA968.lua b/Meta/Types/client/_00007FFD97DFA968.lua
new file mode 100644
index 0000000..afbb0c4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFA968.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Items.Components.ColorComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field receivedSignal (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHSV System.Boolean
+_G['Components']['ColorComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ColorComponent'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['ColorComponent'].UpdateOutput = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ColorComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ColorComponent
+_G['Components']['ColorComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ColorComponent
+_G['Components']['ColorComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFABE8.lua b/Meta/Types/client/_00007FFD97DFABE8.lua
new file mode 100644
index 0000000..b35e4a6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFABE8.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.Items.Components.StringComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field receivedSignal (System.String-arr)|(System.String[])
+---`Field NonPublic Instance`
+---@field timeFrame System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimeFrame System.Single
+_G['Components']['StringComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['StringComponent'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param signal1 System.String
+---@param signal2 System.String
+---@return System.String
+_G['Components']['StringComponent'].Calculate = function(signal1, signal2) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['StringComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.StringComponent
+_G['Components']['StringComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.StringComponent
+_G['Components']['StringComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFAE20.lua b/Meta/Types/client/_00007FFD97DFAE20.lua
new file mode 100644
index 0000000..ca0fd47
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFAE20.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Items.Components.ConcatComponent : Barotrauma.Items.Components.StringComponent
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Separator System.String
+_G['Components']['ConcatComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.String
+---@param signal2 System.String
+---@return System.String
+_G['Components']['ConcatComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConcatComponent
+_G['Components']['ConcatComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConcatComponent
+_G['Components']['ConcatComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFBDC8.lua b/Meta/Types/client/_00007FFD97DFBDC8.lua
new file mode 100644
index 0000000..587df12
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFBDC8.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.Items.Components.Signal : System.ValueType
+---`Field Public Instance`
+---@field value System.String
+---`Field Public Instance`
+---@field stepsTaken System.Int32
+---`Field Public Instance`
+---@field sender Barotrauma.Character
+---`Field Public Instance`
+---@field source Barotrauma.Item
+---`Field Public Instance`
+---@field power System.Single
+---`Field Public Instance`
+---@field strength System.Single
+---`Field Public Instance`
+---@field CreationTime System.Double
+---`Getter Public Instance`
+---@field TimeSinceCreated System.Double
+_G['Signal'] = {}
+
+---`Method NonPublic Instance`
+---@param stepsTaken System.Int32
+---@return Barotrauma.Items.Components.Signal
+_G['Signal'].WithStepsTaken = function(stepsTaken) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@param stepsTaken? System.Int32
+---@param sender? Barotrauma.Character
+---@param source? Barotrauma.Item
+---@param power? System.Single
+---@param strength? System.Single
+---@return Barotrauma.Items.Components.Signal
+_G['Signal'] = function(value, stepsTaken, sender, source, power, strength) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@param stepsTaken? System.Int32
+---@param sender? Barotrauma.Character
+---@param source? Barotrauma.Item
+---@param power? System.Single
+---@param strength? System.Single
+---@return Barotrauma.Items.Components.Signal
+_G['Signal'].__new = function(value, stepsTaken, sender, source, power, strength) end
+
diff --git a/Meta/Types/client/_00007FFD97DFBE98.lua b/Meta/Types/client/_00007FFD97DFBE98.lua
new file mode 100644
index 0000000..578fd5f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFBE98.lua
@@ -0,0 +1,258 @@
+---@meta
+---@class Barotrauma.Items.Components.Connection : System.Object
+---`Field Private Instance`
+---@field flashColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field flashDuration System.Single
+---`Field Private Instance`
+---@field lastSignalToolTip System.ValueTuple*1System*String*1Barotrauma*LocalizedString
+---`Field Private Instance`
+---@field lastPowerToolTip System.ValueTuple*1System*Int32*1Barotrauma*LocalizedString
+---`Field Public Instance`
+---@field MaxPlayerConnectableWires System.Int32
+---`Field Public Instance`
+---@field MaxWires System.Int32
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field wires (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire)|(Barotrauma.Items.Components.Wire[])
+---`Field Public Instance`
+---@field CircuitBoxConnections (System.Collections.Generic.List*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---`Field Private Instance`
+---@field enumeratingWires System.Boolean
+---`Field Private Instance`
+---@field removedWires (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire)|(Barotrauma.Items.Components.Wire[])
+---`Field Private Instance`
+---@field item Barotrauma.Item
+---`Field Public Instance`
+---@field IsOutput System.Boolean
+---`Field Public Instance`
+---@field Effects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Public Instance`
+---@field LoadedWires (System.Collections.Generic.List*1System*ValueTuple*2System*UInt16*2System*Nullable*3System*Int32)|(System.ValueTuple*1System*UInt16*1System*Nullable*2System*Int32[])
+---`Field Public Instance`
+---@field Grid Barotrauma.Items.Components.GridInfo
+---`Field Public Instance`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Field Private Instance`
+---@field recipientsDirty System.Boolean
+---`Field Private Instance`
+---@field recipients (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Static`
+---@field connector Barotrauma.Sprite
+---`Field Private Static`
+---@field wireVertical Barotrauma.Sprite
+---`Field Private Static`
+---@field connectionSprite Barotrauma.Sprite
+---`Field Private Static`
+---@field connectionSpriteHighlight Barotrauma.Sprite
+---`Field Private Static`
+---@field screwSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Static`
+---@field DefaultMaxWires System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FlashTimer System.Single
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DraggingConnected Barotrauma.Items.Components.Wire
+---`Getter Private Static`
+---@field ConnectionSpriteSize System.Single
+---`Getter Public Instance`
+---@field Wires (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Wire)|(fun():(Barotrauma.Items.Components.Wire))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastSentSignal Barotrauma.Items.Components.Signal
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastReceivedSignal Barotrauma.Items.Components.Signal
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsPower System.Boolean
+---`Getter Public Instance`
+---@field Recipients (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---@field Item Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConnectionPanel Barotrauma.Items.Components.ConnectionPanel
+_G['Components']['Connection'] = {}
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@param dragArea Microsoft.Xna.Framework.Rectangle
+---@param character Barotrauma.Character
+---@param tooltip System.ValueTuple
+_G['Components']['Connection'].DrawConnections = function(spriteBatch, panel, dragArea, character, tooltip) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param c Barotrauma.Items.Components.Connection
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale System.Single
+---@param tooltip Barotrauma.LocalizedString-ref
+_G['Components']['Connection'].DrawConnectionDebugInfo = function(spriteBatch, c, position, scale, tooltip) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@param position Microsoft.Xna.Framework.Vector2
+---@param labelPos Microsoft.Xna.Framework.Vector2
+_G['Components']['Connection'].DrawConnection = function(spriteBatch, panel, position, labelPos) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@param position Microsoft.Xna.Framework.Vector2
+---@param wirePosition Microsoft.Xna.Framework.Vector2
+---@param mouseIn System.Boolean
+---@param equippedWire Barotrauma.Items.Components.Wire
+---@param wireInterval System.Single
+_G['Components']['Connection'].DrawWires = function(spriteBatch, panel, position, wirePosition, mouseIn, equippedWire, wireInterval) end
+
+---`Method Public Instance`
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param flashDuration? System.Single
+_G['Components']['Connection'].Flash = function(color, flashDuration) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Components']['Connection'].UpdateFlashTimer = function(deltaTime) end
+
+---`Method Private Instance`
+---@return Barotrauma.LocalizedString
+_G['Components']['Connection'].GetToolTip = function() end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param wire Barotrauma.Items.Components.Wire
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param start Microsoft.Xna.Framework.Vector2
+---@param equippedWire Barotrauma.Items.Components.Wire
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@param label Barotrauma.LocalizedString
+_G['Components']['Connection'].DrawWire = function(spriteBatch, wire, luaKey__end, start, equippedWire, panel, label) end
+
+---`Method Public Static`
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@param newRectSize Microsoft.Xna.Framework.Point-ref
+---@return System.Boolean
+_G['Components']['Connection'].CheckConnectionLabelOverlap = function(panel, newRectSize) end
+
+---`Method Private Static`
+---@param connectorPosition Microsoft.Xna.Framework.Vector2
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@param connection Barotrauma.Items.Components.Connection
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Connection'].GetInputLabelPosition = function(connectorPosition, panel, connection) end
+
+---`Method Private Static`
+---@param connectorPosition Microsoft.Xna.Framework.Vector2
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@param connection Barotrauma.Items.Components.Connection
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Connection'].GetOutputLabelPosition = function(connectorPosition, panel, connection) end
+
+---`Method Private Static`
+---@param labelPos Microsoft.Xna.Framework.Vector2
+---@param text System.String
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Components']['Connection'].GetLabelArea = function(labelPos, text) end
+
+---`Method Private Static`
+---@param x System.Int32
+---@param y System.Int32
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Connection'].GetLeftPos = function(x, y) end
+
+---`Method Private Static`
+---@param x System.Int32
+---@param y System.Int32
+---@param width System.Int32
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Connection'].GetRightPos = function(x, y, width) end
+
+---`Method Private Static`
+---@param height System.Int32
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@return System.Int32
+_G['Components']['Connection'].GetConnectorIntervalLeft = function(height, panel) end
+
+---`Method Private Static`
+---@param height System.Int32
+---@param panel Barotrauma.Items.Components.ConnectionPanel
+---@return System.Int32
+_G['Components']['Connection'].GetConnectorIntervalRight = function(height, panel) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Components']['Connection'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Connection'].IsConnectedToSomething = function() end
+
+---`Method Public Instance`
+_G['Components']['Connection'].SetRecipientsDirty = function() end
+
+---`Method Private Instance`
+_G['Components']['Connection'].RefreshRecipients = function() end
+
+---`Method Public Instance`
+---@param it Barotrauma.Item
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Connection'].FindWireByItem = function(it) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Connection'].WireSlotsAvailable = function() end
+
+---`Method Public Instance`
+---@param wire Barotrauma.Items.Components.Wire
+---@return System.Boolean
+_G['Components']['Connection'].TryAddLink = function(wire) end
+
+---`Method Public Instance`
+---@param wire Barotrauma.Items.Components.Wire
+_G['Components']['Connection'].DisconnectWire = function(wire) end
+
+---`Method Public Instance`
+---@param wire Barotrauma.Items.Components.Wire
+_G['Components']['Connection'].ConnectWire = function(wire) end
+
+---`Method Public Instance`
+---@param signal Barotrauma.Items.Components.Signal
+_G['Components']['Connection'].SendSignal = function(signal) end
+
+---`Method Public Static`
+---@param signal Barotrauma.Items.Components.Signal
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['Connection'].SendSignalIntoConnection = function(signal, conn) end
+
+---`Method Public Instance`
+_G['Components']['Connection'].ClearConnections = function() end
+
+---`Method Public Instance`
+_G['Components']['Connection'].InitializeFromLoaded = function() end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+_G['Components']['Connection'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param connectionPanel Barotrauma.Items.Components.ConnectionPanel
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Items.Components.Connection
+_G['Components']['Connection'] = function(element, connectionPanel, idRemap) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param connectionPanel Barotrauma.Items.Components.ConnectionPanel
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Items.Components.Connection
+_G['Components']['Connection'].__new = function(element, connectionPanel, idRemap) end
+
diff --git a/Meta/Types/client/_00007FFD97DFC7A8.lua b/Meta/Types/client/_00007FFD97DFC7A8.lua
new file mode 100644
index 0000000..5609626
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFC7A8.lua
@@ -0,0 +1,179 @@
+---@meta
+---@class Barotrauma.Items.Components.ConnectionPanel : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field rewireSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field rewireSoundTimer System.Single
+---`Field Private Instance`
+---@field originalMaxSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field originalRelativeSize Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field dragArea Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Public Instance`
+---@field DisconnectedWires (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire)|(Barotrauma.Items.Components.Wire[])
+---`Field Private Instance`
+---@field disconnectedWireIds (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Private Instance`
+---@field linksInitialized System.Boolean
+---`Field Public Static`
+---@field DebugWiringMode System.Boolean
+---`Field Public Static`
+---@field DebugWiringEnabledUntil System.Double
+---`Field Public Static`
+---@field HighlightedWire Barotrauma.Items.Components.Wire
+---`Field Private Static`
+---@field RewireSoundDuration System.Single
+---`Field Private Static`
+---@field MaxConnectionCount System.Int32
+---`Getter Public Static`
+---@field ShouldDebugDrawWiring System.Boolean
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---@field AlwaysAllowRewiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Locked System.Boolean
+---`Getter Public Instance`
+---@field TemporarilyLocked System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---@field User Barotrauma.Character
+_G['Components']['ConnectionPanel'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ConnectionPanel'].CreateGUI = function() end
+
+---`Method Public Instance`
+_G['Components']['ConnectionPanel'].TriggerRewiringSound = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['ConnectionPanel'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].ShouldDrawHUD = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ConnectionPanel'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param container Barotrauma.GUICustomComponent
+_G['Components']['ConnectionPanel'].DrawConnections = function(spriteBatch, container) end
+
+---`Method Private Instance`
+_G['Components']['ConnectionPanel'].CheckForLabelOverlap = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['ConnectionPanel'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['Components']['ConnectionPanel'].ApplyRemoteState = function(msg) end
+
+---`Method Private Instance`
+_G['Components']['ConnectionPanel'].InitProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ConnectionPanel'].OnMapLoaded = function() end
+
+---`Method Public Instance`
+_G['Components']['ConnectionPanel'].InitializeLinks = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ConnectionPanel'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Components']['ConnectionPanel'].MoveConnectedWires = function(amount) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ConnectionPanel'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ConnectionPanel'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['ConnectionPanel'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].CanRewire = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].Select = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].Use = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].CheckCharacterSuccess = function(character) end
+
+---`Method Public Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['ConnectionPanel'].Load = function(element, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['ConnectionPanel'].Save = function(parentElement) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ConnectionPanel'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ConnectionPanel'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ConnectionPanel'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ConnectionPanel'].ClientEventWrite = function(msg, extraData) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConnectionPanel
+_G['Components']['ConnectionPanel'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConnectionPanel
+_G['Components']['ConnectionPanel'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFCEC0.lua b/Meta/Types/client/_00007FFD97DFCEC0.lua
new file mode 100644
index 0000000..28578c5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFCEC0.lua
@@ -0,0 +1,151 @@
+---@meta
+---@class Barotrauma.Items.Components.CustomInterface : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field uiElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field uiElementContainer Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field readingNetworkEvent System.Boolean
+---`Field Private Instance`
+---@field insufficientPowerWarning Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field labels (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field signals (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field elementStates (System.Boolean-arr)|(System.Boolean[])
+---`Field Private Instance`
+---@field customInterfaceElementList (System.Collections.Generic.List*1Barotrauma*Items*Components*CustomInterface*CustomInterfaceElement)|(Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement[])
+---`Getter Private Instance`
+---@field ElementMaxSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Labels System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Signals System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ElementStates System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowInsufficientPowerWarning System.Boolean
+_G['Components']['CustomInterface'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['CustomInterface'].CreateGUI = function() end
+
+---`Method Public Instance Virtual`
+---@param editor Barotrauma.SerializableEntityEditor
+_G['Components']['CustomInterface'].CreateEditingHUD = function(editor) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param color Microsoft.Xna.Framework.Color
+---@param duration System.Single
+---@param pulsateAmount? System.Single
+_G['Components']['CustomInterface'].HighlightElement = function(index, color, duration, pulsateAmount) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['CustomInterface'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Private Instance`
+---@param uiElement Barotrauma.GUIComponent
+_G['Components']['CustomInterface'].UpdateSignalProjSpecific = function(uiElement) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['CustomInterface'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['CustomInterface'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param newLabels (System.String-arr)|(System.String[])
+_G['Components']['CustomInterface'].UpdateLabels = function(newLabels) end
+
+---`Method Private Instance`
+---@param newSignals (System.String-arr)|(System.String[])
+_G['Components']['CustomInterface'].UpdateSignals = function(newSignals) end
+
+---`Method Private Instance`
+---@param element Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+_G['Components']['CustomInterface'].SetPropertyValueToSignal = function(element) end
+
+---`Method Private Instance`
+---@param element Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+_G['Components']['CustomInterface'].SetSignalToPropertyValue = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['CustomInterface'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['CustomInterface'].UpdateLabelsProjSpecific = function() end
+
+---`Method Private Instance`
+_G['Components']['CustomInterface'].UpdateSignalsProjSpecific = function() end
+
+---`Method Private Instance`
+_G['Components']['CustomInterface'].InitProjSpecific = function() end
+
+---`Method Private Instance`
+---@param btnElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+_G['Components']['CustomInterface'].ButtonClicked = function(btnElement) end
+
+---`Method Private Instance`
+---@param tickBoxElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+---@param state System.Boolean
+_G['Components']['CustomInterface'].TickBoxToggled = function(tickBoxElement, state) end
+
+---`Method Private Instance`
+---@param textElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+---@param text System.String
+_G['Components']['CustomInterface'].TextChanged = function(textElement, text) end
+
+---`Method Private Instance`
+---@overload fun(numberInputElement:Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement, value:System.Int32)
+---@param numberInputElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+---@param value System.Single
+_G['Components']['CustomInterface'].ValueChanged = function(numberInputElement, value) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['CustomInterface'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['CustomInterface'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['CustomInterface'].Save = function(parentElement) end
+
+---`Method Private Static`
+---@param s System.String
+---@param f System.Single-ref
+---@return System.Boolean
+_G['Components']['CustomInterface'].TryParseFloatInvariantCulture = function(s, f) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CustomInterface
+_G['Components']['CustomInterface'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CustomInterface
+_G['Components']['CustomInterface'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFD290.lua b/Meta/Types/client/_00007FFD97DFD290.lua
new file mode 100644
index 0000000..3305e4a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFD290.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.Items.Components.DelayComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field signalQueueSize System.Int32
+---`Field Private Instance`
+---@field delayTicks System.Int32
+---`Field Private Instance`
+---@field signalQueue (System.Collections.Generic.Queue*1Barotrauma*Items*Components*DelayComponent*DelayedSignal)|(fun():(Barotrauma.Items.Components.DelayComponent.DelayedSignal))
+---`Field Private Instance`
+---@field prevQueuedSignal Barotrauma.Items.Components.DelayComponent.DelayedSignal
+---`Field Private Instance`
+---@field delay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Delay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResetWhenSignalReceived System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResetWhenDifferentSignalReceived System.Boolean
+_G['Components']['DelayComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['DelayComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['DelayComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DelayComponent
+_G['Components']['DelayComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DelayComponent
+_G['Components']['DelayComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFD490.lua b/Meta/Types/client/_00007FFD97DFD490.lua
new file mode 100644
index 0000000..2ba9de9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFD490.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.DivideComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['DivideComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['DivideComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DivideComponent
+_G['Components']['DivideComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DivideComponent
+_G['Components']['DivideComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFD770.lua b/Meta/Types/client/_00007FFD97DFD770.lua
new file mode 100644
index 0000000..7244327
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFD770.lua
@@ -0,0 +1,52 @@
+---@meta
+---@class Barotrauma.Items.Components.EqualsComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field output System.String
+---`Field NonPublic Instance`
+---@field falseOutput System.String
+---`Field NonPublic Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field receivedSignal (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field signalSender (Barotrauma.Character-arr)|(Barotrauma.Character[])
+---`Field NonPublic Instance`
+---@field timeFrame System.Single
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimeFrame System.Single
+_G['Components']['EqualsComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['EqualsComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['EqualsComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EqualsComponent
+_G['Components']['EqualsComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EqualsComponent
+_G['Components']['EqualsComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFD9A0.lua b/Meta/Types/client/_00007FFD97DFD9A0.lua
new file mode 100644
index 0000000..a21f5c5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFD9A0.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Items.Components.ExponentiationComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field exponent System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Exponent System.Single
+_G['Components']['ExponentiationComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ExponentiationComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ExponentiationComponent
+_G['Components']['ExponentiationComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ExponentiationComponent
+_G['Components']['ExponentiationComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFDCE0.lua b/Meta/Types/client/_00007FFD97DFDCE0.lua
new file mode 100644
index 0000000..0042151
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFDCE0.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.Items.Components.FunctionComponent : Barotrauma.Items.Components.ItemComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Function Barotrauma.Items.Components.FunctionComponent.FunctionType
+_G['Components']['FunctionComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['FunctionComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.FunctionComponent
+_G['Components']['FunctionComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.FunctionComponent
+_G['Components']['FunctionComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFDED0.lua b/Meta/Types/client/_00007FFD97DFDED0.lua
new file mode 100644
index 0000000..7c0c926
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFDED0.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Items.Components.GreaterComponent : Barotrauma.Items.Components.EqualsComponent
+---`Field Private Instance`
+---@field val1 System.Single
+---`Field Private Instance`
+---@field val2 System.Single
+_G['Components']['GreaterComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['GreaterComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['GreaterComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GreaterComponent
+_G['Components']['GreaterComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GreaterComponent
+_G['Components']['GreaterComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFE708.lua b/Meta/Types/client/_00007FFD97DFE708.lua
new file mode 100644
index 0000000..f45e496
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFE708.lua
@@ -0,0 +1,197 @@
+---@meta
+---@class Barotrauma.Items.Components.LightComponent : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field lastReceivedState System.Nullable*1System*Boolean
+---`Field Private Instance`
+---@field resetPredictionCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field resetPredictionTimer System.Single
+---`Field Private Instance`
+---@field lightColorMultiplier System.Single
+---`Field Private Instance`
+---@field lightColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field lightBrightness System.Single
+---`Field Private Instance`
+---@field blinkFrequency System.Single
+---`Field Private Instance`
+---@field pulseFrequency System.Single
+---`Field Private Instance`
+---@field pulseAmount System.Single
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field flicker System.Single
+---`Field Private Instance`
+---@field flickerSpeed System.Single
+---`Field Private Instance`
+---@field castShadows System.Boolean
+---`Field Private Instance`
+---@field drawBehindSubs System.Boolean
+---`Field Private Instance`
+---@field lastToggleSignalTime System.Double
+---`Field Private Instance`
+---@field prevColorSignal System.String
+---`Field Public Instance`
+---@field ParentBody Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field isOn System.Boolean
+---`Field Private Instance`
+---@field turret Barotrauma.Items.Components.Turret
+---`Field Private Instance`
+---@field rotation System.Single
+---`Field Public Instance`
+---@field TemporaryFlickerTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightSpriteScale System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Light Barotrauma.Lights.LightSource
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CastShadows System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawBehindSubs System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Flicker System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlickerSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BlinkFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreContinuousToggle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlphaBlend System.Boolean
+---`Getter Public Instance`
+---@field IsRed System.Boolean
+---`Getter Public Instance`
+---@field IsGreen System.Boolean
+---`Getter Public Instance`
+---@field IsBlue System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+_G['Components']['LightComponent'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['LightComponent'].OnScaleChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['LightComponent'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['LightComponent'].FlipX = function(relativeToSub) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Components']['LightComponent'].ResetPredictionAfterDelay = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['LightComponent'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['LightComponent'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['LightComponent'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+_G['Components']['LightComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['LightComponent'].OnMapLoaded = function() end
+
+---`Method Public Instance`
+_G['Components']['LightComponent'].CheckIfNeedsUpdate = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['LightComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['LightComponent'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['LightComponent'].Use = function(deltaTime, character) end
+
+---`Method Private Instance`
+_G['Components']['LightComponent'].OnStateChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['LightComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+_G['Components']['LightComponent'].UpdateAITarget = function(target) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['LightComponent'].Drop = function(dropper, setTransform) end
+
+---`Method Private Instance`
+---@param enabled System.Boolean
+---@param brightness System.Single
+_G['Components']['LightComponent'].SetLightSourceState = function(enabled, brightness) end
+
+---`Method Public Instance`
+_G['Components']['LightComponent'].SetLightSourceTransform = function() end
+
+---`Method Private Instance`
+_G['Components']['LightComponent'].SetLightSourceTransformProjSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LightComponent
+_G['Components']['LightComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LightComponent
+_G['Components']['LightComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFEAA8.lua b/Meta/Types/client/_00007FFD97DFEAA8.lua
new file mode 100644
index 0000000..a7c0068
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFEAA8.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.Items.Components.MemoryComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field maxValueLength System.Int32
+---`Field Private Instance`
+---@field value System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxValueLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Writeable System.Boolean
+_G['Components']['MemoryComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['MemoryComponent'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MemoryComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['MemoryComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MemoryComponent
+_G['Components']['MemoryComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MemoryComponent
+_G['Components']['MemoryComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFED08.lua b/Meta/Types/client/_00007FFD97DFED08.lua
new file mode 100644
index 0000000..32964d5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFED08.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Items.Components.ModuloComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field modulus System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Modulus System.Single
+_G['Components']['ModuloComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ModuloComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ModuloComponent
+_G['Components']['ModuloComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ModuloComponent
+_G['Components']['ModuloComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFF3F0.lua b/Meta/Types/client/_00007FFD97DFF3F0.lua
new file mode 100644
index 0000000..f730b79
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFF3F0.lua
@@ -0,0 +1,112 @@
+---@meta
+---@class Barotrauma.Items.Components.MotionSensor : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field rangeX System.Single
+---`Field Private Instance`
+---@field rangeY System.Single
+---`Field Private Instance`
+---@field detectOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field updateTimer System.Single
+---`Field Private Instance`
+---@field targetCharacters (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MotionDetected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Target Barotrauma.Items.Components.MotionSensor.TargetType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCharacters System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreDead System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeX System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeY System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DetectOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field TransformedDetectOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinimumVelocity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DetectOwnMotion System.Boolean
+_G['Components']['MotionSensor'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['MotionSensor'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['MotionSensor'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MotionSensor'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MotionSensor'].TriggersOn = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param triggerFromHumans System.Boolean
+---@param triggerFromPets System.Boolean
+---@param triggerFromMonsters System.Boolean
+---@return System.Boolean
+_G['Components']['MotionSensor'].TriggersOn = function(character, triggerFromHumans, triggerFromPets, triggerFromMonsters) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['MotionSensor'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MotionSensor
+_G['Components']['MotionSensor'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MotionSensor
+_G['Components']['MotionSensor'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFF620.lua b/Meta/Types/client/_00007FFD97DFF620.lua
new file mode 100644
index 0000000..eea46c0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFF620.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.MultiplyComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['MultiplyComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['MultiplyComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MultiplyComponent
+_G['Components']['MultiplyComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MultiplyComponent
+_G['Components']['MultiplyComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFF810.lua b/Meta/Types/client/_00007FFD97DFF810.lua
new file mode 100644
index 0000000..528f5c2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFF810.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.Items.Components.NotComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field signalReceived System.Boolean
+---`Field Private Instance`
+---@field continuousOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContinuousOutput System.Boolean
+_G['Components']['NotComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['NotComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['NotComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NotComponent
+_G['Components']['NotComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NotComponent
+_G['Components']['NotComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFFA10.lua b/Meta/Types/client/_00007FFD97DFFA10.lua
new file mode 100644
index 0000000..d4fc3be
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFFA10.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Items.Components.OrComponent : Barotrauma.Items.Components.BooleanOperatorComponent
+_G['Components']['OrComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param numTrueInputs System.Int32
+---@return System.Boolean
+_G['Components']['OrComponent'].GetOutput = function(numTrueInputs) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OrComponent
+_G['Components']['OrComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OrComponent
+_G['Components']['OrComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97DFFD90.lua b/Meta/Types/client/_00007FFD97DFFD90.lua
new file mode 100644
index 0000000..f90cb72
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97DFFD90.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Items.Components.OscillatorComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field frequency System.Single
+---`Field Private Instance`
+---@field phase System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutputType Barotrauma.Items.Components.OscillatorComponent.WaveType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Frequency System.Single
+_G['Components']['OscillatorComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OscillatorComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['OscillatorComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OscillatorComponent
+_G['Components']['OscillatorComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OscillatorComponent
+_G['Components']['OscillatorComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E00028.lua b/Meta/Types/client/_00007FFD97E00028.lua
new file mode 100644
index 0000000..6231146
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E00028.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.Items.Components.OxygenDetector : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field prevSentOxygenValue System.Int32
+---`Field Public Static`
+---@field LowOxygenPercentage System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OxygenSignal System.String
+_G['Components']['OxygenDetector'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OxygenDetector'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenDetector
+_G['Components']['OxygenDetector'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenDetector
+_G['Components']['OxygenDetector'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E00438.lua b/Meta/Types/client/_00007FFD97E00438.lua
new file mode 100644
index 0000000..79fefee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E00438.lua
@@ -0,0 +1,75 @@
+---@meta
+---@class Barotrauma.Items.Components.RegExFindComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field expression System.String
+---`Field Private Instance`
+---@field receivedSignal System.String
+---`Field Private Instance`
+---@field previousReceivedSignal System.String
+---`Field Private Instance`
+---@field previousResult System.Boolean
+---`Field Private Instance`
+---@field previousGroups System.Text.RegularExpressions.GroupCollection
+---`Field Private Instance`
+---@field regex System.Text.RegularExpressions.Regex
+---`Field Private Instance`
+---@field nonContinuousOutputSent System.Boolean
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Static`
+---@field timeout System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseCaptureGroup System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutputEmptyCaptureGroup System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContinuousOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Expression System.String
+_G['Components']['RegExFindComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RegExFindComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['RegExFindComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E00888.lua b/Meta/Types/client/_00007FFD97E00888.lua
new file mode 100644
index 0000000..f4b6eff
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E00888.lua
@@ -0,0 +1,120 @@
+---@meta
+---@class Barotrauma.Items.Components.RelayComponent : Barotrauma.Items.Components.PowerTransfer
+---`Field Private Instance`
+---@field maxPower System.Single
+---`Field Private Instance`
+---@field isOn System.Boolean
+---`Field Private Instance`
+---@field prevVoltage System.Single
+---`Field Private Instance`
+---@field newVoltage System.Nullable*1System*Single
+---`Field Private Instance`
+---@field internalLoadBuffer System.Single
+---`Field Private Instance`
+---@field prevInternalLoad System.Single
+---`Field Private Instance`
+---@field prevExternalLoad System.Single
+---`Field Private Instance`
+---@field bufferDiff System.Single
+---`Field Private Instance`
+---@field thirdInverseMax System.Single
+---`Field Private Instance`
+---@field loadEqnConstant System.Single
+---`Field Private Static`
+---@field connectionPairs (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---@field DisplayLoad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPower System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOn System.Boolean
+_G['Components']['RelayComponent'] = {}
+
+---`Method Private Instance`
+_G['Components']['RelayComponent'].SetLoadFormulaValues = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['RelayComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RelayComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['RelayComponent'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['RelayComponent'].RelayCanOutput = function() end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param load? System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['RelayComponent'].MinMaxPowerOut = function(connection, load) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['RelayComponent'].GetConnectionPowerOut = function(connection, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['RelayComponent'].GridResolved = function(conn) end
+
+---`Method Private Instance`
+---@param addToBuffer System.Single
+---@param newVoltage System.Single
+_G['Components']['RelayComponent'].UpdateBuffer = function(addToBuffer, newVoltage) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['RelayComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@param on System.Boolean
+---@param isNetworkMessage System.Boolean
+_G['Components']['RelayComponent'].SetState = function(on, isNetworkMessage) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['RelayComponent'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['RelayComponent'].ClientEventRead = function(msg, sendingTime) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E00C90.lua b/Meta/Types/client/_00007FFD97E00C90.lua
new file mode 100644
index 0000000..b2bd35a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E00C90.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.Items.Components.SignalCheckComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetSignal System.String
+_G['Components']['SignalCheckComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['SignalCheckComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SignalCheckComponent
+_G['Components']['SignalCheckComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SignalCheckComponent
+_G['Components']['SignalCheckComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E00F78.lua b/Meta/Types/client/_00007FFD97E00F78.lua
new file mode 100644
index 0000000..84aff89
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E00F78.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.Items.Components.SmokeDetector : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field fireCheckTimer System.Single
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Field Private Static`
+---@field FireCheckInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FireInRange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+_G['Components']['SmokeDetector'] = {}
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['SmokeDetector'].IsFireInRange = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['SmokeDetector'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SmokeDetector
+_G['Components']['SmokeDetector'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SmokeDetector
+_G['Components']['SmokeDetector'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E011B0.lua b/Meta/Types/client/_00007FFD97E011B0.lua
new file mode 100644
index 0000000..e5eb695
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E011B0.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.SubtractComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['SubtractComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['SubtractComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SubtractComponent
+_G['Components']['SubtractComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SubtractComponent
+_G['Components']['SubtractComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E01748.lua b/Meta/Types/client/_00007FFD97E01748.lua
new file mode 100644
index 0000000..d9fbe06
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E01748.lua
@@ -0,0 +1,126 @@
+---@meta
+---@class Barotrauma.Items.Components.Terminal : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field historyBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field fillerBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field inputBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field shouldSelectInputBox System.Boolean
+---`Field Private Instance`
+---@field messageHistory (System.Collections.Generic.List*1Barotrauma*Items*Components*TerminalMessage)|(Barotrauma.Items.Components.TerminalMessage[])
+---`Field Private Instance`
+---@field welcomeMessage System.String
+---`Field Private Instance`
+---@field textColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field prevColorSignal System.String
+---`Field Private Static`
+---@field MaxMessageLength System.Int32
+---`Field Private Static`
+---@field MaxMessages System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayedWelcomeMessage Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WelcomeMessage System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowMessage System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseMonospaceFont System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoHideScrollbar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WelcomeMessageDisplayed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LineStartSymbol System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Readonly System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoScrollToBottom System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field OutputValue System.String
+_G['Components']['Terminal'] = {}
+
+---`Method Public Instance`
+_G['Components']['Terminal'].CreateFillerBlock = function() end
+
+---`Method Private Instance`
+---@param input System.String
+_G['Components']['Terminal'].SendOutput = function(input) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Terminal'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['Components']['Terminal'].AddToGUIUpdateList = function(order) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Terminal'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Terminal'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['Components']['Terminal'].InitProjSpecific = function(element) end
+
+---`Method Private Instance`
+---@param input System.String
+---@param addToHistory System.Boolean
+---@param color Microsoft.Xna.Framework.Color
+---@param isWelcomeMessage System.Boolean
+_G['Components']['Terminal'].ShowOnDisplay = function(input, addToHistory, color, isWelcomeMessage) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Terminal'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Terminal'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Terminal'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Terminal'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Terminal
+_G['Components']['Terminal'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Terminal
+_G['Components']['Terminal'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E01C18.lua b/Meta/Types/client/_00007FFD97E01C18.lua
new file mode 100644
index 0000000..94a68e6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E01C18.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Items.Components.TrigonometricFunctionComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field receivedSignal (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field signalSender Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Function Barotrauma.Items.Components.TrigonometricFunctionComponent.FunctionType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseRadians System.Boolean
+_G['Components']['TrigonometricFunctionComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['TrigonometricFunctionComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['TrigonometricFunctionComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TrigonometricFunctionComponent
+_G['Components']['TrigonometricFunctionComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TrigonometricFunctionComponent
+_G['Components']['TrigonometricFunctionComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E01F60.lua b/Meta/Types/client/_00007FFD97E01F60.lua
new file mode 100644
index 0000000..90ef761
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E01F60.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.Items.Components.WaterDetector : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field prevSentWaterPercentageValue System.Int32
+---`Field Private Instance`
+---@field waterPercentageSignal System.String
+---`Field Private Instance`
+---@field isInWater System.Boolean
+---`Field Private Instance`
+---@field stateSwitchDelay System.Single
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Field Private Static`
+---@field StateSwitchInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---@field WaterDetected System.Boolean
+---`Getter Public Instance`
+---@field WaterPercentage System.Int32
+_G['Components']['WaterDetector'] = {}
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@return System.Int32
+_G['Components']['WaterDetector'].GetWaterPercentage = function(hull) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['WaterDetector'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.WaterDetector
+_G['Components']['WaterDetector'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.WaterDetector
+_G['Components']['WaterDetector'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E02500.lua b/Meta/Types/client/_00007FFD97E02500.lua
new file mode 100644
index 0000000..76f9351
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E02500.lua
@@ -0,0 +1,148 @@
+---@meta
+---@class Barotrauma.Items.Components.WifiComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field channel System.Int32
+---`Field Private Instance`
+---@field chatMsgCooldown System.Single
+---`Field Private Instance`
+---@field prevSignal System.String
+---`Field Private Instance`
+---@field channelMemory (System.Int32-arr)|(System.Int32[])
+---`Field Private Instance`
+---@field signalInConnection Barotrauma.Items.Components.Connection
+---`Field Private Instance`
+---@field signalOutConnection Barotrauma.Items.Components.Connection
+---`Field Private Instance`
+---@field jamTimer System.Single
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Items*Components*WifiComponent)|(Barotrauma.Items.Components.WifiComponent[])
+---`Field Private Static`
+---@field ChannelMemorySize System.Int32
+---`Field Private Static`
+---@field MinChannel System.Int32
+---`Field Private Static`
+---@field MaxChannel System.Int32
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Channel System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowCrossTeamCommunication System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinkToChat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinChatMessageInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DiscardDuplicateChatMessages System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JamTimer System.Single
+_G['Components']['WifiComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['WifiComponent'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['WifiComponent'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['WifiComponent'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['WifiComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@overload fun(ignoreJamming?:System.Boolean):(System.Boolean)
+---@param sender Barotrauma.Items.Components.WifiComponent
+---@return System.Boolean
+_G['Components']['WifiComponent'].CanTransmit = function(sender) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*WifiComponent)|(fun():(Barotrauma.Items.Components.WifiComponent))
+_G['Components']['WifiComponent'].GetReceiversInRange = function() end
+
+---`Method Public Instance`
+---@param sender Barotrauma.Items.Components.WifiComponent
+---@return System.Boolean
+_G['Components']['WifiComponent'].CanReceive = function(sender) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*WifiComponent)|(fun():(Barotrauma.Items.Components.WifiComponent))
+_G['Components']['WifiComponent'].GetTransmittersInRange = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['WifiComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return System.Int32
+_G['Components']['WifiComponent'].GetChannelMemory = function(index) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param value System.Int32
+_G['Components']['WifiComponent'].SetChannelMemory = function(index, value) end
+
+---`Method Public Instance`
+---@param signal Barotrauma.Items.Components.Signal
+---@param sentFromChat System.Boolean
+_G['Components']['WifiComponent'].TransmitSignal = function(signal, sentFromChat) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['WifiComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['WifiComponent'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['WifiComponent'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E03210.lua b/Meta/Types/client/_00007FFD97E03210.lua
new file mode 100644
index 0000000..f8dfbfb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E03210.lua
@@ -0,0 +1,344 @@
+---@meta
+---@class Barotrauma.Items.Components.Wire : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field overrideSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field wireSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field lastReceivedSignal Barotrauma.Items.Components.Wire.VisualSignal
+---`Field Private Instance`
+---@field shouldClearConnections System.Boolean
+---`Field Private Instance`
+---@field nodes (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field sections (System.Collections.Generic.List*1Barotrauma*Items*Components*Wire*WireSection)|(Barotrauma.Items.Components.Wire.WireSection[])
+---`Field Private Instance`
+---@field connections (Barotrauma.Items.Components.Connection-arr)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Instance`
+---@field canPlaceNode System.Boolean
+---`Field Private Instance`
+---@field newNodePos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field sectionExtents Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field currLength System.Single
+---`Field Public Instance`
+---@field Hidden System.Boolean
+---`Field Private Instance`
+---@field editNodeDelay System.Single
+---`Field Private Instance`
+---@field locked System.Boolean
+---`Field Public Static`
+---@field higlightColor Microsoft.Xna.Framework.Color
+---`Field Public Static`
+---@field editorHighlightColor Microsoft.Xna.Framework.Color
+---`Field Public Static`
+---@field editorSelectedColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field defaultWireSprite Barotrauma.Sprite
+---`Field Private Static`
+---@field draggingWire Barotrauma.Items.Components.Wire
+---`Field Private Static`
+---@field selectedNodeIndex System.Nullable*1System*Int32
+---`Field Private Static`
+---@field highlightedNodeIndex System.Nullable*1System*Int32
+---`Field Private Static`
+---@field dataSignalColors (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Private Static`
+---@field MaxAttachDistance System.Single
+---`Field Private Static`
+---@field MinNodeDistance System.Single
+---`Field Private Static`
+---@field MaxNodeCount System.Int32
+---`Field Private Static`
+---@field MaxNodesPerNetworkEvent System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Width System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field DraggingWire Barotrauma.Items.Components.Wire
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Locked System.Boolean
+---`Getter Public Instance`
+---@field Connections (Barotrauma.Items.Components.Connection-arr)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Length System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxLength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HiddenInGame System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NoAutoLock System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseSpriteDepth System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DropOnConnect System.Boolean
+_G['Components']['Wire'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Sprite
+_G['Components']['Wire'].ExtractWireSprite = function(element) end
+
+---`Method Public Instance`
+---@param signal Barotrauma.Items.Components.Signal
+---@param source Barotrauma.Items.Components.Connection
+_G['Components']['Wire'].RegisterSignal = function(signal, source) end
+
+---`Method Private Static`
+---@param signal Barotrauma.Items.Components.Signal
+---@return Microsoft.Xna.Framework.Color
+_G['Components']['Wire'].GetSignalColor = function(signal) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Wire'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Wire'].Draw = function(spriteBatch, editing, offset, itemDepth, overrideColor) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param alpha? System.Single
+_G['Components']['Wire'].DebugDraw = function(spriteBatch, alpha) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].GetDrawOffset = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param start Microsoft.Xna.Framework.Vector2
+---@param depth System.Single
+_G['Components']['Wire'].DrawHangingWire = function(spriteBatch, start, depth) end
+
+---`Method Public Static`
+---@param wires (System.Collections.Generic.List*1Barotrauma*Items*Components*Wire)|(Barotrauma.Items.Components.Wire[])
+_G['Components']['Wire'].UpdateEditing = function(wires) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['Wire'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Wire'].IsMouseOn = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Wire'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['Wire'].ValidateEventData = function(data) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Wire'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Wire'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@param connection Barotrauma.Items.Components.Connection
+---@return Barotrauma.Items.Components.Connection
+_G['Components']['Wire'].OtherConnection = function(connection) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Components']['Wire'].IsConnectedTo = function(item) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item)
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Wire'].RemoveConnection = function(connection) end
+
+---`Method Public Instance`
+---@param newConnection Barotrauma.Items.Components.Connection
+---@param addNode? System.Boolean
+---@param sendNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['Components']['Wire'].TryConnect = function(newConnection, addNode, sendNetworkEvent) end
+
+---`Method Public Instance`
+---@param newConnection Barotrauma.Items.Components.Connection
+---@param connectionIndex System.Int32
+---@param addNode? System.Boolean
+---@param sendNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['Components']['Wire'].Connect = function(newConnection, connectionIndex, addNode, sendNetworkEvent) end
+
+---`Method Private Instance`
+---@param newConnection Barotrauma.Items.Components.Connection
+---@param selectedIndex System.Int32
+_G['Components']['Wire'].AddNode = function(newConnection, selectedIndex) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wire'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wire'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Wire'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Wire'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].GetAttachPosition = function(user) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Wire'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Wire'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Wire'].Pick = function(picker) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['Components']['Wire'].GetNodes = function() end
+
+---`Method Public Instance`
+---@param nodes (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['Components']['Wire'].SetNodes = function(nodes) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].MoveNode = function(index, amount) end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].MoveNodes = function(amount) end
+
+---`Method Public Instance`
+_G['Components']['Wire'].UpdateSections = function() end
+
+---`Method Private Instance`
+_G['Components']['Wire'].CalculateExtents = function() end
+
+---`Method Public Instance`
+---@param user? Barotrauma.Character
+_G['Components']['Wire'].ClearConnections = function(user) end
+
+---`Method Private Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].RoundNode = function(position) end
+
+---`Method Public Instance`
+_G['Components']['Wire'].SetConnectedDirty = function() end
+
+---`Method Private Instance`
+_G['Components']['Wire'].CleanNodes = function() end
+
+---`Method Public Instance`
+_G['Components']['Wire'].FixNodeEnds = function() end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param maxDist System.Single
+---@param closestDist System.Single-ref
+---@return System.Int32
+_G['Components']['Wire'].GetClosestNodeIndex = function(pos, maxDist, closestDist) end
+
+---`Method Private Instance`
+---@param mousePos Microsoft.Xna.Framework.Vector2
+---@param maxDist System.Single
+---@param closestDist System.Single-ref
+---@return System.Int32
+_G['Components']['Wire'].GetClosestSectionIndex = function(mousePos, maxDist, closestDist) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Wire'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Wire'].FlipY = function(relativeToSub) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return (System.Collections.Generic.IEnumerable*1Microsoft*Xna*Framework*Vector2)|(fun():(Microsoft.Xna.Framework.Vector2))
+_G['Components']['Wire'].ExtractNodes = function(element) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Wire'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Wire'].Save = function(parentElement) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Wire'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Wire'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Wire
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Wire'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Wire
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Wire'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Wire
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Wire'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Wire
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Wire'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E034F0.lua b/Meta/Types/client/_00007FFD97E034F0.lua
new file mode 100644
index 0000000..ade06b0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E034F0.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Items.Components.XorComponent : Barotrauma.Items.Components.BooleanOperatorComponent
+_G['Components']['XorComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param numTrueInputs System.Int32
+---@return System.Boolean
+_G['Components']['XorComponent'].GetOutput = function(numTrueInputs) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.XorComponent
+_G['Components']['XorComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.XorComponent
+_G['Components']['XorComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E04038.lua b/Meta/Types/client/_00007FFD97E04038.lua
new file mode 100644
index 0000000..e593245
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E04038.lua
@@ -0,0 +1,200 @@
+---@meta
+---@class Barotrauma.Items.Components.DockingPort : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field autodockingVerification Barotrauma.GUIMessageBox
+---`Field Private Instance`
+---@field convexHulls (Barotrauma.Lights.ConvexHull-arr)|(Barotrauma.Lights.ConvexHull[])
+---`Field Private Instance`
+---@field overlaySprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field dockingState System.Single
+---`Field Private Instance`
+---@field joint FarseerPhysics.Dynamics.Joints.Joint
+---`Field Private Instance`
+---@field hulls (Barotrauma.Hull-arr)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field gap Barotrauma.Gap
+---`Field Private Instance`
+---@field bodies (FarseerPhysics.Dynamics.Body-arr)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field outsideBlocker FarseerPhysics.Dynamics.Fixture
+---`Field Private Instance`
+---@field doorBody FarseerPhysics.Dynamics.Body
+---`Field Private Instance`
+---@field dockingCooldown System.Single
+---`Field Private Instance`
+---@field docked System.Boolean
+---`Field Private Instance`
+---@field obstructedWayPointsDisabled System.Boolean
+---`Field Private Instance`
+---@field forceLockTimer System.Single
+---`Field Private Instance`
+---@field OnDocked (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnUnDocked (System.Action)|(fun())
+---`Field Private Instance`
+---@field outpostAutoDockingPromptShown System.Boolean
+---`Field Private Instance`
+---@field allowOutpostAutoDocking Barotrauma.Items.Components.DockingPort.AllowOutpostAutoDocking
+---`Field Private Instance`
+---@field initialized System.Boolean
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Items*Components*DockingPort)|(Barotrauma.Items.Components.DockingPort[])
+---`Field Private Static`
+---@field ForceLockDelay System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*DockingPort)|(fun():(Barotrauma.Items.Components.DockingPort))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockingDir System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceTolerance Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockedDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainDockingPort System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyEffectsOnDocking System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceDockingDirection Barotrauma.Items.Components.DockingPort.DirectionType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DockingTarget Barotrauma.Items.Components.DockingPort
+---`Getter Public Instance`
+---@field AtStartExit System.Boolean
+---`Getter Public Instance`
+---@field AtEndExit System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Door Barotrauma.Items.Components.Door
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Docked System.Boolean
+---`Getter Public Instance`
+---@field IsLocked System.Boolean
+---`Getter Public Instance`
+---@field AnotherPortInProximity System.Boolean
+_G['Components']['DockingPort'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['DockingPort'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['DockingPort'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['DockingPort'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['DockingPort'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['DockingPort'].FlipY = function(relativeToSub) end
+
+---`Method Private Instance`
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].FindAdjacentPort = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].AttemptDock = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].Dock = function(target) end
+
+---`Method Public Instance`
+---@param isNetworkMessage System.Boolean
+---@param applyEffects? System.Boolean
+_G['Components']['DockingPort'].Lock = function(isNetworkMessage, applyEffects) end
+
+---`Method Private Instance`
+---@param useWeldJoint System.Boolean
+_G['Components']['DockingPort'].CreateJoint = function(useWeldJoint) end
+
+---`Method Public Instance`
+---@param dockingTarget? Barotrauma.Items.Components.DockingPort
+---@return System.Int32
+_G['Components']['DockingPort'].GetDir = function(dockingTarget) end
+
+---`Method Private Instance`
+---@return System.Int32
+_G['Components']['DockingPort'].GetForcedDockingDir = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].ConnectWireBetweenPorts = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].CreateDoorBody = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].CreateHulls = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].RemoveConvexHulls = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].LinkHullsToGaps = function() end
+
+---`Method Public Instance`
+---@param applyEffects? System.Boolean
+_G['Components']['DockingPort'].Undock = function(applyEffects) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['DockingPort'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['DockingPort'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].InitializeLinks = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['DockingPort'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['DockingPort'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E04758.lua b/Meta/Types/client/_00007FFD97E04758.lua
new file mode 100644
index 0000000..84bf173
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E04758.lua
@@ -0,0 +1,148 @@
+---@meta
+---@class Barotrauma.Items.Components.ElectricalDischarger : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field frameOffset System.Int32
+---`Field Private Instance`
+---@field nodes (System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger*Node)|(Barotrauma.Items.Components.ElectricalDischarger.Node[])
+---`Field Private Instance`
+---@field charactersInRange (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*Items*Components*ElectricalDischarger*Node)|(System.ValueTuple*1Barotrauma*Character*1Barotrauma*Items*Components*ElectricalDischarger*Node[])
+---`Field Private Instance`
+---@field charging System.Boolean
+---`Field Private Instance`
+---@field timer System.Single
+---`Field Private Instance`
+---@field attack Barotrauma.Attack
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field reloadTimer System.Single
+---`Field Private Static`
+---@field electricitySprite Barotrauma.SpriteSheet
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger)|(Barotrauma.Items.Components.ElectricalDischarger[])
+---`Field Private Static`
+---@field MaxNodes System.Int32
+---`Field Private Static`
+---@field MaxNodeDistance System.Single
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger)|(fun():(Barotrauma.Items.Components.ElectricalDischarger))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeMultiplierInWalls System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RaycastRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Duration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutdoorsOnly System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreUser System.Boolean
+---`Getter Public Instance`
+---@field Nodes (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger*Node)|(fun():(Barotrauma.Items.Components.ElectricalDischarger.Node))
+_G['Components']['ElectricalDischarger'] = {}
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Components']['ElectricalDischarger'].DrawElectricity = function(spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['ElectricalDischarger'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Components']['ElectricalDischarger'].InitProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ElectricalDischarger'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ElectricalDischarger'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param conn? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['ElectricalDischarger'].GetCurrentPowerConsumption = function(conn) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ElectricalDischarger'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['ElectricalDischarger'].Discharge = function() end
+
+---`Method Private Instance`
+_G['Components']['ElectricalDischarger'].DischargeProjSpecific = function() end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param range System.Single
+_G['Components']['ElectricalDischarger'].FindNodes = function(worldPosition, range) end
+
+---`Method Private Instance`
+---@param entitiesInRange (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---@param currPos Microsoft.Xna.Framework.Vector2
+---@param parentNodeIndex System.Int32
+---@param currentRange System.Single
+_G['Components']['ElectricalDischarger'].FindNodes = function(entitiesInRange, currPos, parentNodeIndex, currentRange) end
+
+---`Method Private Instance`
+---@param currPos Microsoft.Xna.Framework.Vector2
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@param variance System.Single
+---@param parentNodeIndex System.Int32-ref
+_G['Components']['ElectricalDischarger'].AddNodesBetweenPoints = function(currPos, targetPos, variance, parentNodeIndex) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ElectricalDischarger'].ReceiveSignal = function(signal, connection) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ElectricalDischarger'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ElectricalDischarger'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E05158.lua b/Meta/Types/client/_00007FFD97E05158.lua
new file mode 100644
index 0000000..40880ba
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E05158.lua
@@ -0,0 +1,128 @@
+---@meta
+---@class Barotrauma.Items.Components.EntitySpawnerComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field spawnTimer System.Single
+---`Field Private Instance`
+---@field spawnTimerGoal System.Nullable*1System*Single
+---`Field Private Instance`
+---@field spawnedAmount System.Int32
+---`Field Private Instance`
+---@field preloadedCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field preloadInitiated System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemIdentifier System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeciesName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnlySpawnWhenCrewInRange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaShape Barotrauma.Items.Components.EntitySpawnerComponent.AreaShape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaBounds Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaRadius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaShape Barotrauma.Items.Components.EntitySpawnerComponent.AreaShape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaBounds Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaRadius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnTimerRange Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAmountRange Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumAmountInArea System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumAmountRangePadding System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanSpawn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PreloadCharacter System.Boolean
+_G['Components']['EntitySpawnerComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['EntitySpawnerComponent'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+_G['Components']['EntitySpawnerComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['EntitySpawnerComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['EntitySpawnerComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Private Instance`
+---@param size Microsoft.Xna.Framework.Vector2
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param draw System.Boolean
+---@return Microsoft.Xna.Framework.RectangleF
+_G['Components']['EntitySpawnerComponent'].GetAreaRectangle = function(size, offset, draw) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['EntitySpawnerComponent'].CanSpawnMore = function() end
+
+---`Method Private Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@param crewArea? System.Boolean
+---@param rangePad? System.Boolean
+---@return System.Boolean
+_G['Components']['EntitySpawnerComponent'].IsInRange = function(worldPos, crewArea, rangePad) end
+
+---`Method Public Instance`
+_G['Components']['EntitySpawnerComponent'].Spawn = function() end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param onSpawn? (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+_G['Components']['EntitySpawnerComponent'].SpawnCharacter = function(pos, onSpawn) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EntitySpawnerComponent
+_G['Components']['EntitySpawnerComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EntitySpawnerComponent
+_G['Components']['EntitySpawnerComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E05960.lua b/Meta/Types/client/_00007FFD97E05960.lua
new file mode 100644
index 0000000..bad9460
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E05960.lua
@@ -0,0 +1,150 @@
+---@meta
+---@class Barotrauma.Items.Components.GeneticMaterial : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field materialName Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field targetCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field selectedEffect Barotrauma.AfflictionPrefab
+---`Field Private Instance`
+---@field selectedTaintedEffect Barotrauma.AfflictionPrefab
+---`Field Private Instance`
+---@field tainted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TooltipValueMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TooltipValueMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Effect System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TaintedEffect Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tainted System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SetTaintedOnDeath System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanBeUntainted System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedTaintedEffect Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnCombineMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnCombineMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnLowQualityCombine System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnHighQualityCombine System.Single
+---`Getter Private Instance`
+---@field AllMaterialTypes (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Private Instance`
+---@field NestedMaterial Barotrauma.Items.Components.GeneticMaterial
+---`Getter Private Instance`
+---@field IsCombined System.Boolean
+_G['Components']['GeneticMaterial'] = {}
+
+---`Method Public Instance Virtual`
+---@param name Barotrauma.LocalizedString-ref
+---@param description Barotrauma.LocalizedString-ref
+_G['Components']['GeneticMaterial'].AddTooltipInfo = function(name, description) end
+
+---`Method Public Instance`
+---@param deconstructor Barotrauma.Items.Components.Deconstructor
+---@param buttonText Barotrauma.LocalizedString-ref
+---@param infoText Barotrauma.LocalizedString-ref
+_G['Components']['GeneticMaterial'].ModifyDeconstructInfo = function(deconstructor, buttonText, infoText) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['GeneticMaterial'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return System.Boolean
+_G['Components']['GeneticMaterial'].SharesTypeWith = function(otherGeneticMaterial) end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return Barotrauma.ItemPrefab
+_G['Components']['GeneticMaterial'].GetSharedTypeOrDefault = function(otherGeneticMaterial) end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return Barotrauma.Items.Components.GeneticMaterial.CombineResult
+_G['Components']['GeneticMaterial'].GetCombineRefineResult = function(otherGeneticMaterial) end
+
+---`Method Public Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return System.Boolean
+_G['Components']['GeneticMaterial'].CanBeCombinedWith = function(otherGeneticMaterial) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['GeneticMaterial'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['GeneticMaterial'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@param user Barotrauma.Character
+---@param itemToDestroy Barotrauma.Item-ref
+---@return Barotrauma.Items.Components.GeneticMaterial.CombineResult
+_G['Components']['GeneticMaterial'].Combine = function(otherGeneticMaterial, user, itemToDestroy) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetCombinedEffectStrength = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetCombinedTaintedEffectStrength = function() end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetTaintedProbabilityOnRefine = function(otherGeneticMaterial, user) end
+
+---`Method Private Static`
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetTaintedProbabilityOnCombine = function(user) end
+
+---`Method Public Instance`
+---@param newValue System.Boolean
+---@param affectsNestedGene? System.Boolean
+_G['Components']['GeneticMaterial'].SetTainted = function(newValue, affectsNestedGene) end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.LocalizedString
+_G['Components']['GeneticMaterial'].TryCreateName = function(prefab, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GeneticMaterial
+_G['Components']['GeneticMaterial'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GeneticMaterial
+_G['Components']['GeneticMaterial'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E06510.lua b/Meta/Types/client/_00007FFD97E06510.lua
new file mode 100644
index 0000000..8fae1b1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E06510.lua
@@ -0,0 +1,287 @@
+---@meta
+---@class Barotrauma.Items.Components.Growable : Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field VineSprites (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*VineTileType*1Barotrauma*Items*Components*VineSprite)|({[Barotrauma.Items.Components.VineTileType]:(Barotrauma.Items.Components.VineSprite)})
+---`Field Public Instance`
+---@field FlowerSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field LeafSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field VineAtlas Barotrauma.Sprite
+---`Field Public Instance`
+---@field DecayAtlas Barotrauma.Sprite
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Private Instance`
+---@field seed System.Int32
+---`Field Public Instance`
+---@field FailedRectangles (System.Collections.Generic.HashSet*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Instance`
+---@field accelerateDeath System.Boolean
+---`Field Private Instance`
+---@field health System.Single
+---`Field Private Instance`
+---@field flowerVariants System.Int32
+---`Field Private Instance`
+---@field leafVariants System.Int32
+---`Field Private Instance`
+---@field flowerTiles (System.Int32-arr)|(System.Int32[])
+---`Field Private Instance`
+---@field productDelay System.Int32
+---`Field Private Instance`
+---@field vineDelay System.Int32
+---`Field Private Instance`
+---@field fireCheckCooldown System.Single
+---`Field Public Instance`
+---@field ProducedItems (System.Collections.Generic.List*1Barotrauma*Items*Components*ProducedItem)|(Barotrauma.Items.Components.ProducedItem[])
+---`Field Public Instance`
+---@field Vines (System.Collections.Generic.List*1Barotrauma*Items*Components*VineTile)|(Barotrauma.Items.Components.VineTile[])
+---`Field Private Instance`
+---@field ProducedSeed Barotrauma.Items.Components.ProducedItem
+---`Field Private Static`
+---@field MinFlowerScale System.Single
+---`Field Private Static`
+---@field MaxFlowerScale System.Single
+---`Field Private Static`
+---@field MinLeafScale System.Single
+---`Field Private Static`
+---@field MaxLeafScale System.Single
+---`Field Private Static`
+---@field increasedDeathSpeed System.Single
+---`Field Private Static`
+---@field maxProductDelay System.Int32
+---`Field Private Static`
+---@field maxVineGrowthDelay System.Int32
+---`Field Private Static`
+---@field VineChunkSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrowthSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FloodTolerance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hardiness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeedRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProductRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MutationProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowerTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowerQuantity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseFlowerScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseLeafScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LeafTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LeafProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VineTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumVines System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VineScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeadTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrowthWeights Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Decayed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FullyGrown System.Boolean
+_G['Components']['Growable'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Growable'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param planter Barotrauma.Items.Components.Planter
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param depth System.Single
+_G['Components']['Growable'].Draw = function(spriteBatch, planter, offset, depth) end
+
+---`Method Private Instance`
+---@param vine Barotrauma.Items.Components.VineTile
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param position Microsoft.Xna.Framework.Vector2
+---@param depth System.Single
+---@param leafDepth System.Single
+_G['Components']['Growable'].DrawBranch = function(vine, spriteBatch, position, depth, leafDepth) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Growable'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Private Instance`
+_G['Components']['Growable'].ResetPlanterSize = function() end
+
+---`Method Public Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+_G['Components']['Growable'].CreateDebugHUD = function(planter, slot) end
+
+---`Method Private Static`
+---@param label System.String
+---@param defaultValue System.Int32
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUINumberInput
+_G['Components']['Growable'].CreateIntEntry = function(label, defaultValue, parent) end
+
+---`Method Private Static`
+---@param label System.String
+---@param defaultValue System.Single
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUINumberInput
+_G['Components']['Growable'].CreateFloatEntry = function(label, defaultValue, parent) end
+
+---`Method Private Static`
+---@param label System.String
+---@param values (System.Single-arr)|(System.Single[])
+---@param max System.Single
+---@param parent Barotrauma.RectTransform
+---@param min? System.Single
+---@return (Barotrauma.GUINumberInput-arr)|(Barotrauma.GUINumberInput[])
+_G['Components']['Growable'].CreateMinMaxEntry = function(label, values, max, parent, min) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Growable'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+---@param random? System.Random
+_G['Components']['Growable'].GenerateFlowerTiles = function(random) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Growable'].LoadVines = function(element) end
+
+---`Method Public Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+_G['Components']['Growable'].OnGrowthTick = function(planter, slot) end
+
+---`Method Private Instance`
+_G['Components']['Growable'].UpdateBranchHealth = function() end
+
+---`Method Private Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+_G['Components']['Growable'].TryGenerateProduct = function(planter, slot) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Growable'].CheckPlantState = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Growable'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Growable'].UpdateFires = function(deltaTime) end
+
+---`Method Private Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+_G['Components']['Growable'].GrowVines = function(planter, slot) end
+
+---`Method Private Instance`
+_G['Components']['Growable'].GenerateStem = function() end
+
+---`Method Private Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+---@param random? System.Random
+---@param flowerRandom? System.Random
+_G['Components']['Growable'].TryGenerateBranches = function(planter, slot, random, flowerRandom) end
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+---@return System.Boolean
+_G['Components']['Growable'].CollidesWithWorld = function(rect, planter, slot) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Growable'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Growable'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Growable'].CanGrowMore = function() end
+
+---`Method Public Static`
+---@param min System.Int32
+---@param max System.Int32
+---@param random? System.Random
+---@return System.Int32
+_G['Components']['Growable'].RandomInt = function(min, max, random) end
+
+---`Method Public Static`
+---@param min System.Double
+---@param max System.Double
+---@param random? System.Random
+---@return System.Double
+_G['Components']['Growable'].RandomDouble = function(min, max, random) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E06808.lua b/Meta/Types/client/_00007FFD97E06808.lua
new file mode 100644
index 0000000..a3c7c68
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E06808.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.Items.Components.ProducedItem : System.Object
+---`Field Public Instance`
+---@field StatusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Public Instance`
+---@field Producer Barotrauma.Item
+---`Field Public Instance`
+---@field Prefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Probability System.Single
+_G['Components']['ProducedItem'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ProducedItem'].LoadSubElements = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(producer:Barotrauma.Item, prefab:Barotrauma.ItemPrefab, probability:System.Single):Barotrauma.Items.Components.ProducedItem
+---@param producer Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ProducedItem
+_G['Components']['ProducedItem'] = function(producer, element) end
+
+---`Constructor Public Instance`
+---@overload fun(producer:Barotrauma.Item, prefab:Barotrauma.ItemPrefab, probability:System.Single):Barotrauma.Items.Components.ProducedItem
+---@param producer Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ProducedItem
+_G['Components']['ProducedItem'].__new = function(producer, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E069C0.lua b/Meta/Types/client/_00007FFD97E069C0.lua
new file mode 100644
index 0000000..ee70eeb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E069C0.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.Items.Components.GrowthSideExtension : System.Object
+_G['GrowthSideExtension'] = {}
+
+---`Method Public Static`
+---@param side Barotrauma.Items.Components.TileSide
+---@return System.Int32
+_G['GrowthSideExtension'].Count = function(side) end
+
+---`Method Public Static`
+---@param side Barotrauma.Items.Components.TileSide
+---@return Barotrauma.Items.Components.TileSide
+_G['GrowthSideExtension'].GetOppositeSide = function(side) end
+
diff --git a/Meta/Types/client/_00007FFD97E07C48.lua b/Meta/Types/client/_00007FFD97E07C48.lua
new file mode 100644
index 0000000..fad168f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E07C48.lua
@@ -0,0 +1,439 @@
+---@meta
+---@class Barotrauma.Items.Components.ItemContainer : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field inventoryTopSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field inventoryBackSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field inventoryBottomSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field guiCustomComponent Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field containedSpriteDepths (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field slotIcons (Barotrauma.Sprite-arr)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field OnContainedItemsChanged Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemContainer
+---`Field Private Instance`
+---@field alwaysContainedItemsSpawned System.Boolean
+---`Field Public Instance`
+---@field Inventory Barotrauma.ItemInventory
+---`Field Private Instance`
+---@field activeContainedItems (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ActiveContainedItem)|(Barotrauma.Items.Components.ItemContainer.ActiveContainedItem[])
+---`Field Private Instance`
+---@field containedItems (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ContainedItem)|(Barotrauma.Items.Components.ItemContainer.ContainedItem[])
+---`Field Private Instance`
+---@field itemIds (System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[])
+---`Field Private Instance`
+---@field capacity System.Int32
+---`Field Private Instance`
+---@field maxStackSize System.Int32
+---`Field Private Instance`
+---@field hideItems System.Boolean
+---`Field Private Instance`
+---@field autoInteractWithContainedTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field containableRestrictions (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field itemRotation System.Single
+---`Field Private Instance`
+---@field slotRestrictions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Items*Components*ItemContainer*SlotRestrictions)|(Barotrauma.Items.Components.ItemContainer.SlotRestrictions[])
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field prevContainedItemRefreshRotation System.Single
+---`Field Private Instance`
+---@field prevContainedItemRefreshPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field autoInjectCooldown System.Single
+---`Field Private Instance`
+---@field subContainersCanAutoInject System.Boolean
+---`Field Private Instance`
+---@field containableItemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field HasSubContainers System.Boolean
+---`Field Public Instance`
+---@field hasSignalConnections System.Boolean
+---`Field Private Instance`
+---@field totalConditionValueString System.String
+---`Field Private Instance`
+---@field totalConditionPercentageString System.String
+---`Field Private Instance`
+---@field totalItemsString System.String
+---`Field Private Instance`
+---@field prevTotalConditionValue System.Single
+---`Field Private Instance`
+---@field prevTotalConditionPercentage System.Single
+---`Field Private Instance`
+---@field prevTotalItems System.Int32
+---`Field Private Static`
+---@field AutoInjectInterval System.Single
+---`Getter Public Instance`
+---@field InventoryTopSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field InventoryBackSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field InventoryBottomSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContainedStateIndicator Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContainedStateIndicatorEmpty Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field RecreateGUIOnResolutionChange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContainedSpriteDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UILabel System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IndicatorStyle Barotrauma.GUIComponentStyle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContainedStateIndicatorStyle System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContainedStateIndicatorSlot System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowContainedStateIndicator System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowConditionInContainedStateIndicator System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowTotalStackCapacityInContainedStateIndicator System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KeepOpenWhenEquipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MovableFrame System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Capacity System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MainContainerCapacity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxStackSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemInterval Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemsPerRow System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDragAndDrop System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSwappingContainedItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field QuickUseMovesItemsInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInteractWithContained System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInteractWithContainedTags System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowAccess System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AccessOnlyWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowAccessWhenDropped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SlotsPerRow System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContainableRestrictions System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoFill System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnWithId System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnWithIdWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInject System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInjectThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveContainedItemsOnDeconstruct System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Locked System.Boolean
+---`Getter Public Instance`
+---@field ContainedItemCount System.Int32
+---`Getter Public Instance`
+---@field ContainedNonBrokenItemCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraStackSize System.Int32
+---`Getter Public Instance`
+---@field ContainableItemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field ContainableItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Getter Public Instance`
+---@field AllSubContainableItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+_G['Components']['ItemContainer'] = {}
+
+---`Method Public Instance`
+---@overload fun(identifiersOrTags:(System.String-arr)|(System.String[]), isRestrictionsDefined:System.Boolean-ref):(System.Boolean)
+---@param item Barotrauma.Item
+---@param isRestrictionsDefined System.Boolean-ref
+---@return System.Boolean
+_G['Components']['ItemContainer'].ShouldBeContained = function(item, isRestrictionsDefined) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ItemContainer'].ReloadContainableRestrictions = function(element) end
+
+---`Method Public Instance`
+---@param slotIndex System.Int32
+---@return System.Int32
+_G['Components']['ItemContainer'].GetMaxStackSize = function(slotIndex) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ItemContainer'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@param containedItem Barotrauma.Item
+_G['Components']['ItemContainer'].OnItemContained = function(containedItem) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['ItemContainer'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance`
+---@param containedItem Barotrauma.Item
+_G['Components']['ItemContainer'].OnItemRemoved = function(containedItem) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['ItemContainer'].BlameEquipperForDeath = function() end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@overload fun(item:Barotrauma.Item, index:System.Int32):(System.Boolean)
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param index System.Int32
+---@return System.Boolean
+_G['Components']['ItemContainer'].CanBeContained = function(itemPrefab, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Components']['ItemContainer'].ContainsItemsWithSameIdentifier = function(item) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['ItemContainer'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemContainer'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param activeContainedItem Barotrauma.Items.Components.ItemContainer.ActiveContainedItem
+---@return System.Boolean
+_G['Components']['ItemContainer'].ShouldApplyEffects = function(activeContainedItem) end
+
+---`Method Private Instance`
+_G['Components']['ItemContainer'].SetContainedItemPositionsIfNeeded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemContainer'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['ItemContainer'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['ItemContainer'].IsAccessible = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemContainer'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemContainer'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemContainer'].Combine = function(item, user) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['ItemContainer'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['ItemContainer'].Equip = function(character) end
+
+---`Method Private Instance`
+---@param containedItem Barotrauma.Item
+---@return System.Boolean
+_G['Components']['ItemContainer'].CanAutoInteractWithContained = function(containedItem) end
+
+---`Method Private Instance`
+---@param active System.Boolean
+_G['Components']['ItemContainer'].SetContainedActive = function(active) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return Barotrauma.RelatedItem
+_G['Components']['ItemContainer'].FindContainableItem = function(item) end
+
+---`Method Public Instance`
+---@param itemTagOrIdentifier Barotrauma.Identifier
+---@return System.Nullable*1System*Int32
+_G['Components']['ItemContainer'].FindSuitableSubContainerIndex = function(itemTagOrIdentifier) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ItemContainer'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+_G['Components']['ItemContainer'].SetContainedItemPositions = function() end
+
+---`Method Private Instance`
+---@param drawPosition System.Boolean
+---@param transformedItemIntervalHorizontal Microsoft.Xna.Framework.Vector2-ref
+---@param transformedItemIntervalVertical Microsoft.Xna.Framework.Vector2-ref
+---@param flippedX System.Boolean-ref
+---@param flippedY System.Boolean-ref
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['ItemContainer'].GetContainedPosition = function(drawPosition, transformedItemIntervalHorizontal, transformedItemIntervalVertical, flippedX, flippedY) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemContainer'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemContainer'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['ItemContainer'].SpawnAlwaysContainedItems = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemContainer'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemContainer'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['ItemContainer'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['ItemContainer'].Save = function(parentElement) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemContainer'].CreateGUI = function() end
+
+---`Method Private Instance`
+_G['Components']['ItemContainer'].SortItems = function() end
+
+---`Method Private Instance`
+_G['Components']['ItemContainer'].MergeStacks = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['Components']['ItemContainer'].GetUILabel = function() end
+
+---`Method Public Instance`
+---@param slotIndex System.Int32
+---@return Barotrauma.Sprite
+_G['Components']['ItemContainer'].GetSlotIcon = function(slotIndex) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemContainer'].KeepOpenWhenEquippedBy = function(character) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Components']['ItemContainer'].GetContainedIndicatorState = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['ItemContainer'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param itemDepth System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['ItemContainer'].DrawContainedItems = function(spriteBatch, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemContainer'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemContainer
+_G['Components']['ItemContainer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemContainer
+_G['Components']['ItemContainer'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E08C68.lua b/Meta/Types/client/_00007FFD97E08C68.lua
new file mode 100644
index 0000000..28b88a9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E08C68.lua
@@ -0,0 +1,137 @@
+---@meta
+---@class Barotrauma.Items.Components.ItemLabel : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field textBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field textColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field scrollAmount System.Single
+---`Field Private Instance`
+---@field scrollingText System.String
+---`Field Private Instance`
+---@field scrollPadding System.Single
+---`Field Private Instance`
+---@field scrollIndex System.Int32
+---`Field Private Instance`
+---@field needsScrolling System.Boolean
+---`Field Private Instance`
+---@field charWidths (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field prevScale System.Single
+---`Field Private Instance`
+---@field prevRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field sb System.Text.StringBuilder
+---`Field Private Instance`
+---@field padding Microsoft.Xna.Framework.Vector4
+---`Field Private Instance`
+---@field text System.String
+---`Field Private Instance`
+---@field ignoreLocalization System.Boolean
+---`Field Private Instance`
+---@field scrollable System.Boolean
+---`Field Private Instance`
+---@field parseSpecialTextTagOnStart System.Boolean
+---`Field Private Instance`
+---@field prevColorSignal System.String
+---`Field Private Static`
+---@field SpecialTextTags (System.String-arr)|(System.String[])
+---`Field Private Static`
+---@field BaseTextSize System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Text System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreLocalization System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayText Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Scrollable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScrollSpeed System.Single
+---`Getter Private Instance`
+---@field TextBlock Barotrauma.GUITextBlock
+---`Getter Private Instance`
+---@field BaseToRealTextScaleFactor System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+_G['Components']['ItemLabel'] = {}
+
+---`Method Public Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['Components']['ItemLabel'].GetExtraTextPickerEntries = function() end
+
+---`Method Private Instance`
+_G['Components']['ItemLabel'].SetScrollingText = function() end
+
+---`Method Private Instance`
+---@param value System.String
+_G['Components']['ItemLabel'].SetDisplayText = function(value) end
+
+---`Method Private Instance`
+_G['Components']['ItemLabel'].RecreateTextBlock = function() end
+
+---`Method Private Instance`
+_G['Components']['ItemLabel'].ParseSpecialTextTag = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemLabel'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['ItemLabel'].UpdateScrollingText = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemLabel'].OnScaleChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['ItemLabel'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['ItemLabel'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ItemLabel'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ItemLabel
+---@return Barotrauma.Items.Components.ItemLabel
+_G['Components']['ItemLabel'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ItemLabel
+---@return Barotrauma.Items.Components.ItemLabel
+_G['Components']['ItemLabel'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ItemLabel
+---@return Barotrauma.Items.Components.ItemLabel
+_G['Components']['ItemLabel'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ItemLabel
+---@return Barotrauma.Items.Components.ItemLabel
+_G['Components']['ItemLabel'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E08FC8.lua b/Meta/Types/client/_00007FFD97E08FC8.lua
new file mode 100644
index 0000000..1c2843e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E08FC8.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.Items.Components.Ladder : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field backgroundSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field BackgroundSpriteDepth System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*Items*Components*Ladder)|(Barotrauma.Items.Components.Ladder[])
+_G['Components']['Ladder'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Ladder'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Ladder'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Ladder'].Select = function(character) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Ladder'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+_G['Components']['Ladder'].RemoveProjSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E09230.lua b/Meta/Types/client/_00007FFD97E09230.lua
new file mode 100644
index 0000000..dc057b0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E09230.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Items.Components.NameTag : Barotrauma.Items.Components.ItemComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WrittenName System.String
+_G['Components']['NameTag'] = {}
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NameTag
+_G['Components']['NameTag'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NameTag
+_G['Components']['NameTag'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E09920.lua b/Meta/Types/client/_00007FFD97E09920.lua
new file mode 100644
index 0000000..ee9dbf8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E09920.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.Items.Components.Planter : Barotrauma.Items.Components.Pickable
+---`Field Public Instance`
+---@field PlantSlots (System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*PlantSlot)|({[System.Int32]:(Barotrauma.Items.Components.PlantSlot)})
+---`Field Private Instance`
+---@field fertilizer System.Single
+---`Field Public Instance`
+---@field GrowableSeeds (Barotrauma.Items.Components.Growable-arr)|(Barotrauma.Items.Components.Growable[])
+---`Field Private Instance`
+---@field SuitableFertilizer (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Private Instance`
+---@field SuitableSeeds (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Private Instance`
+---@field container Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field growthTickTimer System.Single
+---`Field Private Instance`
+---@field lightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Field Public Static`
+---@field NullSlot Barotrauma.Items.Components.PlantSlot
+---`Field Private Static`
+---@field NullItem Barotrauma.Items.Components.SuitablePlantItem
+---`Field Public Static`
+---@field GrowthTickDelay System.Single
+---`Field Private Static`
+---@field MsgFertilizer System.String
+---`Field Private Static`
+---@field MsgSeed System.String
+---`Field Private Static`
+---@field MsgHarvest System.String
+---`Field Private Static`
+---@field MsgUprooting System.String
+---`Field Private Static`
+---@field MsgFertilizing System.String
+---`Field Private Static`
+---@field MsgPlanting System.String
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Fertilizer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FertilizerCapacity System.Single
+---`Getter Public Instance Virtual`
+---@field DontTransferInventoryBetweenSubs System.Boolean
+_G['Components']['Planter'] = {}
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Planter'].CalculateSize = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Planter'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Planter'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['Planter'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Planter'].Pick = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Planter'].OnPicked = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Planter'].TryHarvest = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Planter'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.Items.Components.SuitablePlantItem
+_G['Components']['Planter'].GetSuitableItem = function(character) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Planter'].HasAnyFinishedGrowing = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E0BF28.lua b/Meta/Types/client/_00007FFD97E0BF28.lua
new file mode 100644
index 0000000..18a182f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0BF28.lua
@@ -0,0 +1,322 @@
+---@meta
+---@class Barotrauma.Items.Components.Projectile : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field particleEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1Barotrauma*Items*Components*Projectile*Impact)|(fun():(Barotrauma.Items.Components.Projectile.Impact))
+---`Field Private Instance`
+---@field removePending System.Boolean
+---`Field Private Instance`
+---@field spreadIndex System.Byte
+---`Field Private Instance`
+---@field stickJoint FarseerPhysics.Dynamics.Joints.Joint
+---`Field Private Instance`
+---@field jointAxis Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field launchPos Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field LaunchSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field hits (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Public Instance`
+---@field IgnoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Public Instance`
+---@field Launcher Barotrauma.Item
+---`Field Private Instance`
+---@field stickTargetCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field _user Barotrauma.Character
+---`Field Private Instance`
+---@field deactivationTimer System.Single
+---`Field Private Instance`
+---@field stickTimer System.Single
+---`Field Private Instance`
+---@field maxJointTranslationInSimUnits System.Single
+---`Field Private Instance`
+---@field originalCollisionCategories FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field originalCollisionTargets FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field lastTarget FarseerPhysics.Dynamics.Fixture
+---`Field Private Static`
+---@field spreadPool (System.Collections.Immutable.ImmutableArray*1System*Single)|(System.Single[])
+---`Field Public Static`
+---@field WaterDragCoefficient System.Single
+---`Field Private Static`
+---@field ContinuousCollisionThreshold System.Single
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SpreadCounter System.Byte
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Attack Barotrauma.Attack
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field User Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Attacker Barotrauma.Character
+---`Getter Public Instance`
+---@field Hits (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpulseSpread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchRotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LaunchRotationRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DoesStick System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToStructures System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToDeflective System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToLightTargets System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GoThroughLightTargets System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightTargetMassThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hitscan System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitScanCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxTargetsToHit System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveOnHit System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StaticSpread System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FriendlyFire System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeactivationTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxJointTranslation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JointBreakPoint System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Prismatic System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreProjectilesWhileActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StickTarget FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageUser System.Boolean
+---`Getter Public Instance`
+---@field IsStuckToTarget System.Boolean
+_G['Components']['Projectile'] = {}
+
+---`Method Public Instance`
+---@param target FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Projectile'].ShouldIgnoreSubmarineCollision = function(target, contact) end
+
+---`Method Private Instance`
+---@param target FarseerPhysics.Dynamics.Fixture-ref
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Projectile'].ShouldIgnoreSubmarineCollision = function(target, contact) end
+
+---`Method Private Instance`
+---@param target FarseerPhysics.Dynamics.Fixture
+---@param collisionNormal Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Projectile'].HandleProjectileCollision = function(target, collisionNormal, velocity) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Projectile'].GetLightTargetMassThreshold = function() end
+
+---`Method Private Instance`
+_G['Components']['Projectile'].EnableProjectileCollisions = function() end
+
+---`Method Private Instance`
+_G['Components']['Projectile'].DisableProjectileCollisions = function() end
+
+---`Method Public Instance`
+---@param body Barotrauma.PhysicsBody
+---@return System.Boolean
+_G['Components']['Projectile'].IsAttachedTo = function(body) end
+
+---`Method Private Instance`
+---@param targetBody FarseerPhysics.Dynamics.Body
+---@param axis Microsoft.Xna.Framework.Vector2
+_G['Components']['Projectile'].StickToTarget = function(targetBody, axis) end
+
+---`Method Public Instance`
+_G['Components']['Projectile'].Unstick = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Projectile'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+---@param startLocation Microsoft.Xna.Framework.Vector2
+---@param endLocation Microsoft.Xna.Framework.Vector2
+_G['Components']['Projectile'].LaunchProjSpecific = function(startLocation, endLocation) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Projectile'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Static`
+_G['Components']['Projectile'].ResetSpreadCounter = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Projectile'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Projectile'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Components']['Projectile'].GetSpreadFromPool = function() end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param damageMultiplier? System.Single
+---@param launchImpulseModifier? System.Single
+_G['Components']['Projectile'].Launch = function(user, simPosition, rotation, damageMultiplier, launchImpulseModifier) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param weaponPos Microsoft.Xna.Framework.Vector2
+---@param spawnPos Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---@param createNetworkEvent System.Boolean
+---@param damageMultiplier? System.Single
+---@param launchImpulseModifier? System.Single
+_G['Components']['Projectile'].Shoot = function(user, weaponPos, spawnPos, rotation, ignoredBodies, createNetworkEvent, damageMultiplier, launchImpulseModifier) end
+
+---`Method Public Instance`
+---@param character? Barotrauma.Character
+---@param launchImpulseModifier? System.Single
+---@return System.Boolean
+_G['Components']['Projectile'].Use = function(character, launchImpulseModifier) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Projectile'].Use = function(deltaTime, character) end
+
+---`Method Private Instance`
+---@param impulse Microsoft.Xna.Framework.Vector2
+_G['Components']['Projectile'].DoLaunch = function(impulse) end
+
+---`Method Private Instance`
+---@param dir Microsoft.Xna.Framework.Vector2
+_G['Components']['Projectile'].DoHitscan = function(dir) end
+
+---`Method Private Instance`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param submarine Barotrauma.Submarine
+---@return (System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile*HitscanResult)|(Barotrauma.Items.Components.Projectile.HitscanResult[])
+_G['Components']['Projectile'].DoRayCast = function(rayStart, rayEnd, submarine) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Projectile'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Projectile'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Projectile'].StickTargetRemoved = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param target FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Projectile'].OnProjectileCollision = function(f1, target, contact) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Projectile'].ShouldIgnoreCharacterCollision = function(character) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'] = function(item, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'].__new = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E0C9C0.lua b/Meta/Types/client/_00007FFD97E0C9C0.lua
new file mode 100644
index 0000000..cd1c655
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0C9C0.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.Items.Components.Quality : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field statValues (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Quality*StatType*1System*Single)|({[Barotrauma.Items.Components.Quality.StatType]:(System.Single)})
+---`Field Private Instance`
+---@field qualityLevel System.Int32
+---`Field Public Static`
+---@field MaxQuality System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field QualityLevel System.Int32
+_G['Components']['Quality'] = {}
+
+---`Method Public Instance Virtual`
+---@param name Barotrauma.LocalizedString-ref
+---@param description Barotrauma.LocalizedString-ref
+_G['Components']['Quality'].AddTooltipInfo = function(name, description) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.Items.Components.Quality.StatType
+---@return System.Single
+_G['Components']['Quality'].GetValue = function(statType) end
+
+---`Method Public Static`
+---@param submarine Barotrauma.Submarine
+---@param level Barotrauma.Level
+---@param randSync? Barotrauma.Rand.RandSync
+---@return System.Int32
+_G['Components']['Quality'].GetSpawnedItemQuality = function(submarine, level, randSync) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Quality
+_G['Components']['Quality'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Quality
+_G['Components']['Quality'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E0CD00.lua b/Meta/Types/client/_00007FFD97E0CD00.lua
new file mode 100644
index 0000000..cda42eb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0CD00.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.Items.Components.RemoteController : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field currentTarget Barotrauma.Item
+---`Field Private Instance`
+---@field currentUser Barotrauma.Character
+---`Field Private Instance`
+---@field currentSub Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Target Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OnlyInOwnSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.Item
+_G['Components']['RemoteController'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['RemoteController'].DrawHUD = function(spriteBatch, character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RemoteController'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['Components']['RemoteController'].AddToGUIUpdateList = function(order) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RemoteController'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['RemoteController'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RemoteController'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+_G['Components']['RemoteController'].FindTarget = function(user) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RemoteController
+_G['Components']['RemoteController'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RemoteController
+_G['Components']['RemoteController'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E0DC20.lua b/Meta/Types/client/_00007FFD97E0DC20.lua
new file mode 100644
index 0000000..cd22044
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0DC20.lua
@@ -0,0 +1,306 @@
+---@meta
+---@class Barotrauma.Items.Components.Repairable : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field progressBar Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field progressBarOverlayText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field extraButtonContainer Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field skillTextContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field particleEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field particleEmitterConditionRanges (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field repairSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field repairButtonText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field repairingText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field sabotageButtonText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field sabotagingText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field tinkerButtonText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field tinkeringText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field requestStartFixAction Barotrauma.Items.Components.Repairable.FixActions
+---`Field Private Instance`
+---@field qteSuccess System.Boolean
+---`Field Private Instance`
+---@field qteTimer System.Single
+---`Field Private Instance`
+---@field qteCooldown System.Single
+---`Field Public Instance`
+---@field FakeBrokenTimer System.Single
+---`Field Private Instance`
+---@field header Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field deteriorationTimer System.Single
+---`Field Private Instance`
+---@field updateDeteriorationCounter System.Int32
+---`Field Private Instance`
+---@field prevSentConditionValue System.Int32
+---`Field Private Instance`
+---@field conditionSignal System.String
+---`Field Private Instance`
+---@field wasBroken System.Boolean
+---`Field Private Instance`
+---@field wasGoodCondition System.Boolean
+---`Field Public Instance`
+---@field LastActiveTime System.Single
+---`Field Private Instance`
+---@field skillRequirementMultiplier System.Single
+---`Field Private Instance`
+---@field isTinkering System.Boolean
+---`Field Private Instance`
+---@field currentRepairItem Barotrauma.Item
+---`Field Private Instance`
+---@field tinkeringDuration System.Single
+---`Field Private Instance`
+---@field tinkeringStrength System.Single
+---`Field Private Instance`
+---@field tinkeringPowersDevices System.Boolean
+---`Field Private Instance`
+---@field currentFixerAction Barotrauma.Items.Components.Repairable.FixActions
+---`Field Private Static`
+---@field QteDuration System.Single
+---`Field Private Static`
+---@field QteCooldownDuration System.Single
+---`Field Private Static`
+---@field UpdateDeteriorationInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RepairButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SabotageButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TinkerButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Description System.String
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceDeteriorationTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeteriorationSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinDeteriorationDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxDeteriorationDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinDeteriorationCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinSabotageCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SabotageDeteriorationDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxStressDeteriorationMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StressDeteriorationThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StressDeteriorationIncreaseSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StressDeteriorationDecreaseSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FixDurationLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FixDurationHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillRequirementMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsTinkering System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentFixer Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StressDeteriorationMultiplier System.Single
+---`Getter Public Instance`
+---@field TinkeringStrength System.Single
+---`Getter Public Instance`
+---@field TinkeringPowersDevices System.Boolean
+---`Getter Public Instance`
+---@field IsBelowRepairThreshold System.Boolean
+---`Getter Public Instance`
+---@field IsBelowRepairIconThreshold System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentFixerAction Barotrauma.Items.Components.Repairable.FixActions
+_G['Components']['Repairable'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Repairable'].ShouldDrawHUD = function(character) end
+
+---`Method Private Instance`
+_G['Components']['Repairable'].RecreateGUI = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Repairable'].CreateGUI = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['Repairable'].DrawHUD = function(spriteBatch, character) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Repairable'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Repairable'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+_G['Components']['Repairable'].QTEAction = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Repairable'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Repairable'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Repairable'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Repairable'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param bestRepairItem Barotrauma.Item
+---@return System.Boolean
+_G['Components']['Repairable'].CheckCharacterSuccess = function(character, bestRepairItem) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Components']['Repairable'].GetSkillMultiplier = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param skills (System.Collections.Generic.List*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---@return System.Single
+_G['Components']['Repairable'].RepairDegreeOfSuccess = function(character, skills) end
+
+---`Method Public Instance`
+---@param qteSuccess System.Boolean
+_G['Components']['Repairable'].RepairBoost = function(qteSuccess) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param action Barotrauma.Items.Components.Repairable.FixActions
+---@return System.Boolean
+_G['Components']['Repairable'].StartRepairing = function(character, action) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Repairable'].StopRepairing = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Repairable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance`
+_G['Components']['Repairable'].ResetDeterioration = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Repairable'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Repairable'].UpdateDeterioration = function(deltaTime) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Single
+_G['Components']['Repairable'].GetMaxRepairConditionMultiplier = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Repairable'].IsTinkerable = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.Affliction
+_G['Components']['Repairable'].GetTinkerExhaustion = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Repairable'].CanTinker = function(character) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Repairable'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Instance`
+---@param powerConsumption System.Single-ref
+_G['Components']['Repairable'].AdjustPowerConsumption = function(powerConsumption) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Repairable'].ShouldDeteriorate = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Repairable'].GetDeteriorationDelayMultiplier = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Components']['Repairable'].UpdateFixAnimation = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Repairable'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Repairable
+_G['Components']['Repairable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Repairable
+_G['Components']['Repairable'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E0E688.lua b/Meta/Types/client/_00007FFD97E0E688.lua
new file mode 100644
index 0000000..7094943
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0E688.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.Items.Components.Rope : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field startSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field endSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field snapSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field reelSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field reelSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field _reelSoundPitchSlide Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field source Barotrauma.ISpatialEntity
+---`Field Private Instance`
+---@field target Barotrauma.Item
+---`Field Private Instance`
+---@field launchDir System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field currentRopeLength System.Single
+---`Field Private Instance`
+---@field snapTimer System.Single
+---`Field Private Instance`
+---@field raycastTimer System.Single
+---`Field Private Instance`
+---@field isReelingIn System.Boolean
+---`Field Private Instance`
+---@field snapped System.Boolean
+---`Field Private Static`
+---@field RayCastInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteWidth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tile System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BreakFromMiddle System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReelSoundPitchSlide Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapAnimDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProjectilePullForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetPullForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourcePullForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxLength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinPullDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapOnCollision System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapWhenNotAimed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapWhenWeaponFiredAgain System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelLengthMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetMinMass System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LerpForces System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IncreaseForceForEscapingTargets System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Snapped System.Boolean
+_G['Components']['Rope'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Rope'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param startPos Microsoft.Xna.Framework.Vector2
+---@param endPos Microsoft.Xna.Framework.Vector2
+---@param width System.Int32
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Rope'].DrawRope = function(spriteBatch, startPos, endPos, width, overrideColor) end
+
+---`Method Private Instance`
+---@param sound Barotrauma.RoundSound
+---@param position Microsoft.Xna.Framework.Vector2
+_G['Components']['Rope'].PlaySound = function(sound, position) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Rope'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Rope'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+---@param source Barotrauma.ISpatialEntity
+_G['Components']['Rope'].SetSource = function(source) end
+
+---`Method Private Instance`
+_G['Components']['Rope'].ResetSource = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Rope'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+_G['Components']['Rope'].Snap = function() end
+
+---`Method Public Instance`
+---@param source Barotrauma.ISpatialEntity
+---@param target Barotrauma.Item
+_G['Components']['Rope'].Attach = function(source, target) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Rope'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['Rope'].UpdateProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Rope'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param useDrawPosition? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Rope'].GetSourcePos = function(useDrawPosition) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISpatialEntity
+---@return Barotrauma.PhysicsBody
+_G['Components']['Rope'].GetBodyToPull = function(target) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Rope
+_G['Components']['Rope'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Rope
+_G['Components']['Rope'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E0EAC0.lua b/Meta/Types/client/_00007FFD97E0EAC0.lua
new file mode 100644
index 0000000..3e4647a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0EAC0.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.Items.Components.Scanner : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field scanTimer System.Single
+---`Field Public Instance`
+---@field OnScanStarted (System.Action*1Barotrauma*Items*Components*Scanner)|(fun(obj:Barotrauma.Items.Components.Scanner))
+---`Field Public Instance`
+---@field OnScanCompleted (System.Action*1Barotrauma*Items*Components*Scanner)|(fun(obj:Barotrauma.Items.Components.Scanner))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScanDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScanTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScanRadius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlwaysDisplayProgressBar System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Holdable Barotrauma.Items.Components.Holdable
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplayProgressBar System.Boolean
+---`Getter Private Instance`
+---@field IsScanCompleted System.Boolean
+_G['Components']['Scanner'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Scanner'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Scanner'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['Scanner'].UpdateProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Scanner'].OnItemLoaded = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Scanner
+_G['Components']['Scanner'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Scanner
+_G['Components']['Scanner'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E0EFC8.lua b/Meta/Types/client/_00007FFD97E0EFC8.lua
new file mode 100644
index 0000000..26b599a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0EFC8.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.Items.Components.StatusHUD : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field visibleCharacters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field updateTimer System.Single
+---`Field Private Instance`
+---@field equipper Barotrauma.Character
+---`Field Private Instance`
+---@field isEquippable System.Boolean
+---`Field Private Instance`
+---@field thermalEffectState System.Single
+---`Field Private Static`
+---@field BleedingTexts (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Field Private Static`
+---@field OxygenTexts (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Field Private Static`
+---@field UpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadeOutRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ThermalGoggles System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DebugWiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowDeadCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowTexts System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OverlayColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field VisibleCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['Components']['StatusHUD'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['StatusHUD'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['StatusHUD'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['StatusHUD'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['StatusHUD'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['StatusHUD'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['StatusHUD'].DrawHUD = function(spriteBatch, character) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param refEntity Barotrauma.Entity
+---@param user Barotrauma.Character
+---@param overlayColor Microsoft.Xna.Framework.Color
+---@param range System.Single
+---@param effectState System.Single
+---@param showDeadCharacters System.Boolean
+_G['Components']['StatusHUD'].DrawThermalOverlay = function(spriteBatch, refEntity, user, overlayColor, range, effectState, showDeadCharacters) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param target Barotrauma.Character
+---@param alpha? System.Single
+_G['Components']['StatusHUD'].DrawCharacterInfo = function(spriteBatch, target, alpha) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.StatusHUD
+---@return Barotrauma.Items.Components.StatusHUD
+_G['Components']['StatusHUD'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.StatusHUD
+---@return Barotrauma.Items.Components.StatusHUD
+_G['Components']['StatusHUD'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.StatusHUD
+---@return Barotrauma.Items.Components.StatusHUD
+_G['Components']['StatusHUD'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.StatusHUD
+---@return Barotrauma.Items.Components.StatusHUD
+_G['Components']['StatusHUD'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E0F900.lua b/Meta/Types/client/_00007FFD97E0F900.lua
new file mode 100644
index 0000000..910e912
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E0F900.lua
@@ -0,0 +1,174 @@
+---@meta
+---@class Barotrauma.Items.Components.TriggerComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field radius System.Single
+---`Field Private Instance`
+---@field width System.Single
+---`Field Private Instance`
+---@field height System.Single
+---`Field Private Instance`
+---@field currentRadius System.Single
+---`Field Private Instance`
+---@field currentWidth System.Single
+---`Field Private Instance`
+---@field currentHeight System.Single
+---`Field Private Instance`
+---@field bodyOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field triggeredBy Barotrauma.LevelTrigger.TriggererType
+---`Field Private Instance`
+---@field triggerSpeciesOrGroup Barotrauma.Identifier
+---`Field Private Instance`
+---@field conditionals Barotrauma.PropertyConditional.LogicalComparison
+---`Field Private Instance`
+---@field triggerers (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field triggerOnce System.Boolean
+---`Field Private Instance`
+---@field statusEffectTargets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Private Instance`
+---@field attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+---`Field Private Instance`
+---@field forceFluctuationStrength System.Single
+---`Field Private Instance`
+---@field forceFluctuationFrequency System.Single
+---`Field Private Instance`
+---@field forceFluctuationInterval System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceBasedForce System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceFluctuation System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationStrength System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationFrequency System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Radius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Width System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Height System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyOffset Microsoft.Xna.Framework.Vector2
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field RadiusInDisplayUnits System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field TriggeredOnce System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field CurrentForceFluctuation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TriggerActive System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationTimer System.Single
+---`Getter Private Static`
+---@field TimeInLevel System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyEffectsToCharactersInsideSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveOutsideSub System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+_G['Components']['TriggerComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['TriggerComponent'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['TriggerComponent'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+_G['Components']['TriggerComponent'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['TriggerComponent'].RefreshPhysicsBodySize = function() end
+
+---`Method Public Instance`
+---@param ignoreContacts? System.Boolean
+_G['Components']['TriggerComponent'].SetPhysicsBodyPosition = function(ignoreContacts) end
+
+---`Method Public Instance Virtual`
+_G['Components']['TriggerComponent'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['TriggerComponent'].OnCollision = function(sender, other, contact) end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+_G['Components']['TriggerComponent'].OnSeparation = function(sender, other, contact) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['TriggerComponent'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param body Barotrauma.PhysicsBody
+---@param multiplier? System.Single
+_G['Components']['TriggerComponent'].ApplyForce = function(body, multiplier) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['TriggerComponent'].Move = function(amount, ignoreContacts) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['TriggerComponent'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['TriggerComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TriggerComponent
+_G['Components']['TriggerComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TriggerComponent
+_G['Components']['TriggerComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E918A0.lua b/Meta/Types/client/_00007FFD97E918A0.lua
new file mode 100644
index 0000000..1213384
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E918A0.lua
@@ -0,0 +1,607 @@
+---@meta
+---@class Barotrauma.Items.Components.Turret : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field crosshairSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field crosshairPointerSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field WeaponIndicatorSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field powerIndicator Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field debugDrawTargetPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field recoilTimer System.Single
+---`Field Private Instance`
+---@field startMoveSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field endMoveSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field moveSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field chargeSound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field moveSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field chargeSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field oldRotation Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field crosshairPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field crosshairPointerPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field widgets (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Widget)|({[System.String]:(Barotrauma.Widget)})
+---`Field Private Instance`
+---@field prevAngle System.Single
+---`Field Private Instance`
+---@field currentBarrelSpin System.Single
+---`Field Private Instance`
+---@field flashLowPower System.Boolean
+---`Field Private Instance`
+---@field flashNoAmmo System.Boolean
+---`Field Private Instance`
+---@field flashLoaderBroken System.Boolean
+---`Field Private Instance`
+---@field flashTimer System.Single
+---`Field Private Instance`
+---@field flashLength System.Single
+---`Field Private Instance`
+---@field particleEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field particleEmitterCharges (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field _chargeSoundWindupPitchSlide Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field barrelSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field railSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field barrelSpriteBroken Barotrauma.Sprite
+---`Field Private Instance`
+---@field railSpriteBroken Barotrauma.Sprite
+---`Field Private Instance`
+---@field chargeSprites (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Sprite*2Microsoft*Xna*Framework*Vector2)|(System.ValueTuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field spinningBarrelSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field barrelPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field transformedBarrelPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field targetRotation System.Single
+---`Field Private Instance`
+---@field reload System.Single
+---`Field Private Instance`
+---@field shotCounter System.Int32
+---`Field Private Instance`
+---@field minRotation System.Single
+---`Field Private Instance`
+---@field maxRotation System.Single
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field angularVelocity System.Single
+---`Field Private Instance`
+---@field failedLaunchAttempts System.Int32
+---`Field Private Instance`
+---@field currentChargeTime System.Single
+---`Field Private Instance`
+---@field tryingToCharge System.Boolean
+---`Field Private Instance`
+---@field currentChargingState Barotrauma.Items.Components.Turret.ChargingState
+---`Field Private Instance`
+---@field activeProjectiles (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field resetUserTimer System.Single
+---`Field Private Instance`
+---@field aiFindTargetTimer System.Single
+---`Field Private Instance`
+---@field currentTarget Barotrauma.ISpatialEntity
+---`Field Private Instance`
+---@field projectileSpeed System.Single
+---`Field Private Instance`
+---@field previousAmmo Barotrauma.Item
+---`Field Private Instance`
+---@field currentLoaderIndex System.Int32
+---`Field Public Instance`
+---@field ActiveUser Barotrauma.Character
+---`Field Private Instance`
+---@field resetActiveUserTimer System.Single
+---`Field Private Instance`
+---@field lightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Field Private Instance`
+---@field lastProjectile Barotrauma.Items.Components.Projectile
+---`Field Private Instance`
+---@field isSlowTurret System.Boolean
+---`Field Private Instance`
+---@field flipFiringOffset System.Boolean
+---`Field Private Instance`
+---@field prevScale System.Single
+---`Field Private Instance`
+---@field prevBaseRotation System.Single
+---`Field Private Instance`
+---@field _maxAngleOffset System.Single
+---`Field Private Instance`
+---@field isUseBeingCalled System.Boolean
+---`Field Private Instance`
+---@field waitTimer System.Single
+---`Field Private Instance`
+---@field randomAimTimer System.Single
+---`Field Private Instance`
+---@field prevTargetRotation System.Single
+---`Field Private Instance`
+---@field updateTimer System.Single
+---`Field Private Instance`
+---@field updatePending System.Boolean
+---`Field Private Instance`
+---@field loadedRotationLimits System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field loadedBaseRotation System.Nullable*1System*Single
+---`Field Private Static`
+---@field MaxCircle System.Single
+---`Field Private Static`
+---@field HalfCircle System.Single
+---`Field Private Static`
+---@field QuarterCircle System.Single
+---`Field Private Static`
+---@field LaunchWithoutProjectileId System.UInt16
+---`Field Private Static`
+---@field CrewAiFindTargetMaxInterval System.Single
+---`Field Private Static`
+---@field CrewAIFindTargetMinInverval System.Single
+---`Field Private Static`
+---@field MinimumProjectileVelocityForAimAhead System.Single
+---`Field Private Static`
+---@field MaximumAimAhead System.Single
+---`Field Private Static`
+---@field TinkeringPowerCostReduction System.Single
+---`Field Private Static`
+---@field TinkeringDamageIncrease System.Single
+---`Field Private Static`
+---@field TinkeringReloadDecrease System.Single
+---`Field Private Static`
+---@field SetAutoOperateConnection System.String
+---`Field Private Static`
+---@field ToggleAutoOperateConnection System.String
+---`Getter Public Instance`
+---@field UIElementHeight System.Int32
+---`Getter Private Instance`
+---@field RetractionTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowChargeIndicator System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowProjectileIndicator System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RecoilDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpinningBarrelDistance System.Single
+---`Getter Public Instance Virtual`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field BarrelSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HideBarrelWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ChargeSoundWindupPitchSlide Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field ActiveProjectiles (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FiringOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlternatingFiringOffset System.Boolean
+---`Getter Public Instance`
+---@field TransformedBarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProjectileCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchWithoutProjectile System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FiringRotationSpeedModifier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SingleChargedShot System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AIRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxAngleOffset System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AICurrentTargetPriorityMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxActiveProjectiles System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxChargeTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShotsPerBurst System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DelayBetweenBursts System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RetractionDurationMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RecoilTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RetractionDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RotationLimits Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringStiffnessLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringStiffnessHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringDampingLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringDampingHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationSpeedLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationSpeedHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HudTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoOperate System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowAutoOperateWithWiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomAimAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomAimMinTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomAimMaxTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomMovement System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimDelay System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetMonsters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetHumans System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetSubmarines System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FriendlyTag Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FriendlyTeam Barotrauma.CharacterTeamType
+_G['Components']['Turret'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Turret'].InitProjSpecific = function(element) end
+
+---`Method Private Instance`
+_G['Components']['Turret'].UpdateTransformedBarrelPos = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Turret'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['Turret'].FindLightComponents = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Turret'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+_G['Components']['Turret'].UpdateLightComponents = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Turret'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Turret'].Use = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Components']['Turret'].GetPowerRequiredToShoot = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Turret'].HasPowerToShoot = function() end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Turret'].GetBarrelDir = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param ignorePower? System.Boolean
+---@return System.Boolean
+_G['Components']['Turret'].TryLaunch = function(deltaTime, character, ignorePower) end
+
+---`Method Private Instance`
+---@param projectile Barotrauma.Item
+---@param user? Barotrauma.Character
+---@param launchRotation? System.Nullable*1System*Single
+---@param tinkeringStrength? System.Single
+_G['Components']['Turret'].Launch = function(projectile, user, launchRotation, tinkeringStrength) end
+
+---`Method Private Instance`
+---@param projectile Barotrauma.Items.Components.Projectile
+_G['Components']['Turret'].TryDetermineProjectileSpeed = function(projectile) end
+
+---`Method Private Instance`
+_G['Components']['Turret'].LaunchProjSpecific = function() end
+
+---`Method Private Static`
+---@param container Barotrauma.Items.Components.ItemContainer
+_G['Components']['Turret'].ShiftItemsInProjectileContainer = function(container) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Turret'].GetTargetPriorityModifier = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param ignorePower System.Boolean
+---@param friendlyTag? Barotrauma.Identifier
+_G['Components']['Turret'].UpdateAutoOperate = function(deltaTime, ignorePower, friendlyTag) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Turret'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Private Instance`
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Turret'].IsPointingTowards = function(targetPos) end
+
+---`Method Private Instance`
+---@param target Barotrauma.Item
+---@param sqrDist System.Single
+---@return System.Boolean
+_G['Components']['Turret'].IsTargetItemCloseEnough = function(target, sqrDist) end
+
+---`Method Public Instance Virtual`
+---@param conn? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Turret'].GetCurrentPowerConsumption = function(conn) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISpatialEntity
+---@return System.Boolean
+_G['Components']['Turret'].IsValidTarget = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.Character
+---@param friendlyTag Barotrauma.Identifier
+---@return System.Boolean
+_G['Components']['Turret'].IsValidTargetForAutoOperate = function(target, friendlyTag) end
+
+---`Method Private Instance`
+---@param targetBody FarseerPhysics.Dynamics.Body
+---@param user? Barotrauma.Character
+---@param friendlyTag? Barotrauma.Identifier
+---@param targetSubmarines? System.Boolean
+---@param allowShootingIfNothingInWay? System.Boolean
+---@return System.Boolean
+_G['Components']['Turret'].CanShoot = function(targetBody, user, friendlyTag, targetSubmarines, allowShootingIfNothingInWay) end
+
+---`Method Private Instance`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@return FarseerPhysics.Dynamics.Body
+_G['Components']['Turret'].CheckLineOfSight = function(start, luaKey__end) end
+
+---`Method Private Instance`
+---@param useOffset? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Turret'].GetRelativeFiringPosition = function(useOffset) end
+
+---`Method Private Instance`
+---@param angle System.Single
+---@return System.Boolean
+_G['Components']['Turret'].IsWithinAimingRadius = function(angle) end
+
+---`Method Public Instance`
+---@param target Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Turret'].IsWithinAimingRadius = function(target) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Turret'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile)|(Barotrauma.Items.Components.Projectile[])
+_G['Components']['Turret'].GetLoadedProjectiles = function() end
+
+---`Method Private Static`
+---@param projectileContainer Barotrauma.Item
+---@param projectiles (System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile)|(Barotrauma.Items.Components.Projectile[])
+---@param stopSearching System.Boolean-ref
+_G['Components']['Turret'].CheckProjectileContainer = function(projectileContainer, projectiles, stopSearching) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Turret'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Turret'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Turret'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Turret'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Turret'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Turret'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['Turret'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Turret'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['Components']['Turret'].UpdateEditing = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Turret'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Turret'].GetRecoilOffset = function() end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param itemDepth? System.Single
+---@param overrideColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Components']['Turret'].Draw = function(spriteBatch, editing, itemDepth, overrideColor) end
+
+---`Method Private Static`
+---@param currentRotation System.Single
+---@param newRotation System.Single
+---@param rangeLockedRotation System.Single-ref
+_G['Components']['Turret'].AngleWrapAdjustment = function(currentRotation, newRotation, rangeLockedRotation) end
+
+---`Method Private Static`
+---@param rotation System.Single
+---@param newRotation System.Single
+---@return System.Boolean
+_G['Components']['Turret'].DetectAngleWrapAround = function(rotation, newRotation) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Turret'].GetDrawPos = function() end
+
+---`Method Private Instance`
+---@param id System.String
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param size? System.Int32
+---@param thickness? System.Single
+---@param initMethod? (System.Action*1Barotrauma*Widget)|(fun(obj:Barotrauma.Widget))
+---@return Barotrauma.Widget
+_G['Components']['Turret'].GetWidget = function(id, spriteBatch, size, thickness, initMethod) end
+
+---`Method Private Instance`
+---@param availableCharge System.Single-ref
+---@param availableCapacity System.Single-ref
+_G['Components']['Turret'].GetAvailablePower = function(availableCharge, availableCapacity) end
+
+---`Method Private Instance`
+---@param drawPosition Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['Components']['Turret'].GetRotationAngle = function(drawPosition) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param character Barotrauma.Character
+_G['Components']['Turret'].DrawHUD = function(spriteBatch, character) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Turret'].ClientEventRead = function(msg, sendingTime) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Turret
+_G['Components']['Turret'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Turret
+_G['Components']['Turret'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E91EC8.lua b/Meta/Types/client/_00007FFD97E91EC8.lua
new file mode 100644
index 0000000..a12ba77
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E91EC8.lua
@@ -0,0 +1,121 @@
+---@meta
+---@class Barotrauma.Items.Components.Wearable : Barotrauma.Items.Components.Pickable
+---`Field Private Instance`
+---@field wearableElements (Barotrauma.ContentXElement-arr)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field wearableSprites (Barotrauma.WearableSprite-arr)|(Barotrauma.WearableSprite[])
+---`Field Private Instance`
+---@field limbType (Barotrauma.LimbType-arr)|(Barotrauma.LimbType[])
+---`Field Private Instance`
+---@field limb (Barotrauma.Limb-arr)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field damageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Field Public Instance`
+---@field SkillModifiers (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Public Instance`
+---@field WearableStatValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field Public Instance`
+---@field Variants System.Int32
+---`Field Private Instance`
+---@field variant System.Int32
+---`Field Public Instance`
+---@field PressureProtection System.Single
+---`Field Private Instance`
+---@field loadedVariant System.Int32
+---`Getter Public Instance`
+---@field DamageModifiers (System.Collections.Generic.IEnumerable*1Barotrauma*DamageModifier)|(fun():(Barotrauma.DamageModifier))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AutoEquipWhenFull System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayContainedStatus System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowUseWhenWorn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Variant System.Int32
+_G['Components']['Wearable'] = {}
+
+---`Method Private Static`
+---@param description Barotrauma.LocalizedString-ref
+---@param damageModifier Barotrauma.DamageModifier
+---@param afflictionIdentifier Barotrauma.Identifier
+_G['Components']['Wearable'].GetDamageModifierText = function(description, damageModifier, afflictionIdentifier) end
+
+---`Method Public Instance Virtual`
+---@param name Barotrauma.LocalizedString-ref
+---@param description Barotrauma.LocalizedString-ref
+_G['Components']['Wearable'].AddTooltipInfo = function(name, description) end
+
+---`Method Public Static`
+---@param damageModifiers (System.Collections.Generic.IReadOnlyList*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---@param skillModifiers (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---@param description Barotrauma.LocalizedString-ref
+_G['Components']['Wearable'].AddTooltipInfo = function(damageModifiers, skillModifiers, description) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wearable'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Wearable'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wearable'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Wearable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Wearable'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Wearable'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Wearable'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Wearable'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Wearable'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Wearable'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Wearable'].ClientEventRead = function(msg, sendingTime) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Wearable
+_G['Components']['Wearable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Wearable
+_G['Components']['Wearable'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E93010.lua b/Meta/Types/client/_00007FFD97E93010.lua
new file mode 100644
index 0000000..f840d7f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E93010.lua
@@ -0,0 +1,504 @@
+---@meta
+---@class Barotrauma.Items.Components.CircuitBox : Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field UI Barotrauma.CircuitBoxUI
+---`Field Public Instance`
+---@field ActiveCursors (System.Collections.Generic.Dictionary*1Barotrauma*Character*1Barotrauma*CircuitBoxCursor)|({[Barotrauma.Character]:(Barotrauma.CircuitBoxCursor)})
+---`Field Public Instance`
+---@field HeldComponent Barotrauma.Option*1Barotrauma*ItemPrefab
+---`Field Private Instance`
+---@field cursorUpdateTimer System.Single
+---`Field Private Instance`
+---@field recordedCursorPositions (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field recordedDragStart Barotrauma.Option*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field recordedHeldPrefab Barotrauma.Option*1Barotrauma*ItemPrefab
+---`Field Private Instance`
+---@field wasInitializedByServer System.Boolean
+---`Field Public Instance`
+---@field Inputs (System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxInputConnection)|(Barotrauma.CircuitBoxInputConnection[])
+---`Field Public Instance`
+---@field Outputs (System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxOutputConnection)|(Barotrauma.CircuitBoxOutputConnection[])
+---`Field Public Instance`
+---@field Components (System.Collections.Generic.List*1Barotrauma*CircuitBoxComponent)|(Barotrauma.CircuitBoxComponent[])
+---`Field Public Instance`
+---@field InputOutputNodes (System.Collections.Generic.List*1Barotrauma*CircuitBoxInputOutputNode)|(Barotrauma.CircuitBoxInputOutputNode[])
+---`Field Public Instance`
+---@field Labels (System.Collections.Generic.List*1Barotrauma*CircuitBoxLabelNode)|(Barotrauma.CircuitBoxLabelNode[])
+---`Field Public Instance`
+---@field Wires (System.Collections.Generic.List*1Barotrauma*CircuitBoxWire)|(Barotrauma.CircuitBoxWire[])
+---`Field Public Instance`
+---@field containers (Barotrauma.Items.Components.ItemContainer-arr)|(Barotrauma.Items.Components.ItemContainer[])
+---`Field Public Instance`
+---@field TemporarilyLocked System.Boolean
+---`Field Private Instance`
+---@field delayedElementToLoad Barotrauma.Option*1Barotrauma*ContentXElement
+---`Field Public Static`
+---@field UnrealiableOpcodes (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxOpcode)|(Barotrauma.CircuitBoxOpcode[])
+---`Field Private Static`
+---@field CursorUpdateInterval System.Single
+---`Field Private Static`
+---@field ComponentContainerIndex System.Int32
+---`Field Private Static`
+---@field WireContainerIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WireSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConnectionSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WireConnectorSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConnectionScrewSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NodeFrameSprite Barotrauma.UISprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NodeTopSprite Barotrauma.UISprite
+---`Getter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance Virtual`
+---@field DontTransferInventoryBetweenSubs System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisallowSellingItemsFromContainer System.Boolean
+---`Getter Public Instance`
+---@field ComponentContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field WireContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field IsFull System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Locked System.Boolean
+_G['CircuitBox'] = {}
+
+---`Method Public Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param character Barotrauma.Character
+_G['CircuitBox'].CreateRefundItemsForUsedResources = function(ids, character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['CircuitBox'].GetSortedCircuitBoxItemsFromPlayer = function(character) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['CircuitBox'].CanItemBeAccessed = function(item) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['CircuitBox'].IsLocked = function() end
+
+---`Method Public Static`
+---@overload fun(prefab:Barotrauma.ItemPrefab, character:Barotrauma.Character):(Barotrauma.Option*1Barotrauma*Item)
+---@param prefab Barotrauma.ItemPrefab
+---@param playerItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Item)|(Barotrauma.Item[])
+---@return Barotrauma.Option*1Barotrauma*Item
+_G['CircuitBox'].GetApplicableResourcePlayerHas = function(prefab, playerItems) end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+---@param user Barotrauma.Character
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param onSpawned (System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item))
+_G['CircuitBox'].SpawnItem = function(prefab, user, container, onSpawned) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+_G['CircuitBox'].RemoveItem = function(item) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['CircuitBox'].IsInGame = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CircuitBox'].IsCircuitBoxSelected = function(character) end
+
+---`Method NonPublic Instance Virtual`
+_G['CircuitBox'].CreateGUI = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CircuitBox'].ShouldDrawHUD = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['CircuitBox'].UpdateHUDComponentSpecific = function(character, deltaTime, cam) end
+
+---`Method Public Instance`
+---@param node (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxComponent)|(fun():(Barotrauma.CircuitBoxComponent))
+_G['CircuitBox'].RemoveComponents = function(node) end
+
+---`Method Public Instance`
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+_G['CircuitBox'].AddWire = function(one, two) end
+
+---`Method Public Instance`
+---@param wires (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxWire)|(fun():(Barotrauma.CircuitBoxWire))
+_G['CircuitBox'].RemoveWires = function(wires) end
+
+---`Method Public Instance`
+---@param moveables (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxNode)|(fun():(Barotrauma.CircuitBoxNode))
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectComponents = function(moveables, overwrite) end
+
+---`Method Public Instance`
+---@param wires (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxWire)|(fun():(Barotrauma.CircuitBoxWire))
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectWires = function(wires, overwrite) end
+
+---`Method Public Instance`
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+---@param moveables (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxNode)|(fun():(Barotrauma.CircuitBoxNode))
+_G['CircuitBox'].MoveComponent = function(moveAmount, moveables) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@param pos Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].AddComponent = function(prefab, pos) end
+
+---`Method Public Instance`
+---@param label Barotrauma.CircuitBoxLabelNode
+---@param color Microsoft.Xna.Framework.Color
+---@param header Barotrauma.NetLimitedString
+---@param body Barotrauma.NetLimitedString
+_G['CircuitBox'].RenameLabel = function(label, color, header, body) end
+
+---`Method Public Instance`
+---@param node Barotrauma.CircuitBoxInputOutputNode
+---@param newOverrides (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+_G['CircuitBox'].SetConnectionLabelOverrides = function(node, newOverrides) end
+
+---`Method Public Instance`
+---@param node Barotrauma.CircuitBoxNode
+---@param dir Barotrauma.CircuitBoxResizeDirection
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].ResizeNode = function(node, dir, amount) end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].AddLabel = function(pos) end
+
+---`Method Public Instance`
+---@param labels (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxLabelNode)|(fun():(Barotrauma.CircuitBoxLabelNode))
+_G['CircuitBox'].RemoveLabel = function(labels) end
+
+---`Method NonPublic Instance Virtual`
+_G['CircuitBox'].OnResolutionChanged = function() end
+
+---`Method Public Instance`
+---@param data Barotrauma.INetSerializableStruct
+_G['CircuitBox'].ClientRead = function(data) end
+
+---`Method Public Instance`
+---@param opcode Barotrauma.CircuitBoxOpcode
+---@param data Barotrauma.INetSerializableStruct
+_G['CircuitBox'].SendMessage = function(opcode, data) end
+
+---`Method Private Instance`
+---@param cursorPositions (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param dragStart Barotrauma.Option*1Microsoft*Xna*Framework*Vector2
+---@param heldComponent Barotrauma.Option*1Barotrauma*Identifier
+_G['CircuitBox'].SendCursorState = function(cursorPositions, dragStart, heldComponent) end
+
+---`Method Public Instance`
+---@param info Barotrauma.NetCircuitBoxCursorInfo
+_G['CircuitBox'].ClientReadCursor = function(info) end
+
+---`Method Public Instance`
+---@param data Barotrauma.INetSerializableStruct
+_G['CircuitBox'].CreateClientEvent = function(data) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['CircuitBox'].ClientEventWrite = function(msg, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['CircuitBox'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance`
+---@param data Barotrauma.CircuitBoxServerCreateComponentEvent
+_G['CircuitBox'].AddComponentFromData = function(data) end
+
+---`Method Public Instance`
+---@param data Barotrauma.CircuitBoxServerCreateWireEvent
+_G['CircuitBox'].AddWireFromData = function(data) end
+
+---`Method Public Static`
+---@param id System.UInt16
+---@return Barotrauma.Item
+_G['CircuitBox'].FindItemByID = function(id) end
+
+---`Method Public Instance Virtual`
+---@param order? System.Int32
+_G['CircuitBox'].AddToGUIUpdateList = function(order) end
+
+---`Method Public Instance`
+---@overload fun(connectionName:Barotrauma.Identifier):(Barotrauma.Option*1Barotrauma*CircuitBoxConnection)
+---@param connection Barotrauma.Items.Components.Connection
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxConnection
+_G['CircuitBox'].FindInputOutputConnection = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['CircuitBox'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['CircuitBox'].OnInventoryChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['CircuitBox'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['CircuitBox'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+_G['CircuitBox'].TryInitializeNodes = function() end
+
+---`Method Public Instance`
+---@param loadElement Barotrauma.ContentXElement
+_G['CircuitBox'].LoadFromXML = function(loadElement) end
+
+---`Method Public Instance`
+---@param original Barotrauma.Items.Components.CircuitBox
+---@param clonedContainedItems (System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Item)|({[System.UInt16]:(Barotrauma.Item)})
+_G['CircuitBox'].CloneFrom = function(original, clonedContainedItems) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['CircuitBox'].Save = function(parentElement) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Character
+_G['CircuitBox'].OnDeselected = function(c) end
+
+---`Method Public Instance`
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@param onCreated (System.Action*1Barotrauma*Items*Components*CircuitBox*CreatedWire)|(fun(obj:Barotrauma.Items.Components.CircuitBox.CreatedWire))
+---@param selectedWirePrefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['CircuitBox'].Connect = function(one, two, onCreated, selectedWirePrefab) end
+
+---`Method Private Static`
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@return System.Boolean
+_G['CircuitBox'].VerifyConnection = function(one, two) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param color Microsoft.Xna.Framework.Color
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param header Barotrauma.NetLimitedString
+---@param body Barotrauma.NetLimitedString
+_G['CircuitBox'].AddLabelInternal = function(id, color, pos, header, body) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+_G['CircuitBox'].RemoveLabelInternal = function(ids) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].ResizeLabelInternal = function(id, pos, size) end
+
+---`Method Private Instance`
+---@param type Barotrauma.CircuitBoxInputOutputNode.Type
+---@param overrides (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+_G['CircuitBox'].RenameConnectionLabelsInternal = function(type, overrides) end
+
+---`Method Private Static`
+---@param conn Barotrauma.CircuitBoxConnection
+---@return System.Boolean
+_G['CircuitBox'].IsExternalConnection = function(conn) end
+
+---`Method Private Instance`
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@param id System.UInt16
+---@param prefab Barotrauma.ItemPrefab
+_G['CircuitBox'].CreateWireWithoutItem = function(one, two, id, prefab) end
+
+---`Method Private Instance`
+---@overload fun(one:Barotrauma.CircuitBoxConnection, two:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab, wireId:System.UInt16, onItemSpawned:(System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item)))
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@param wireId System.UInt16
+---@param it Barotrauma.Item
+_G['CircuitBox'].CreateWireWithItem = function(one, two, wireId, it) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param prefab Barotrauma.ItemPrefab
+---@param backingItem Barotrauma.Option*1Barotrauma*Item
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+_G['CircuitBox'].AddWireDirect = function(id, prefab, backingItem, one, two) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param color Microsoft.Xna.Framework.Color
+---@param header Barotrauma.NetLimitedString
+---@param body Barotrauma.NetLimitedString
+_G['CircuitBox'].RenameLabelInternal = function(id, color, header, body) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param prefab Barotrauma.ItemPrefab
+---@param usedResource Barotrauma.ItemPrefab
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param user Barotrauma.Character
+---@param onItemSpawned (System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item))
+---@return System.Boolean
+_G['CircuitBox'].AddComponentInternal = function(id, prefab, usedResource, pos, user, onItemSpawned) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param backingItem Barotrauma.Item
+---@param usedResource Barotrauma.ItemPrefab
+---@param pos Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].AddComponentInternalUnsafe = function(id, backingItem, usedResource, pos) end
+
+---`Method Private Static`
+---@param characterId System.UInt16
+---@param nodes (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxSelectable)|(fun():(Barotrauma.CircuitBoxSelectable))
+_G['CircuitBox'].ClearSelectionFor = function(characterId, nodes) end
+
+---`Method Private Instance`
+---@param characterId System.UInt16
+_G['CircuitBox'].ClearAllSelectionsInternal = function(characterId) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectLabelsInternal = function(ids, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectComponentsInternal = function(ids, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param nodeIds (System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16)|({[System.UInt16]:(Barotrauma.Option*1System*UInt16)})
+---@param wireIds (System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16)|({[System.UInt16]:(Barotrauma.Option*1System*UInt16)})
+---@param inputOutputs (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*CircuitBoxInputOutputNode*Type*1Barotrauma*Option*2System*UInt16)|({[Barotrauma.CircuitBoxInputOutputNode.Type]:(Barotrauma.Option*1System*UInt16)})
+---@param labels (System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16)|({[System.UInt16]:(Barotrauma.Option*1System*UInt16)})
+_G['CircuitBox'].UpdateSelections = function(nodeIds, wireIds, inputOutputs, labels) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectWiresInternal = function(ids, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param io (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxInputOutputNode*Type)|(fun():(Barotrauma.CircuitBoxInputOutputNode.Type))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectInputOutputInternal = function(io, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+_G['CircuitBox'].RemoveComponentInternal = function(ids) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+_G['CircuitBox'].RemoveWireInternal = function(ids) end
+
+---`Method Private Instance`
+---@param wire Barotrauma.CircuitBoxWire
+_G['CircuitBox'].RemoveWireCollectionUnsafe = function(wire) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param ios (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxInputOutputNode*Type)|(fun():(Barotrauma.CircuitBoxInputOutputNode.Type))
+---@param labels (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].MoveNodesInternal = function(ids, ios, labels, moveAmount) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CircuitBox'].Select = function(character) end
+
+---`Method Public Instance`
+_G['CircuitBox'].OnViewUpdateProjSpecific = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['CircuitBox'].InitProjSpecific = function(element) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['CircuitBox'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['CircuitBox'].IsRoundRunning = function() end
+
+---`Method Public Static`
+---@param itemId System.UInt16
+---@param componentIndex System.Byte
+---@return Barotrauma.Option*1Barotrauma*Items*Components*CircuitBox
+_G['CircuitBox'].FindCircuitBox = function(itemId, componentIndex) end
+
+---`Method Private Instance`
+---@param index System.Int32
+---@return Barotrauma.Items.Components.ItemContainer
+_G['CircuitBox'].GetContainerOrNull = function(index) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.CircuitBox
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'] = function(item, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.CircuitBox
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'].__new = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.CircuitBox
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.CircuitBox
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'].__new = function(item, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E936B0.lua b/Meta/Types/client/_00007FFD97E936B0.lua
new file mode 100644
index 0000000..166b824
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E936B0.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.CircuitBoxLabel : System.ValueType
+---`Getter Public Instance`
+---@field Value Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Font Barotrauma.GUIFont
+_G['CircuitBoxLabel'] = {}
+
+---`Constructor Public Instance`
+---@param value Barotrauma.LocalizedString
+---@param font Barotrauma.GUIFont
+---@return Barotrauma.CircuitBoxLabel
+_G['CircuitBoxLabel'] = function(value, font) end
+
+---`Constructor Public Instance`
+---@param value Barotrauma.LocalizedString
+---@param font Barotrauma.GUIFont
+---@return Barotrauma.CircuitBoxLabel
+_G['CircuitBoxLabel'].__new = function(value, font) end
+
diff --git a/Meta/Types/client/_00007FFD97E93CC0.lua b/Meta/Types/client/_00007FFD97E93CC0.lua
new file mode 100644
index 0000000..3d548a1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E93CC0.lua
@@ -0,0 +1,91 @@
+---@meta
+---@class Barotrauma.CircuitBoxConnection : System.Object
+---`Field Private Instance`
+---@field knobSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field screwSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field connectorSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field tooltip Barotrauma.Option*1Barotrauma*LocalizedString
+---`Field Public Instance`
+---@field Connection Barotrauma.Items.Components.Connection
+---`Field Public Instance`
+---@field Rect Microsoft.Xna.Framework.RectangleF
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ExternallyConnectedFrom (System.Collections.Generic.List*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---`Field Public Instance`
+---@field CircuitBox Barotrauma.Items.Components.CircuitBox
+---`Field Public Static`
+---@field Size System.Single
+---`Getter Public Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Label Barotrauma.CircuitBoxLabel
+---`Getter Private Static`
+---@field Padding System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field IsOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Length System.Single
+---`Getter Public Instance`
+---@field AnchorPoint Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxConnection'] = {}
+
+---`Method Public Instance`
+---@param label Barotrauma.LocalizedString
+---@param node Barotrauma.CircuitBoxNode
+_G['CircuitBoxConnection'].SetLabel = function(label, node) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param parentPos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxConnection'].Draw = function(spriteBatch, drawPos, parentPos, color) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param camera Barotrauma.Camera
+_G['CircuitBoxConnection'].DrawHUD = function(spriteBatch, camera) end
+
+---`Method Private Instance`
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+_G['CircuitBoxConnection'].InitProjSpecific = function(circuitBox) end
+
+---`Method Public Instance Abstract Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+_G['CircuitBoxConnection'].ReceiveSignal = function(signal) end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['CircuitBoxConnection'].Contains = function(pos) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E95188.lua b/Meta/Types/client/_00007FFD97E95188.lua
new file mode 100644
index 0000000..77b34ef
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E95188.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.CircuitBoxSelectable : System.Object
+---`Field Public Instance`
+---@field IsSelected System.Boolean
+---`Field Public Instance`
+---@field SelectedBy System.UInt16
+---`Getter Public Instance`
+---@field IsSelectedByMe System.Boolean
+_G['CircuitBoxSelectable'] = {}
+
+---`Method Public Instance`
+---@param selectedBy Barotrauma.Option*1System*UInt16
+_G['CircuitBoxSelectable'].SetSelected = function(selectedBy) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CircuitBoxSelectable
+_G['CircuitBoxSelectable'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CircuitBoxSelectable
+_G['CircuitBoxSelectable'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E95480.lua b/Meta/Types/client/_00007FFD97E95480.lua
new file mode 100644
index 0000000..2f37663
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E95480.lua
@@ -0,0 +1,121 @@
+---@meta
+---@class Barotrauma.CircuitBoxNode : Barotrauma.CircuitBoxSelectable
+---`Field Public Instance`
+---@field DrawRect Microsoft.Xna.Framework.RectangleF
+---`Field Private Instance`
+---@field TopDrawRect Microsoft.Xna.Framework.RectangleF
+---`Field Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Rect Microsoft.Xna.Framework.RectangleF
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Connectors (System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---`Field Public Instance`
+---@field CircuitBox Barotrauma.Items.Components.CircuitBox
+---`Field Public Static`
+---@field Opacity System.Single
+---`Getter Public Instance Virtual`
+---@field IsResizable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxNode'] = {}
+
+---`Method NonPublic Instance`
+_G['CircuitBoxNode'].UpdateDrawRects = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxNode'].OnUICreated = function() end
+
+---`Method Public Instance Virtual`
+---@param drawRect Microsoft.Xna.Framework.RectangleF
+_G['CircuitBoxNode'].OnResized = function(drawRect) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawRect Microsoft.Xna.Framework.RectangleF
+---@param topDrawRect Microsoft.Xna.Framework.RectangleF
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxNode'].DrawBackground = function(spriteBatch, drawRect, topDrawRect, color) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxNode'].Draw = function(spriteBatch, drawPos, color) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param camera Barotrauma.Camera
+_G['CircuitBoxNode'].DrawHUD = function(spriteBatch, camera) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxNode'].DrawHeader = function(spriteBatch, rect, color) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxNode'].DrawBody = function(spriteBatch, rect, color) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawPos Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxNode'].DrawConnectors = function(spriteBatch, drawPos) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxNode'].DrawSelection = function(spriteBatch, color) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param overridePos Microsoft.Xna.Framework.Vector2
+---@param originalPos Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.RectangleF
+_G['CircuitBoxNode'].OverrideRectLocation = function(rect, overridePos, originalPos) end
+
+---`Method Public Instance`
+---@param directions Barotrauma.CircuitBoxResizeDirection
+---@param amount Microsoft.Xna.Framework.Vector2
+---@return System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2
+_G['CircuitBoxNode'].ResizeBy = function(directions, amount) end
+
+---`Method Public Instance`
+---@param newSize Microsoft.Xna.Framework.Vector2
+---@param newPos Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxNode'].ApplyResize = function(newSize, newPos) end
+
+---`Method Public Static`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---@return Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxNode'].CalculateSize = function(conns) end
+
+---`Method NonPublic Instance`
+_G['CircuitBoxNode'].UpdatePositions = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E959A0.lua b/Meta/Types/client/_00007FFD97E959A0.lua
new file mode 100644
index 0000000..abb8a4a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E959A0.lua
@@ -0,0 +1,69 @@
+---@meta
+---@class Barotrauma.CircuitBoxComponent : Barotrauma.CircuitBoxNode
+---`Field Private Instance`
+---@field label System.Nullable*1Barotrauma*CircuitBoxLabel
+---`Field Public Instance`
+---@field Item Barotrauma.Item
+---`Field Public Instance`
+---@field UsedResource Barotrauma.ItemPrefab
+---`Field Public Static`
+---@field EditingHUD Barotrauma.Option*1Barotrauma*GUIComponent
+---`Getter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Private Instance`
+---@field Label Barotrauma.CircuitBoxLabel
+---`Getter Public Instance Virtual`
+---@field ID System.UInt16
+_G['CircuitBoxComponent'] = {}
+
+---`Method Public Instance`
+---@param parent Barotrauma.RectTransform
+_G['CircuitBoxComponent'].UpdateEditing = function(parent) end
+
+---`Method Public Static`
+_G['CircuitBoxComponent'].RemoveEditingHUD = function() end
+
+---`Method Public Instance`
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.GUIComponent
+_G['CircuitBoxComponent'].CreateEditingHUD = function(parent) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawRect Microsoft.Xna.Framework.RectangleF
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxComponent'].DrawHeader = function(spriteBatch, drawRect, color) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxComponent
+_G['CircuitBoxComponent'].TryLoadFromXML = function(element, circuitBox) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['CircuitBoxComponent'].Save = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxComponent'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(id:System.UInt16, item:Barotrauma.Item, position:Microsoft.Xna.Framework.Vector2, circuitBox:Barotrauma.Items.Components.CircuitBox, usedResource:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxComponent
+---@return Barotrauma.CircuitBoxComponent
+_G['CircuitBoxComponent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(id:System.UInt16, item:Barotrauma.Item, position:Microsoft.Xna.Framework.Vector2, circuitBox:Barotrauma.Items.Components.CircuitBox, usedResource:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxComponent
+---@return Barotrauma.CircuitBoxComponent
+_G['CircuitBoxComponent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(id:System.UInt16, item:Barotrauma.Item, position:Microsoft.Xna.Framework.Vector2, circuitBox:Barotrauma.Items.Components.CircuitBox, usedResource:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxComponent
+---@return Barotrauma.CircuitBoxComponent
+_G['CircuitBoxComponent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(id:System.UInt16, item:Barotrauma.Item, position:Microsoft.Xna.Framework.Vector2, circuitBox:Barotrauma.Items.Components.CircuitBox, usedResource:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxComponent
+---@return Barotrauma.CircuitBoxComponent
+_G['CircuitBoxComponent'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E96548.lua b/Meta/Types/client/_00007FFD97E96548.lua
new file mode 100644
index 0000000..c0e0c7d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E96548.lua
@@ -0,0 +1,63 @@
+---@meta
+---@class Barotrauma.CircuitBoxWire : Barotrauma.CircuitBoxSelectable
+---`Field Public Instance`
+---@field Renderer Barotrauma.CircuitBoxWireRenderer
+---`Field Public Instance`
+---@field From Barotrauma.CircuitBoxConnection
+---`Field Public Instance`
+---@field To Barotrauma.CircuitBoxConnection
+---`Field Public Instance`
+---@field BackingWire Barotrauma.Option*1Barotrauma*Item
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field UsedItemPrefab Barotrauma.ItemPrefab
+---`Field Public Static`
+---@field SelectedWirePrefab Barotrauma.ItemPrefab
+---`Field Public Static`
+---@field DefaultWireColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---@field ID System.UInt16
+---`Getter Public Static`
+---@field DefaultWirePrefab Barotrauma.ItemPrefab
+_G['CircuitBoxWire'] = {}
+
+---`Method Public Instance`
+_G['CircuitBoxWire'].Update = function() end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['CircuitBoxWire'].Save = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxWire
+_G['CircuitBoxWire'].TryLoadFromXML = function(element, circuitBox) end
+
+---`Method Public Instance`
+_G['CircuitBoxWire'].EnsureWireConnected = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxWire'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E969C8.lua b/Meta/Types/client/_00007FFD97E969C8.lua
new file mode 100644
index 0000000..f26a7ed
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E969C8.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.CircuitBoxInputOutputNode : Barotrauma.CircuitBoxNode
+---`Field Public Instance`
+---@field NodeType Barotrauma.CircuitBoxInputOutputNode.Type
+---`Field Public Instance`
+---@field ConnectionLabelOverrides (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Field Private Static`
+---@field PromptUserData System.String
+---`Field Private Static`
+---@field MaxConnectionLabelLength System.Int32
+---`Field Private Static`
+---@field ConnectionLabelOverrideElementName System.String
+_G['CircuitBoxInputOutputNode'] = {}
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+_G['CircuitBoxInputOutputNode'].PromptEdit = function(parent) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+_G['CircuitBoxInputOutputNode'].RemoveEditPrompt = function(parent) end
+
+---`Method Public Instance`
+---@param replace (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+_G['CircuitBoxInputOutputNode'].ReplaceAllConnectionLabelOverrides = function(replace) end
+
+---`Method Private Instance`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+_G['CircuitBoxInputOutputNode'].InitSize = function(conns) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['CircuitBoxInputOutputNode'].Save = function() end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['CircuitBoxInputOutputNode'].Load = function(element) end
+
+---`Constructor Public Instance`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---@param initialPosition Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.CircuitBoxInputOutputNode.Type
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.CircuitBoxInputOutputNode
+_G['CircuitBoxInputOutputNode'] = function(conns, initialPosition, type, circuitBox) end
+
+---`Constructor Public Instance`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---@param initialPosition Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.CircuitBoxInputOutputNode.Type
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.CircuitBoxInputOutputNode
+_G['CircuitBoxInputOutputNode'].__new = function(conns, initialPosition, type, circuitBox) end
+
diff --git a/Meta/Types/client/_00007FFD97E96B10.lua b/Meta/Types/client/_00007FFD97E96B10.lua
new file mode 100644
index 0000000..1a7477a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E96B10.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.CircuitBoxSizes : System.Object
+---`Field Public Static`
+---@field ConnectorSize System.Int32
+---`Field Public Static`
+---@field AnchorOffset System.Int32
+---`Field Public Static`
+---@field NodeHeaderHeight System.Int32
+---`Field Public Static`
+---@field NodeInitialPadding System.Int32
+---`Field Public Static`
+---@field WireWidth System.Int32
+---`Field Public Static`
+---@field WireKnobLength System.Int32
+---`Field Public Static`
+---@field NodeHeaderTextPadding System.Int32
+---`Field Public Static`
+---@field NodeBodyTextPadding System.Int32
+---`Field Public Static`
+---@field PlayableAreaSize System.Single
+_G['CircuitBoxSizes'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97E97160.lua b/Meta/Types/client/_00007FFD97E97160.lua
new file mode 100644
index 0000000..6029bcb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E97160.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.CircuitBoxWireRenderer : System.Object
+---`Field Private Instance`
+---@field texture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field verts (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---`Field Private Instance`
+---@field colliders (Microsoft.Xna.Framework.Vector2-arr-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+---`Field Private Instance`
+---@field skeleton Barotrauma.SquareLine
+---`Field Private Instance`
+---@field lastStart Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lastEnd Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lastColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field wire Barotrauma.Option*1Barotrauma*CircuitBoxWire
+---`Field Private Static`
+---@field VertsPerQuad System.Int32
+---`Field Private Static`
+---@field QuadsPerLine System.Int32
+---`Field Private Static`
+---@field VertsPerLine System.Int32
+---`Field Private Static`
+---@field TotalVertsPerWire System.Int32
+_G['CircuitBoxWireRenderer'] = {}
+
+---`Method Private Instance`
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxWireRenderer'].UpdateColor = function(color) end
+
+---`Method Public Instance`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxWireRenderer'].Recompute = function(start, luaKey__end, color) end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['CircuitBoxWireRenderer'].Contains = function(pos) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param selectionColor Microsoft.Xna.Framework.Color
+_G['CircuitBoxWireRenderer'].Draw = function(spriteBatch, selectionColor) end
+
+---`Constructor Public Instance`
+---@param wire Barotrauma.Option*1Barotrauma*CircuitBoxWire
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param wireSprite Barotrauma.Sprite
+---@return Barotrauma.CircuitBoxWireRenderer
+_G['CircuitBoxWireRenderer'] = function(wire, start, luaKey__end, color, wireSprite) end
+
+---`Constructor Public Instance`
+---@param wire Barotrauma.Option*1Barotrauma*CircuitBoxWire
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param wireSprite Barotrauma.Sprite
+---@return Barotrauma.CircuitBoxWireRenderer
+_G['CircuitBoxWireRenderer'].__new = function(wire, start, luaKey__end, color, wireSprite) end
+
diff --git a/Meta/Types/client/_00007FFD97E981C0.lua b/Meta/Types/client/_00007FFD97E981C0.lua
new file mode 100644
index 0000000..a8a659a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E981C0.lua
@@ -0,0 +1,107 @@
+---@meta
+---@class Barotrauma.CircuitBoxMouseDragSnapshotHandler : System.Object
+---`Field Private Instance`
+---@field connections (System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---`Field Private Instance`
+---@field lastNodesUnderCursor (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+---`Field Private Instance`
+---@field lastSelectedComponents (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+---`Field Private Instance`
+---@field moveAffectedComponents (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+---`Field Public Instance`
+---@field LastResizeAffectedNode Barotrauma.Option*1System*ValueTuple*2Barotrauma*CircuitBoxResizeDirection*2Barotrauma*CircuitBoxNode
+---`Field Public Instance`
+---@field LastConnectorUnderCursor Barotrauma.Option*1Barotrauma*CircuitBoxConnection
+---`Field Public Instance`
+---@field LastWireUnderCursor Barotrauma.Option*1Barotrauma*CircuitBoxWire
+---`Field Private Instance`
+---@field startClick Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field circuitBoxUi Barotrauma.CircuitBoxUI
+---`Field Private Static`
+---@field dragTreshold System.Single
+---`Getter Public Instance`
+---@field Nodes (System.Collections.Generic.IEnumerable*1Barotrauma*CircuitBoxNode)|(fun():(Barotrauma.CircuitBoxNode))
+---`Getter Private Instance`
+---@field Wires (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxWire)|(Barotrauma.CircuitBoxWire[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsDragging System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsWiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsResizing System.Boolean
+_G['CircuitBoxMouseDragSnapshotHandler'] = {}
+
+---`Method Public Instance`
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+_G['CircuitBoxMouseDragSnapshotHandler'].GetLastComponentsUnderCursor = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+_G['CircuitBoxMouseDragSnapshotHandler'].GetMoveAffectedComponents = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxMouseDragSnapshotHandler'].StartDragging = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxMouseDragSnapshotHandler'].ClearSnapshot = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxMouseDragSnapshotHandler'].UpdateConnections = function() end
+
+---`Method Public Instance`
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxConnection
+_G['CircuitBoxMouseDragSnapshotHandler'].FindConnectorUnderCursor = function(cursorPos) end
+
+---`Method Public Instance`
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxWire
+_G['CircuitBoxMouseDragSnapshotHandler'].FindWireUnderCursor = function(cursorPos) end
+
+---`Method Public Instance`
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+_G['CircuitBoxMouseDragSnapshotHandler'].FindNodesUnderCursor = function(cursorPos) end
+
+---`Method Private Instance`
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxMouseDragSnapshotHandler'].SnapshotNodesUnderCursor = function(cursorPos) end
+
+---`Method Private Instance`
+---@param nodes (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Option*1System*ValueTuple*2Barotrauma*CircuitBoxResizeDirection*2Barotrauma*CircuitBoxNode
+_G['CircuitBoxMouseDragSnapshotHandler'].FindResizeBorderUnderCursor = function(nodes, cursorPos) end
+
+---`Method Private Instance`
+_G['CircuitBoxMouseDragSnapshotHandler'].SnapshotSelectedNodes = function() end
+
+---`Method Private Instance`
+_G['CircuitBoxMouseDragSnapshotHandler'].SnapshotMoveAffectedNodes = function() end
+
+---`Method Public Instance`
+---@param mousePos Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxMouseDragSnapshotHandler'].GetDragAmount = function(mousePos) end
+
+---`Method Public Instance`
+_G['CircuitBoxMouseDragSnapshotHandler'].EndDragging = function() end
+
+---`Method Public Instance`
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxMouseDragSnapshotHandler'].UpdateDrag = function(cursorPos) end
+
+---`Constructor Public Instance`
+---@param ui Barotrauma.CircuitBoxUI
+---@return Barotrauma.CircuitBoxMouseDragSnapshotHandler
+_G['CircuitBoxMouseDragSnapshotHandler'] = function(ui) end
+
+---`Constructor Public Instance`
+---@param ui Barotrauma.CircuitBoxUI
+---@return Barotrauma.CircuitBoxMouseDragSnapshotHandler
+_G['CircuitBoxMouseDragSnapshotHandler'].__new = function(ui) end
+
diff --git a/Meta/Types/client/_00007FFD97E98F78.lua b/Meta/Types/client/_00007FFD97E98F78.lua
new file mode 100644
index 0000000..3a5e366
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E98F78.lua
@@ -0,0 +1,159 @@
+---@meta
+---@class Barotrauma.CircuitBoxUI : System.Object
+---`Field Private Instance`
+---@field camera Barotrauma.Camera
+---`Field Public Instance`
+---@field CircuitBox Barotrauma.Items.Components.CircuitBox
+---`Field Private Instance`
+---@field componentMenuOpen System.Boolean
+---`Field Private Instance`
+---@field componentMenuOpenState System.Single
+---`Field Private Instance`
+---@field circuitComponent Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field componentMenu Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field toggleMenuButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field selectedWireFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field componentList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field inventoryIndicatorText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field cursorSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field selection Barotrauma.Option*1Microsoft*Xna*Framework*RectangleF
+---`Field Private Instance`
+---@field searchTerm System.String
+---`Field Public Instance`
+---@field MouseSnapshotHandler Barotrauma.CircuitBoxMouseDragSnapshotHandler
+---`Field Public Instance`
+---@field VirtualWires (System.Collections.Generic.List*1Barotrauma*CircuitBoxWireRenderer)|(Barotrauma.CircuitBoxWireRenderer[])
+---`Field Private Instance`
+---@field cursorPos Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field gridSize Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field DraggedWire Barotrauma.Option*1Barotrauma*CircuitBoxWireRenderer
+---`Field Private Static`
+---@field lineWidth System.Single
+---`Field Private Static`
+---@field lineBaseWidth System.Single
+---`Getter Public Instance`
+---@field Locked System.Boolean
+_G['CircuitBoxUI'] = {}
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIFrame
+_G['CircuitBoxUI'].CreateGUI = function(parent) end
+
+---`Method Private Instance`
+---@return System.String
+_G['CircuitBoxUI'].GetInventoryText = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxUI'].UpdateComponentList = function() end
+
+---`Method Private Static`
+---@param component Barotrauma.GUIComponent
+---@param obj System.Object
+---@return System.Boolean
+_G['CircuitBoxUI'].SelectWire = function(component, obj) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.ItemPrefab
+---@param parent Barotrauma.RectTransform
+_G['CircuitBoxUI'].CreateComponentElement = function(prefab, parent) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param screenRect Microsoft.Xna.Framework.Rectangle
+_G['CircuitBoxUI'].DrawHUD = function(spriteBatch, screenRect) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos1 Microsoft.Xna.Framework.Vector2
+---@param pos2 Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+_G['CircuitBoxUI'].DrawSelection = function(spriteBatch, pos1, pos2, color) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param fillColor Microsoft.Xna.Framework.Color
+---@param borderColor Microsoft.Xna.Framework.Color
+_G['CircuitBoxUI'].DrawRectangleWithBorder = function(spriteBatch, rect, fillColor, borderColor) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param borderColor Microsoft.Xna.Framework.Color
+_G['CircuitBoxUI'].DrawRectangleOnlyBorder = function(spriteBatch, rect, borderColor) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CircuitBoxUI'].DrawCircuits = function(spriteBatch) end
+
+---`Method Private Instance`
+---@overload fun(node:Barotrauma.CircuitBoxNode):(Microsoft.Xna.Framework.Color)
+---@overload fun(wire:Barotrauma.CircuitBoxWire):(Microsoft.Xna.Framework.Color)
+---@param selectedBy System.UInt16
+---@param isSelectedByMe System.Boolean
+---@return Microsoft.Xna.Framework.Color
+_G['CircuitBoxUI'].GetSelectionColor = function(selectedBy, isSelectedByMe) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxUI'].GetCursorPosition = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Option*1Microsoft*Xna*Framework*Vector2
+_G['CircuitBoxUI'].GetDragStart = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CircuitBoxUI'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param state System.Boolean
+_G['CircuitBoxUI'].SetMenuVisibility = function(state) end
+
+---`Method Private Instance`
+_G['CircuitBoxUI'].UpdateSelection = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['CircuitBoxUI'].TrySelectComponentsUnderCursor = function() end
+
+---`Method Private Instance`
+_G['CircuitBoxUI'].OpenContextMenu = function() end
+
+---`Method Public Instance`
+---@param nodes (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode)|(Barotrauma.CircuitBoxNode[])
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxUI'].GetTopmostNode = function(nodes) end
+
+---`Method Public Instance`
+_G['CircuitBoxUI'].AddToGUIUpdateList = function() end
+
+---`Constructor Public Instance`
+---@overload fun(box:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxUI
+---@return Barotrauma.CircuitBoxUI
+_G['CircuitBoxUI'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(box:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxUI
+---@return Barotrauma.CircuitBoxUI
+_G['CircuitBoxUI'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(box:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxUI
+---@return Barotrauma.CircuitBoxUI
+_G['CircuitBoxUI'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(box:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxUI
+---@return Barotrauma.CircuitBoxUI
+_G['CircuitBoxUI'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E9A480.lua b/Meta/Types/client/_00007FFD97E9A480.lua
new file mode 100644
index 0000000..9e5f4fb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9A480.lua
@@ -0,0 +1,669 @@
+---@meta
+---@class Barotrauma.Submarine : Barotrauma.Entity
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Private Instance`
+---@field upgradeEventIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field subBody Barotrauma.SubmarineBody
+---`Field Public Instance`
+---@field ConnectedDockingPorts (System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1Barotrauma*Items*Components*DockingPort)|({[Barotrauma.Submarine]:(Barotrauma.Items.Components.DockingPort)})
+---`Field Private Instance`
+---@field prevPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field entityGrid Barotrauma.EntityGrid
+---`Field Public Instance`
+---@field ShowSonarMarker System.Boolean
+---`Field Public Instance`
+---@field ForcedOutpostModuleWayPoints (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field realWorldCrushDepth System.Nullable*1System*Single
+---`Field Private Instance`
+---@field submarineSpecificIDTag System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field exitPoints (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field ballastFloraTimer System.Single
+---`Field Private Instance`
+---@field connectedSubs (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field flippedX System.Boolean
+---`Field Private Instance`
+---@field outdoorNodes (System.Collections.Generic.List*1Barotrauma*PathNode)|(Barotrauma.PathNode[])
+---`Field Private Instance`
+---@field obstructedNodes (System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*HashSet*2Barotrauma*PathNode)|({[Barotrauma.Submarine]:((System.Collections.Generic.HashSet*1Barotrauma*PathNode)|(Barotrauma.PathNode[]))})
+---`Field Private Static`
+---@field visibleSubs (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Static`
+---@field prevCullTime System.Double
+---`Field Private Static`
+---@field prevCullArea Microsoft.Xna.Framework.Rectangle
+---`Field Public Static`
+---@field DamageEffectCutoff System.Single
+---`Field Public Static`
+---@field DamageEffectColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field depthSortedDamageable (System.Collections.Generic.List*1Barotrauma*Structure)|(Barotrauma.Structure[])
+---`Field Public Static`
+---@field HiddenSubStartPosition Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field LockX System.Boolean
+---`Field Public Static`
+---@field LockY System.Boolean
+---`Field Public Static`
+---@field GridSize Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field MainSubs (Barotrauma.Submarine-arr)|(Barotrauma.Submarine[])
+---`Field Private Static`
+---@field loaded (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Static`
+---@field visibleEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Static`
+---@field lastPickedPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field lastPickedFraction System.Single
+---`Field Private Static`
+---@field lastPickedFixture FarseerPhysics.Dynamics.Fixture
+---`Field Private Static`
+---@field lastPickedNormal Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field checkSubmarineBorders (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Static`
+---@field bodyDist (System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1System*Single)|({[FarseerPhysics.Dynamics.Body]:(System.Single)})
+---`Field Private Static`
+---@field bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Static`
+---@field CullInterval System.Single
+---`Field Private Static`
+---@field CullMargin System.Int32
+---`Field Private Static`
+---@field CullMoveThreshold System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Info Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HiddenSubPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdOffset System.UInt16
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field MainSub Barotrauma.Submarine
+---`Getter Public Static`
+---@field VisibleEntities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---`Getter Public Instance`
+---@field DockedTo (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---`Getter Public Static`
+---@field LastPickedPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field LastPickedFraction System.Single
+---`Getter Public Static`
+---@field LastPickedFixture FarseerPhysics.Dynamics.Fixture
+---`Getter Public Static`
+---@field LastPickedNormal Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Loading System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GodMode System.Boolean
+---`Getter Public Static`
+---@field Loaded (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Getter Public Instance`
+---@field SubBody Barotrauma.SubmarineBody
+---`Getter Public Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---@field Borders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field VisibleBorders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field RealWorldCrushDepth System.Single
+---`Getter Public Instance`
+---@field RealWorldDepth System.Single
+---`Getter Public Instance`
+---@field IsAboveLevel System.Boolean
+---`Getter Public Instance`
+---@field AtEndExit System.Boolean
+---`Getter Public Instance`
+---@field AtStartExit System.Boolean
+---`Getter Public Instance`
+---@field AtEitherExit System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Velocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field HullVertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Getter Public Instance`
+---@field SubmarineSpecificIDTag System.Int32
+---`Getter Public Instance`
+---@field AtDamageDepth System.Boolean
+---`Getter Public Instance`
+---@field IsRespawnShuttle System.Boolean
+---`Getter Public Instance`
+---@field ExitPoints (System.Collections.Generic.IReadOnlyList*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImmuneToBallastFlora System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WreckAI Barotrauma.WreckAI
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TurretAI Barotrauma.SubmarineTurretAI
+---`Getter Public Instance`
+---@field FlippedX System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Unloading System.Boolean
+---`Getter Private Instance`
+---@field OutdoorNodes (System.Collections.Generic.List*1Barotrauma*PathNode)|(Barotrauma.PathNode[])
+_G['Submarine'] = {}
+
+---`Method Public Static`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param ignoredBodies? (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---@param collisionCategory? System.Nullable*1FarseerPhysics*Dynamics*Category
+---@param ignoreSensors? System.Boolean
+---@param customPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@param allowInsideFixture? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['Submarine'].PickBody = function(rayStart, rayEnd, ignoredBodies, collisionCategory, ignoreSensors, customPredicate, allowInsideFixture) end
+
+---`Method Public Static`
+---@param body FarseerPhysics.Dynamics.Body
+---@return System.Single
+_G['Submarine'].LastPickedBodyDist = function(body) end
+
+---`Method Public Static`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param ignoredBodies? (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---@param collisionCategory? System.Nullable*1FarseerPhysics*Dynamics*Category
+---@param ignoreSensors? System.Boolean
+---@param customPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@param allowInsideFixture? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+_G['Submarine'].PickBodies = function(rayStart, rayEnd, ignoredBodies, collisionCategory, ignoreSensors, customPredicate, allowInsideFixture) end
+
+---`Method Private Static`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@param ignoredBodies? (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---@param collisionCategory? System.Nullable*1FarseerPhysics*Dynamics*Category
+---@param ignoreSensors? System.Boolean
+---@param customPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@return System.Boolean
+_G['Submarine'].CheckFixtureCollision = function(fixture, ignoredBodies, collisionCategory, ignoreSensors, customPredicate) end
+
+---`Method Public Static`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param ignoreLevel? System.Boolean
+---@param ignoreSubs? System.Boolean
+---@param ignoreSensors? System.Boolean
+---@param ignoreDisabledWalls? System.Boolean
+---@param ignoreBranches? System.Boolean
+---@param blocksVisibilityPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@return FarseerPhysics.Dynamics.Body
+_G['Submarine'].CheckVisibility = function(rayStart, rayEnd, ignoreLevel, ignoreSubs, ignoreSensors, ignoreDisabledWalls, ignoreBranches, blocksVisibilityPredicate) end
+
+---`Method Public Instance`
+---@param parents? (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+_G['Submarine'].FlipX = function(parents) end
+
+---`Method Public Instance`
+---@param factionIdentifier Barotrauma.Identifier
+_G['Submarine'].EnableFactionSpecificEntities = function(factionIdentifier) end
+
+---`Method Public Static`
+---@param layer Barotrauma.Identifier
+---@return System.Boolean
+_G['Submarine'].LayerExistsInAnySub = function(layer) end
+
+---`Method Public Instance`
+---@param layer Barotrauma.Identifier
+---@return System.Boolean
+_G['Submarine'].LayerExists = function(layer) end
+
+---`Method Public Instance`
+---@param layer Barotrauma.Identifier
+---@param enabled System.Boolean
+---@param sendNetworkEvent? System.Boolean
+_G['Submarine'].SetLayerEnabled = function(layer, enabled, sendNetworkEvent) end
+
+---`Method Public Static`
+---@param layer Barotrauma.Identifier
+---@param enabled System.Boolean
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['Submarine'].SetLayerEnabled = function(layer, enabled, entities) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Submarine'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param force Microsoft.Xna.Framework.Vector2
+_G['Submarine'].ApplyForce = function(force) end
+
+---`Method Public Instance`
+_G['Submarine'].EnableMaintainPosition = function() end
+
+---`Method Public Instance`
+_G['Submarine'].NeutralizeBallast = function() end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+_G['Submarine'].SetPrevTransform = function(position) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param checkd? (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---@param forceUndockFromStaticSubmarines? System.Boolean
+_G['Submarine'].SetPosition = function(position, checkd, forceUndockFromStaticSubmarines) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@param dockedSub Barotrauma.Submarine
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Submarine'].CalculateDockOffset = function(sub, dockedSub) end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Submarine'].Translate = function(amount) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param ignoreOutposts? System.Boolean
+---@param ignoreOutsideLevel? System.Boolean
+---@param ignoreRespawnShuttle? System.Boolean
+---@param teamType? System.Nullable*1Barotrauma*CharacterTeamType
+---@return Barotrauma.Submarine
+_G['Submarine'].FindClosest = function(worldPosition, ignoreOutposts, ignoreOutsideLevel, ignoreRespawnShuttle, teamType) end
+
+---`Method Public Instance`
+---@param otherSub Barotrauma.Submarine
+---@return System.Boolean
+_G['Submarine'].IsConnectedTo = function(otherSub) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+_G['Submarine'].GetHulls = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Gap)|(Barotrauma.Gap[])
+_G['Submarine'].GetGaps = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Submarine'].GetItems = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['Submarine'].GetWaypoints = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Structure)|(Barotrauma.Structure[])
+_G['Submarine'].GetWalls = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@overload fun(includingConnectedSubs:System.Boolean, list:(System.Collections.Generic.List*1Barotrauma*Submarine*T)|(Barotrauma.Submarine.T[])):((System.Collections.Generic.List*1Barotrauma*Submarine*T)|(Barotrauma.Submarine.T[]))
+---@param includingConnectedSubs System.Boolean
+---@param list (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine*T)|(fun():(Barotrauma.Submarine.T))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine*T)|(fun():(Barotrauma.Submarine.T))
+_G['Submarine'].GetEntities = function(includingConnectedSubs, list) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*ItemContainer*2System*Int32)|(System.ValueTuple*1Barotrauma*Items*Components*ItemContainer*1System*Int32[])
+_G['Submarine'].GetCargoContainers = function() end
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+---@param includingConnectedSubs System.Boolean
+---@param allowDifferentTeam? System.Boolean
+---@param allowDifferentType? System.Boolean
+---@return System.Boolean
+_G['Submarine'].IsEntityFoundOnThisSub = function(entity, includingConnectedSubs, allowDifferentTeam, allowDifferentType) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param inflate? System.Single
+---@return Barotrauma.Submarine
+_G['Submarine'].FindContainingInLocalCoordinates = function(position, inflate) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param inflate? System.Single
+---@return Barotrauma.Submarine
+_G['Submarine'].FindContaining = function(worldPosition, inflate) end
+
+---`Method Public Static`
+---@param submarineElement System.Xml.Linq.XElement
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].GetBorders = function(submarineElement) end
+
+---`Method NonPublic Instance Virtual`
+---@param id System.UInt16
+---@param submarine Barotrauma.Submarine
+---@return System.UInt16
+_G['Submarine'].DetermineID = function(id, submarine) end
+
+---`Method Public Static`
+---@param info Barotrauma.SubmarineInfo
+---@param unloadPrevious System.Boolean
+---@param linkedRemap? Barotrauma.IdRemap
+---@return Barotrauma.Submarine
+_G['Submarine'].Load = function(info, unloadPrevious, linkedRemap) end
+
+---`Method Private Instance`
+_G['Submarine'].ResetCrushDepth = function() end
+
+---`Method Public Instance`
+---@param realWorldCrushDepth System.Single
+_G['Submarine'].SetCrushDepth = function(realWorldCrushDepth) end
+
+---`Method Public Static`
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['Submarine'].RepositionEntities = function(moveAmount, entities) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Submarine'].CheckFuel = function() end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Submarine'].SaveToXElement = function(element) end
+
+---`Method Public Instance`
+---@param filePath System.String
+---@param previewImage? System.IO.MemoryStream
+---@return System.Boolean
+_G['Submarine'].TrySaveAs = function(filePath, previewImage) end
+
+---`Method Public Static`
+_G['Submarine'].Unload = function() end
+
+---`Method Public Instance Virtual`
+_G['Submarine'].Remove = function() end
+
+---`Method Public Instance`
+_G['Submarine'].Dispose = function() end
+
+---`Method Private Instance`
+_G['Submarine'].GenerateOutdoorNodes = function() end
+
+---`Method Public Instance`
+---@overload fun()
+---@param otherSub Barotrauma.Submarine
+_G['Submarine'].DisableObstructedWayPoints = function(otherSub) end
+
+---`Method Public Instance`
+---@param otherSub Barotrauma.Submarine
+_G['Submarine'].EnableObstructedWaypoints = function(otherSub) end
+
+---`Method Public Instance`
+_G['Submarine'].RefreshOutdoorNodes = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param onlyPrimary System.Boolean
+---@param checkTransferConditions? System.Boolean
+---@param allowConnectedSubs? System.Boolean
+---@return Barotrauma.Item
+_G['Submarine'].FindContainerFor = function(item, onlyPrimary, checkTransferConditions, allowConnectedSubs) end
+
+---`Method Public Static`
+---@overload fun(from:Barotrauma.ISpatialEntity, to:Barotrauma.ISpatialEntity, targetWorldPos?:System.Nullable*1Microsoft*Xna*Framework*Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param fromSub Barotrauma.Submarine
+---@param toSub Barotrauma.Submarine
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].GetRelativeSimPosition = function(targetSimPos, fromSub, toSub) end
+
+---`Method Public Static`
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param fromSub Barotrauma.Submarine
+---@param toSub Barotrauma.Submarine
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].GetRelativeSimPositionFromWorldPosition = function(targetWorldPos, fromSub, toSub) end
+
+---`Method Public Static`
+---@param cam Barotrauma.Camera
+_G['Submarine'].CullEntities = function(cam) end
+
+---`Method Public Static`
+_G['Submarine'].ForceVisibilityRecheck = function() end
+
+---`Method Public Static`
+---@param entity Barotrauma.MapEntity
+_G['Submarine'].ForceRemoveFromVisibleEntities = function(entity) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+_G['Submarine'].Draw = function(spriteBatch, editing) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param predicate? (System.Predicate*1Barotrauma*MapEntity)|(fun(obj:Barotrauma.MapEntity):(System.Boolean))
+_G['Submarine'].DrawFront = function(spriteBatch, editing, predicate) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param damageEffect Microsoft.Xna.Framework.Graphics.Effect
+---@param editing? System.Boolean
+---@param predicate? (System.Predicate*1Barotrauma*MapEntity)|(fun(obj:Barotrauma.MapEntity):(System.Boolean))
+_G['Submarine'].DrawDamageable = function(spriteBatch, damageEffect, editing, predicate) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param predicate? (System.Predicate*1Barotrauma*MapEntity)|(fun(obj:Barotrauma.MapEntity):(System.Boolean))
+_G['Submarine'].DrawPaintedColors = function(spriteBatch, editing, predicate) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing? System.Boolean
+---@param predicate? (System.Predicate*1Barotrauma*MapEntity)|(fun(obj:Barotrauma.MapEntity):(System.Boolean))
+_G['Submarine'].DrawBack = function(spriteBatch, editing, predicate) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param gridCells System.Int32
+---@param gridCenter Microsoft.Xna.Framework.Vector2
+---@param roundedGridCenter Microsoft.Xna.Framework.Vector2
+---@param alpha? System.Single
+_G['Submarine'].DrawGrid = function(spriteBatch, gridCells, gridCenter, roundedGridCenter, alpha) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+---@param pointsOfInterest? (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+---@param ignoreOutpost? System.Boolean
+_G['Submarine'].CreateMiniMap = function(parent, pointsOfInterest, ignoreOutpost) end
+
+---`Method Public Static`
+---@param mainHull Barotrauma.Hull
+---@param linkedHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---@param parent Barotrauma.GUIComponent
+---@param worldBorders Microsoft.Xna.Framework.Rectangle
+---@return Barotrauma.Items.Components.MiniMapHullData
+_G['Submarine'].ConstructLinkedHulls = function(mainHull, linkedHulls, parent, worldBorders) end
+
+---`Method Public Instance`
+_G['Submarine'].CheckForErrors = function() end
+
+---`Method Public Static`
+---@return System.Int32
+_G['Submarine'].GetLightCount = function() end
+
+---`Method Public Static`
+---@return System.Int32
+_G['Submarine'].GetShadowCastingLightCount = function() end
+
+---`Method Public Static`
+---@param cam Barotrauma.Camera
+---@param sub Barotrauma.Submarine
+---@param mousePos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param round? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].MouseToWorldGrid = function(cam, sub, mousePos, round) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Submarine'].ClientReadPosition = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Submarine'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Static`
+---@param teamPerks (System.Collections.Immutable.ImmutableArray*1Barotrauma*DisembarkPerkPrefab)|(Barotrauma.DisembarkPerkPrefab[])
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*PerkBehaviors*SubItemSwapPerk)|(Barotrauma.PerkBehaviors.SubItemSwapPerk[])
+_G['Submarine'].GetSubItemSwapPerksFromTeamPerks = function(teamPerks) end
+
+---`Method Private Instance`
+---@param outpost Barotrauma.Submarine
+---@return System.Boolean
+_G['Submarine'].IsAtOutpostExit = function(outpost) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Submarine'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['Submarine'].CalculateBasePrice = function() end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param deltaTime System.Single
+---@param probability System.Single
+_G['Submarine'].AttemptBallastFloraInfection = function(identifier, deltaTime, probability) end
+
+---`Method Public Instance`
+_G['Submarine'].MakeWreck = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Submarine'].CreateWreckAI = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Submarine'].CreateTurretAI = function() end
+
+---`Method Public Instance`
+_G['Submarine'].DisableWreckAI = function() end
+
+---`Method Public Instance`
+---@param allowDifferentTeam? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].GetDockedBorders = function(allowDifferentTeam) end
+
+---`Method Private Instance`
+---@param allowDifferentTeam System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].GetDockedBordersRecursive = function(allowDifferentTeam) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+_G['Submarine'].GetConnectedSubs = function() end
+
+---`Method Public Instance`
+_G['Submarine'].RefreshConnectedSubs = function() end
+
+---`Method Private Instance`
+---@param subs (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+_G['Submarine'].GetConnectedSubsRecursive = function(subs) end
+
+---`Method Public Instance`
+---@param spawnPos Microsoft.Xna.Framework.Vector2
+---@param submarineSize? System.Nullable*1Microsoft*Xna*Framework*Point
+---@param subDockingPortOffset? System.Single
+---@param verticalMoveDir? System.Int32
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].FindSpawnPos = function(spawnPos, submarineSize, subDockingPortOffset, verticalMoveDir) end
+
+---`Method Public Instance`
+---@param interpolate? System.Boolean
+_G['Submarine'].UpdateTransform = function(interpolate) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param sub? Barotrauma.Submarine
+---@param round? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].VectorToWorldGrid = function(position, sub, round) end
+
+---`Method Public Instance`
+---@param onlyHulls? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].CalculateDimensions = function(onlyHulls) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].AbsRect = function(pos, size) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.RectangleF
+_G['Submarine'].AbsRectF = function(pos, size) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param inclusive? System.Boolean
+---@return System.Boolean
+_G['Submarine'].RectContains = function(rect, pos, inclusive) end
+
+---`Method Public Static`
+---@overload fun(rect1:Microsoft.Xna.Framework.Rectangle, rect2:Microsoft.Xna.Framework.Rectangle, inclusive?:System.Boolean):(System.Boolean)
+---@param rect1 Microsoft.Xna.Framework.RectangleF
+---@param rect2 Microsoft.Xna.Framework.RectangleF
+---@param inclusive? System.Boolean
+---@return System.Boolean
+_G['Submarine'].RectsOverlap = function(rect1, rect2, inclusive) end
+
+---`Constructor Public Instance`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E9AA78.lua b/Meta/Types/client/_00007FFD97E9AA78.lua
new file mode 100644
index 0000000..2e73fde
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9AA78.lua
@@ -0,0 +1,170 @@
+---@meta
+---@class Barotrauma.SubmarineBody : System.Object
+---`Field Private Instance`
+---@field levelContacts (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Contacts*Contact)|(FarseerPhysics.Dynamics.Contacts.Contact[])
+---`Field Private Instance`
+---@field depthDamageTimer System.Single
+---`Field Private Instance`
+---@field damageSoundTimer System.Single
+---`Field Private Instance`
+---@field submarine Barotrauma.Submarine
+---`Field Public Instance`
+---@field Body Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field positionBuffer (System.Collections.Generic.List*1Barotrauma*PosInfo)|(Barotrauma.PosInfo[])
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1Barotrauma*SubmarineBody*Impact)|(fun():(Barotrauma.SubmarineBody.Impact))
+---`Field Private Instance`
+---@field forceUpwardsTimer System.Single
+---`Field Public Static`
+---@field NeutralBallastPercentage System.Single
+---`Field Public Static`
+---@field CollidesWith FarseerPhysics.Dynamics.Category
+---`Field Private Static`
+---@field HorizontalDrag System.Single
+---`Field Private Static`
+---@field VerticalDrag System.Single
+---`Field Private Static`
+---@field MaxDrag System.Single
+---`Field Private Static`
+---@field ImpactDamageMultiplier System.Single
+---`Field Private Static`
+---@field MinImpactLimbMass System.Single
+---`Field Private Static`
+---@field MinCollisionImpact System.Single
+---`Field Private Static`
+---@field MaxCollisionImpact System.Single
+---`Field Private Static`
+---@field Friction System.Single
+---`Field Private Static`
+---@field Restitution System.Single
+---`Field Private Static`
+---@field ForceUpwardsDelay System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HullVertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Borders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VisibleBorders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Velocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field PositionBuffer (System.Collections.Generic.List*1Barotrauma*PosInfo)|(Barotrauma.PosInfo[])
+---`Getter Public Instance`
+---@field Submarine Barotrauma.Submarine
+_G['SubmarineBody'] = {}
+
+---`Method Private Instance`
+---@param damagedStructures (System.Collections.Generic.Dictionary*1Barotrauma*Structure*1System*Single)|({[Barotrauma.Structure]:(System.Single)})
+---@param impactSimPos Microsoft.Xna.Framework.Vector2
+---@param impact System.Single
+---@param soundTag System.String
+_G['SubmarineBody'].PlayDamageSounds = function(damagedStructures, impactSimPos, impact, soundTag) end
+
+---`Method Private Instance`
+---@param impactSimPos Microsoft.Xna.Framework.Vector2
+---@param impact System.Single
+---@param soundTag System.String
+---@param hitStructure? Barotrauma.Structure
+_G['SubmarineBody'].PlayDamageSound = function(impactSimPos, impact, soundTag, hitStructure) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['SubmarineBody'].GenerateConvexHull = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['SubmarineBody'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['SubmarineBody'].ClientUpdatePosition = function(deltaTime) end
+
+---`Method Private Instance`
+---@param subTranslation Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].DisplaceCharacters = function(subTranslation) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].CalculateBuoyancy = function() end
+
+---`Method Public Instance`
+---@param force Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].ApplyForce = function(force) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].SetPosition = function(position) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['SubmarineBody'].UpdateDepthDamage = function(deltaTime) end
+
+---`Method Public Instance`
+_G['SubmarineBody'].FlipX = function() end
+
+---`Method Public Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['SubmarineBody'].OnCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['SubmarineBody'].CheckCharacterCollision = function(contact, character) end
+
+---`Method Private Instance`
+---@param collision Barotrauma.SubmarineBody.Impact
+---@param limb Barotrauma.Limb
+_G['SubmarineBody'].HandleLimbCollision = function(collision, limb) end
+
+---`Method Private Static`
+---@param body Barotrauma.PhysicsBody
+---@return (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Contacts*Contact)|(fun():(FarseerPhysics.Dynamics.Contacts.Contact))
+_G['SubmarineBody'].GetLevelContacts = function(body) end
+
+---`Method Private Instance`
+---@param impact Barotrauma.SubmarineBody.Impact
+---@param cell? Voronoi2.VoronoiCell
+_G['SubmarineBody'].HandleLevelCollision = function(impact, cell) end
+
+---`Method Private Instance`
+---@param impact Barotrauma.SubmarineBody.Impact
+_G['SubmarineBody'].HandleLevelCollisionProjSpecific = function(impact) end
+
+---`Method Private Instance`
+---@param impact Barotrauma.SubmarineBody.Impact
+---@param otherSub Barotrauma.Submarine
+_G['SubmarineBody'].HandleSubCollision = function(impact, otherSub) end
+
+---`Method Private Instance`
+---@param impact System.Single
+---@param direction Microsoft.Xna.Framework.Vector2
+---@param impactPos Microsoft.Xna.Framework.Vector2
+---@param applyDamage? System.Boolean
+_G['SubmarineBody'].ApplyImpact = function(impact, direction, impactPos, applyDamage) end
+
+---`Method Public Instance`
+_G['SubmarineBody'].Remove = function() end
+
+---`Constructor Public Instance`
+---@param sub Barotrauma.Submarine
+---@param showErrorMessages? System.Boolean
+---@return Barotrauma.SubmarineBody
+_G['SubmarineBody'] = function(sub, showErrorMessages) end
+
+---`Constructor Public Instance`
+---@param sub Barotrauma.Submarine
+---@param showErrorMessages? System.Boolean
+---@return Barotrauma.SubmarineBody
+_G['SubmarineBody'].__new = function(sub, showErrorMessages) end
+
diff --git a/Meta/Types/client/_00007FFD97E9ACB8.lua b/Meta/Types/client/_00007FFD97E9ACB8.lua
new file mode 100644
index 0000000..10833bc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9ACB8.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.WallSection : System.Object
+---`Field Public Instance`
+---@field rect Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field damage System.Single
+---`Field Public Instance`
+---@field gap Barotrauma.Gap
+---`Field Public Instance`
+---@field NoPhysicsBody System.Boolean
+---`Getter Public Instance`
+---@field Wall Barotrauma.Structure
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---@field WorldRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field OrderedToBeIgnored System.Boolean
+_G['WallSection'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['WallSection'].IgnoreByAI = function(character) end
+
+---`Constructor Public Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param wall Barotrauma.Structure
+---@param damage? System.Single
+---@return Barotrauma.WallSection
+_G['WallSection'] = function(rect, wall, damage) end
+
+---`Constructor Public Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param wall Barotrauma.Structure
+---@param damage? System.Single
+---@return Barotrauma.WallSection
+_G['WallSection'].__new = function(rect, wall, damage) end
+
diff --git a/Meta/Types/client/_00007FFD97E9BAC8.lua b/Meta/Types/client/_00007FFD97E9BAC8.lua
new file mode 100644
index 0000000..302ffbf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9BAC8.lua
@@ -0,0 +1,456 @@
+---@meta
+---@class Barotrauma.Structure : Barotrauma.MapEntity
+---`Field Private Instance`
+---@field convexHulls (System.Collections.Generic.List*1Barotrauma*Lights*ConvexHull)|(Barotrauma.Lights.ConvexHull[])
+---`Field Private Instance`
+---@field spriteAnimState (System.Collections.Generic.Dictionary*1Barotrauma*DecorativeSprite*1Barotrauma*DecorativeSprite*State)|({[Barotrauma.DecorativeSprite]:(Barotrauma.DecorativeSprite.State)})
+---`Field Public Instance`
+---@field Lights (System.Collections.Generic.List*1Barotrauma*Lights*LightSource)|(Barotrauma.Lights.LightSource[])
+---`Field Public Instance`
+---@field SpriteEffects Microsoft.Xna.Framework.Graphics.SpriteEffects
+---`Field Private Instance`
+---@field bodyDimensions (System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1Microsoft*Xna*Framework*Vector2)|({[FarseerPhysics.Dynamics.Body]:(Microsoft.Xna.Framework.Vector2)})
+---`Field Private Instance`
+---@field maxHealth System.Nullable*1System*Single
+---`Field Private Instance`
+---@field crushDepth System.Single
+---`Field NonPublic Instance`
+---@field spriteColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field scale System.Single
+---`Field NonPublic Instance`
+---@field rotationRad System.Single
+---`Field NonPublic Instance`
+---@field textureScale Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field textureOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field defaultRect Microsoft.Xna.Framework.Rectangle
+---`Field Public Static`
+---@field ShowWalls System.Boolean
+---`Field Public Static`
+---@field ShowStructures System.Boolean
+---`Field Public Static`
+---@field WallList (System.Collections.Generic.List*1Barotrauma*Structure)|(Barotrauma.Structure[])
+---`Field Private Static`
+---@field explosionOnBroken Barotrauma.Explosion
+---`Field Public Static`
+---@field WallSectionSize System.Int32
+---`Field Private Static`
+---@field LeakThreshold System.Single
+---`Field Private Static`
+---@field BigGapThreshold System.Single
+---`Getter Public Instance Virtual`
+---@field SelectableInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Indestructible System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sections (Barotrauma.WallSection-arr)|(Barotrauma.WallSection[])
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field IsPlatform System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StairDirection Barotrauma.Direction
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field HasBody System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CastShadow System.Boolean
+---`Getter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---@field SectionCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+---`Getter Public Instance Virtual`
+---@field DrawBelowWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawOverWater System.Boolean
+---`Getter Public Instance`
+---@field DrawDamageEffect System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasDamage System.Boolean
+---`Getter Public Instance`
+---@field Prefab Barotrauma.StructurePrefab
+---`Getter Public Instance`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpecialTag System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseDropShadow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DropShadowOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextureScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleWhenTextureOffsetSet System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextureOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DefaultRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field BodyWidth System.Single
+---`Getter Public Instance`
+---@field BodyHeight System.Single
+---`Getter Public Instance`
+---@field BodyRotation System.Single
+---`Getter Public Instance`
+---@field BodyOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NoAITarget System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter NonPublic Instance`
+---@field DirectionUnit Microsoft.Xna.Framework.Vector2
+_G['Structure'] = {}
+
+---`Method Public Instance Virtual`
+---@param upgrade Barotrauma.Upgrade
+---@param createNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['Structure'].AddUpgrade = function(upgrade, createNetworkEvent) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@param damage System.Single
+---@param attacker? Barotrauma.Character
+---@param emitParticles? System.Boolean
+---@param createWallDamageProjectiles? System.Boolean
+_G['Structure'].AddDamage = function(sectionIndex, damage, attacker, emitParticles, createWallDamageProjectiles) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Structure'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Public Instance`
+---@param displayPos Microsoft.Xna.Framework.Vector2
+---@param world? System.Boolean
+---@param clamp? System.Boolean
+---@return System.Int32
+_G['Structure'].FindSectionIndex = function(displayPos, world, clamp) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Single
+_G['Structure'].SectionDamage = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@param world? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Structure'].SectionPosition = function(sectionIndex, world) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@param damage System.Single
+---@param attacker? Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param isNetworkEvent? System.Boolean
+---@param createExplosionEffect? System.Boolean
+---@param createWallDamageProjectiles? System.Boolean
+_G['Structure'].SetDamage = function(sectionIndex, damage, attacker, createNetworkEvent, isNetworkEvent, createExplosionEffect, createWallDamageProjectiles) end
+
+---`Method Private Static`
+---@param gap Barotrauma.Gap
+---@param attacker Barotrauma.Character
+---@param createProjectiles System.Boolean
+_G['Structure'].CreateWallDamageExplosion = function(gap, attacker, createProjectiles) end
+
+---`Method Public Instance`
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+_G['Structure'].SetCollisionCategory = function(collisionCategory) end
+
+---`Method Private Instance`
+_G['Structure'].UpdateSections = function() end
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param createConvexHull System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['Structure'].CreateRectBody = function(rect, createConvexHull) end
+
+---`Method Private Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+_G['Structure'].CreateConvexHull = function(position, size, rotation) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Structure'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Structure'].FlipY = function(relativeToSub) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Structure
+_G['Structure'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Static`
+---@param name System.String
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.StructurePrefab
+_G['Structure'].FindPrefab = function(name, identifier) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Structure'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['Structure'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Structure'].Reset = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Structure'].Update = function(deltaTime, cam) end
+
+---`Method Public Static`
+---@param targetSize Microsoft.Xna.Framework.Vector2
+---@param originalTextureOffset Microsoft.Xna.Framework.Vector2
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param sourceRect Microsoft.Xna.Framework.Rectangle
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param flippedX System.Boolean
+---@param flippedY System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Structure'].UpgradeTextureOffset = function(targetSize, originalTextureOffset, submarineInfo, sourceRect, scale, flippedX, flippedY) end
+
+---`Method Public Instance Virtual`
+---@param cam Barotrauma.Camera
+---@param deltaTime System.Single
+_G['Structure'].UpdateEditing = function(cam, deltaTime) end
+
+---`Method Private Instance`
+_G['Structure'].SetLightTextureOffset = function() end
+
+---`Method Public Instance`
+---@param inGame? System.Boolean
+---@return Barotrauma.GUIComponent
+_G['Structure'].CreateEditingHUD = function(inGame) end
+
+---`Method Public Instance Virtual`
+---@param worldView Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['Structure'].IsVisible = function(worldView) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+_G['Structure'].Draw = function(spriteBatch, editing, back) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param editing System.Boolean
+---@param back? System.Boolean
+---@param damageEffect? Microsoft.Xna.Framework.Graphics.Effect
+_G['Structure'].Draw = function(spriteBatch, editing, back, damageEffect) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param damageEffect Microsoft.Xna.Framework.Graphics.Effect
+---@param editing System.Boolean
+_G['Structure'].DrawDamage = function(spriteBatch, damageEffect, editing) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Structure'].GetRealDepth = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Structure'].GetDrawDepth = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Structure'].UpdateSpriteStates = function(deltaTime) end
+
+---`Method Private Instance`
+---@param conditional Barotrauma.PropertyConditional
+---@return System.Boolean
+_G['Structure'].ConditionalMatches = function(conditional) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Structure'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Structure'].Move = function(amount, ignoreContacts) end
+
+---`Method Private Instance`
+_G['Structure'].InitProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Structure'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Structure'].Clone = function() end
+
+---`Method Private Instance`
+_G['Structure'].CreateStairBodies = function() end
+
+---`Method Private Instance`
+_G['Structure'].CreateSections = function() end
+
+---`Method Private Instance`
+---@param mergedSections (System.Collections.Generic.List*1Barotrauma*WallSection)|(Barotrauma.WallSection[])
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Structure'].GenerateMergedRect = function(mergedSections) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Quad2D
+_G['Structure'].GetTransformedQuad = function() end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Structure
+_G['Structure'].GetAttachTarget = function(worldPosition) end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Structure'].IsMouseOn = function(position) end
+
+---`Method Public Instance Virtual`
+_G['Structure'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Structure'].Remove = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Structure'].OnWallCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+_G['Structure'].OnImpactProjSpecific = function(f1, f2, contact) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return Barotrauma.WallSection
+_G['Structure'].GetSection = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['Structure'].SectionBodyDisabled = function(sectionIndex) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Structure'].AllSectionBodiesDisabled = function() end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['Structure'].SectionIsLeaking = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['Structure'].SectionIsLeakingFromOutside = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Int32
+_G['Structure'].SectionLength = function(sectionIndex) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'] = function(rectangle, sp, submarine, id, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'].__new = function(rectangle, sp, submarine, id, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'] = function(rectangle, sp, submarine, id, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'].__new = function(rectangle, sp, submarine, id, element) end
+
diff --git a/Meta/Types/client/_00007FFD97E9C060.lua b/Meta/Types/client/_00007FFD97E9C060.lua
new file mode 100644
index 0000000..67b872f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9C060.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.AfflictionPrefabHusk : Barotrauma.AfflictionPrefab
+---`Field Public Instance`
+---@field AttachLimbId System.Int32
+---`Field Public Instance`
+---@field AttachLimbName System.String
+---`Field Public Instance`
+---@field AttachLimbType Barotrauma.LimbType
+---`Field Public Instance`
+---@field DormantThreshold System.Single
+---`Field Public Instance`
+---@field ActiveThreshold System.Single
+---`Field Public Instance`
+---@field TransitionThreshold System.Single
+---`Field Public Instance`
+---@field TransformThresholdOnDeath System.Single
+---`Field Public Instance`
+---@field HuskedSpeciesName Barotrauma.Identifier
+---`Field Public Instance`
+---@field TransferBuffs System.Boolean
+---`Field Public Instance`
+---@field SendMessages System.Boolean
+---`Field Public Instance`
+---@field CauseSpeechImpediment System.Boolean
+---`Field Public Instance`
+---@field NeedsAir System.Boolean
+---`Field Public Instance`
+---@field ControlHusk System.Boolean
+_G['AfflictionPrefabHusk'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.AfflictionsFile
+---@param type? System.Type
+---@return Barotrauma.AfflictionPrefabHusk
+_G['AfflictionPrefabHusk'] = function(element, file, type) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.AfflictionsFile
+---@param type? System.Type
+---@return Barotrauma.AfflictionPrefabHusk
+_G['AfflictionPrefabHusk'].__new = function(element, file, type) end
+
diff --git a/Meta/Types/client/_00007FFD97E9C790.lua b/Meta/Types/client/_00007FFD97E9C790.lua
new file mode 100644
index 0000000..c6dee7b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9C790.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.AfflictionHusk : Barotrauma.Affliction
+---`Field Private Instance`
+---@field subscribedToDeathEvent System.Boolean
+---`Field Private Instance`
+---@field state Barotrauma.AfflictionHusk.InfectionState
+---`Field Private Instance`
+---@field huskAppendage (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field stun System.Boolean
+---`Field Private Instance`
+---@field highestStrength System.Single
+---`Field Public Instance`
+---@field HuskPrefab Barotrauma.AfflictionPrefabHusk
+---`Field Private Instance`
+---@field prevDisplayedMessage System.Nullable*1Barotrauma*AfflictionHusk*InfectionState
+---`Field Private Instance`
+---@field damageCooldownTimer System.Single
+---`Field Private Static`
+---@field DamageCooldown System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Strength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field State Barotrauma.AfflictionHusk.InfectionState
+---`Getter Private Instance`
+---@field DormantThreshold System.Single
+---`Getter Private Instance`
+---@field ActiveThreshold System.Single
+---`Getter Private Instance`
+---@field TransitionThreshold System.Single
+---`Getter Private Instance`
+---@field TransformThresholdOnDeath System.Single
+_G['AfflictionHusk'] = {}
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionHusk'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Method Private Instance`
+_G['AfflictionHusk'].UpdateMessages = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AfflictionHusk'].ApplyDamage = function(deltaTime) end
+
+---`Method Public Instance`
+_G['AfflictionHusk'].ActivateHusk = function() end
+
+---`Method Private Instance`
+_G['AfflictionHusk'].DeactivateHusk = function() end
+
+---`Method Public Instance`
+_G['AfflictionHusk'].UnsubscribeFromDeathEvent = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param causeOfDeath Barotrauma.CauseOfDeath
+_G['AfflictionHusk'].CharacterDead = function(character, causeOfDeath) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['AfflictionHusk'].CreateAIHusk = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param matchingAffliction Barotrauma.AfflictionPrefabHusk
+---@param huskedSpeciesName Barotrauma.Identifier
+---@param appendageDefinition? Barotrauma.ContentXElement
+---@param ragdoll? Barotrauma.Ragdoll
+---@return (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+_G['AfflictionHusk'].AttachHuskAppendage = function(character, matchingAffliction, huskedSpeciesName, appendageDefinition, ragdoll) end
+
+---`Method Public Static`
+---@param character Barotrauma.CharacterParams
+---@param prefab Barotrauma.AfflictionPrefabHusk
+---@return Barotrauma.Identifier
+_G['AfflictionHusk'].GetHuskedSpeciesName = function(character, prefab) end
+
+---`Method Public Static`
+---@param character Barotrauma.CharacterParams
+---@param prefab Barotrauma.AfflictionPrefabHusk
+---@return Barotrauma.Identifier
+_G['AfflictionHusk'].GetNonHuskedSpeciesName = function(character, prefab) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionHusk
+_G['AfflictionHusk'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionHusk
+_G['AfflictionHusk'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/client/_00007FFD97E9C940.lua b/Meta/Types/client/_00007FFD97E9C940.lua
new file mode 100644
index 0000000..495a5e1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9C940.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.AfflictionBleeding : Barotrauma.Affliction
+_G['AfflictionBleeding'] = {}
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionBleeding'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionBleeding
+_G['AfflictionBleeding'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionBleeding
+_G['AfflictionBleeding'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/client/_00007FFD97E9CD80.lua b/Meta/Types/client/_00007FFD97E9CD80.lua
new file mode 100644
index 0000000..2e4e28e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9CD80.lua
@@ -0,0 +1,93 @@
+---@meta
+---@class Barotrauma.AfflictionPsychosis : Barotrauma.Affliction
+---`Field Private Instance`
+---@field createFireSourceTimer System.Single
+---`Field Private Instance`
+---@field fakeFireSources (System.Collections.Generic.List*1Barotrauma*DummyFireSource)|(Barotrauma.DummyFireSource[])
+---`Field Private Instance`
+---@field currentFloodType Barotrauma.AfflictionPsychosis.FloodType
+---`Field Private Instance`
+---@field soundTimer System.Single
+---`Field Private Instance`
+---@field createFloodTimer System.Single
+---`Field Private Instance`
+---@field currentFloodState System.Single
+---`Field Private Instance`
+---@field currentFloodDuration System.Single
+---`Field Private Instance`
+---@field fakeBrokenInterval System.Single
+---`Field Private Instance`
+---@field fakeBrokenTimer System.Single
+---`Field Private Instance`
+---@field invisibleCharacterInterval System.Single
+---`Field Private Instance`
+---@field invisibleCharacterTimer System.Single
+---`Field Private Static`
+---@field MaxFakeFireSources System.Int32
+---`Field Private Static`
+---@field MinFakeFireSourceInterval System.Single
+---`Field Private Static`
+---@field MaxFakeFireSourceInterval System.Single
+---`Field Private Static`
+---@field MinSoundInterval System.Single
+---`Field Private Static`
+---@field MaxSoundInterval System.Single
+---`Field Private Static`
+---@field MinFloodInterval System.Single
+---`Field Private Static`
+---@field MaxFloodInterval System.Single
+---`Getter Public Instance`
+---@field CurrentFloodType Barotrauma.AfflictionPsychosis.FloodType
+_G['AfflictionPsychosis'] = {}
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].UpdateSounds = function(character, deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].UpdateFloods = function(deltaTime) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].UpdateFires = function(character, deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].UpdateInvisibleCharacters = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].UpdateFakeBroken = function(deltaTime) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AfflictionPsychosis'].ShouldFakeBrokenItem = function(item) end
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Method Private Instance`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].UpdateProjSpecific = function(characterHealth, targetLimb, deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionPsychosis
+_G['AfflictionPsychosis'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionPsychosis
+_G['AfflictionPsychosis'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/client/_00007FFD97E9CF30.lua b/Meta/Types/client/_00007FFD97E9CF30.lua
new file mode 100644
index 0000000..8ee6485
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9CF30.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.AfflictionSpaceHerpes : Barotrauma.Affliction
+---`Field Private Instance`
+---@field invertControlsCooldown System.Single
+---`Field Private Instance`
+---@field stunCoolDown System.Single
+---`Field Private Instance`
+---@field invertControlsTimer System.Single
+---`Field Private Instance`
+---@field invertControlsToggleTimer System.Single
+_G['AfflictionSpaceHerpes'] = {}
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionSpaceHerpes'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionSpaceHerpes
+_G['AfflictionSpaceHerpes'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionSpaceHerpes
+_G['AfflictionSpaceHerpes'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/client/_00007FFD97E9D030.lua b/Meta/Types/client/_00007FFD97E9D030.lua
new file mode 100644
index 0000000..59fa927
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9D030.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.AttackContext : System.Enum
+---`Field Public Static`
+---@field Any Barotrauma.AttackContext
+---`Field Public Static`
+---@field Water Barotrauma.AttackContext
+---`Field Public Static`
+---@field Ground Barotrauma.AttackContext
+---`Field Public Static`
+---@field Inside Barotrauma.AttackContext
+---`Field Public Static`
+---@field Outside Barotrauma.AttackContext
+---`Field Public Static`
+---@field NotDefined Barotrauma.AttackContext
+_G['AttackContext'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97E9D230.lua b/Meta/Types/client/_00007FFD97E9D230.lua
new file mode 100644
index 0000000..23203c3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9D230.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class Barotrauma.AttackTarget : System.Enum
+---`Field Public Static`
+---@field Any Barotrauma.AttackTarget
+---`Field Public Static`
+---@field Character Barotrauma.AttackTarget
+---`Field Public Static`
+---@field Structure Barotrauma.AttackTarget
+---`Field Public Static`
+---@field Item Barotrauma.AttackTarget
+_G['AttackTarget'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97E9E9E8.lua b/Meta/Types/client/_00007FFD97E9E9E8.lua
new file mode 100644
index 0000000..bebf5c0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9E9E8.lua
@@ -0,0 +1,361 @@
+---@meta
+---@class Barotrauma.Attack : System.Object
+---`Field Private Instance`
+---@field sound Barotrauma.RoundSound
+---`Field Private Instance`
+---@field particleEmitter Barotrauma.Particles.ParticleEmitter
+---`Field Private Instance`
+---@field _range System.Single
+---`Field Private Instance`
+---@field _damageRange System.Single
+---`Field Private Instance`
+---@field _structureDamage System.Single
+---`Field Private Instance`
+---@field _itemDamage System.Single
+---`Field Public Instance`
+---@field ForceOnLimbIndices (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Field Public Instance`
+---@field Afflictions (System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1System*Xml*Linq*XElement)|({[Barotrauma.Affliction]:(System.Xml.Linq.XElement)})
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StructureSoundType System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Context Barotrauma.AttackContext
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetType Barotrauma.AttackTarget
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetLimbType Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HitDetectionType Barotrauma.HitDetection
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttack Barotrauma.AIBehaviorAfterAttack
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackSecondary Barotrauma.AIBehaviorAfterAttack
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackSecondaryDelay System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Reverse System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SnapRopeOnNewAttack System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Retreat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Duration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SecondaryCoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CoolDownRandomFactor System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FullSpeedAfterAttack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureDamage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CreateWallDamageProjectiles System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EmitStructureDamageParticles System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemDamage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Penetration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpactMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelWallDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Ranged System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvoidFriendlyFire System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequiredAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequiredAngleToShoot System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimRotationTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RotationLimbIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwayAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwayFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stun System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnlyHumans System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyForceOnLimbs System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootForceWorldStart Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootForceWorldMiddle Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootForceWorldEnd Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootTransitionEasing Barotrauma.TransitionMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Torque System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ApplyForcesOnlyOnce System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetImpulseWorld Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetForce System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetForceWorld Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SubmarineImpactMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeverLimbsProbability System.Single
+---`Getter Public Instance`
+---@field StickChance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Priority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Blink System.Boolean
+---`Getter Public Instance`
+---@field StatusEffects (System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect)|(fun():(Barotrauma.StatusEffect))
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Conditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourceItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttackTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CoolDownTimer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentRandomCoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SecondaryCoolDownTimer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsRunning System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackTimer System.Single
+_G['Attack'] = {}
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+_G['Attack'].SetUser = function(user) end
+
+---`Method Public Instance`
+---@param multiplier System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+_G['Attack'].GetMultipliedAfflictions = function(multiplier) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@return System.Single
+_G['Attack'].GetStructureDamage = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@return System.Single
+_G['Attack'].GetLevelWallDamage = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param multiplier? System.Single
+---@return System.Single
+_G['Attack'].GetItemDamage = function(deltaTime, multiplier) end
+
+---`Method Public Instance`
+---@param includeStructureDamage? System.Boolean
+---@return System.Single
+_G['Attack'].GetTotalDamage = function(includeStructureDamage) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Attack'].InitProjSpecific = function(element) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+_G['Attack'].ReloadAfflictions = function(element, parentDebugName) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['Attack'].Serialize = function(element) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+_G['Attack'].Deserialize = function(element, parentDebugName) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param target Barotrauma.IDamageable
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@param sourceBody? Barotrauma.PhysicsBody
+---@param sourceLimb? Barotrauma.Limb
+---@return Barotrauma.AttackResult
+_G['Attack'].DoDamage = function(attacker, target, worldPosition, deltaTime, playSound, sourceBody, sourceLimb) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param targetLimb Barotrauma.Limb
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@param sourceBody? Barotrauma.PhysicsBody
+---@param sourceLimb? Barotrauma.Limb
+---@return Barotrauma.AttackResult
+_G['Attack'].DoDamageToLimb = function(attacker, targetLimb, worldPosition, deltaTime, playSound, sourceBody, sourceLimb) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param sourceWorldPosition Microsoft.Xna.Framework.Vector2
+---@param sourceItem Barotrauma.Item
+---@return Microsoft.Xna.Framework.Vector2
+_G['Attack'].GetImpulseDirection = function(target, sourceWorldPosition, sourceItem) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Attack'].UpdateCoolDown = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+_G['Attack'].UpdateAttackTimer = function(deltaTime, character) end
+
+---`Method Public Instance`
+_G['Attack'].ResetAttackTimer = function() end
+
+---`Method Public Instance`
+---@param applyRandom System.Boolean
+_G['Attack'].SetCoolDown = function(applyRandom) end
+
+---`Method Public Instance`
+_G['Attack'].ResetCoolDown = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['Attack'].DamageParticles = function(deltaTime, worldPosition) end
+
+---`Method Public Instance`
+---@overload fun(context:Barotrauma.AttackContext):(System.Boolean)
+---@param contexts (System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext)|(fun():(Barotrauma.AttackContext))
+---@return System.Boolean
+_G['Attack'].IsValidContext = function(contexts) end
+
+---`Method Public Instance`
+---@overload fun(targetType:Barotrauma.AttackTarget):(System.Boolean)
+---@param target Barotrauma.Entity
+---@return System.Boolean
+_G['Attack'].IsValidTarget = function(target) end
+
+---`Method Private Static`
+---@param entity Barotrauma.Entity
+---@return Barotrauma.AttackTarget
+_G['Attack'].GetAttackTargetTypeFromEntity = function(entity) end
+
+---`Method Public Instance`
+---@param easing? Barotrauma.TransitionMode
+---@return Microsoft.Xna.Framework.Vector2
+_G['Attack'].CalculateAttackPhase = function(easing) end
+
+---`Constructor Public Instance`
+---@overload fun(damage:System.Single, bleedingDamage:System.Single, burnDamage:System.Single, structureDamage:System.Single, itemDamage:System.Single, range?:System.Single):Barotrauma.Attack
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String, sourceItem:Barotrauma.Item):Barotrauma.Attack
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.Attack
+_G['Attack'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@overload fun(damage:System.Single, bleedingDamage:System.Single, burnDamage:System.Single, structureDamage:System.Single, itemDamage:System.Single, range?:System.Single):Barotrauma.Attack
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String, sourceItem:Barotrauma.Item):Barotrauma.Attack
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.Attack
+_G['Attack'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/client/_00007FFD97E9EF60.lua b/Meta/Types/client/_00007FFD97E9EF60.lua
new file mode 100644
index 0000000..5510f6f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9EF60.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class Barotrauma.DamageModifier : System.Object
+---`Field Private Instance`
+---@field rawAfflictionIdentifierString System.String
+---`Field Private Instance`
+---@field rawAfflictionTypeString System.String
+---`Field Private Instance`
+---@field parsedAfflictionIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field parsedAfflictionTypes (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageSound System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageParticle System.String
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ProbabilityMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ArmorSector Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field ArmorSectorInRadians Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeflectProjectiles System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionIdentifiers System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionTypes System.String
+---`Getter Public Instance`
+---@field ParsedAfflictionIdentifiers System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field ParsedAfflictionTypes System.Collections.Immutable.ImmutableArray
+_G['DamageModifier'] = {}
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String):(System.Boolean)
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['DamageModifier'].MatchesAfflictionIdentifier = function(identifier) end
+
+---`Method Public Instance`
+---@overload fun(type:System.String):(System.Boolean)
+---@param type Barotrauma.Identifier
+---@return System.Boolean
+_G['DamageModifier'].MatchesAfflictionType = function(type) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, type:System.String):(System.Boolean)
+---@overload fun(identifier:Barotrauma.Identifier, type:Barotrauma.Identifier):(System.Boolean)
+---@param affliction Barotrauma.Affliction
+---@return System.Boolean
+_G['DamageModifier'].MatchesAffliction = function(affliction) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['DamageModifier'].Serialize = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['DamageModifier'].Deserialize = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@param checkErrors? System.Boolean
+---@return Barotrauma.DamageModifier
+_G['DamageModifier'] = function(element, parentDebugName, checkErrors) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@param checkErrors? System.Boolean
+---@return Barotrauma.DamageModifier
+_G['DamageModifier'].__new = function(element, parentDebugName, checkErrors) end
+
diff --git a/Meta/Types/client/_00007FFD97E9F150.lua b/Meta/Types/client/_00007FFD97E9F150.lua
new file mode 100644
index 0000000..fbdeb56
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9F150.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.InventorySlotItem : System.ValueType
+---`Field Public Instance`
+---@field Slot System.Int32
+---`Field Public Instance`
+---@field Item Barotrauma.Item
+_G['InventorySlotItem'] = {}
+
+---`Method Public Instance`
+---@param slot System.Int32-ref
+---@param item Barotrauma.Item-ref
+_G['InventorySlotItem'].Deconstruct = function(slot, item) end
+
+---`Constructor Public Instance`
+---@param slot System.Int32
+---@param item Barotrauma.Item
+---@return Barotrauma.InventorySlotItem
+_G['InventorySlotItem'] = function(slot, item) end
+
+---`Constructor Public Instance`
+---@param slot System.Int32
+---@param item Barotrauma.Item
+---@return Barotrauma.InventorySlotItem
+_G['InventorySlotItem'].__new = function(slot, item) end
+
diff --git a/Meta/Types/client/_00007FFD97E9F470.lua b/Meta/Types/client/_00007FFD97E9F470.lua
new file mode 100644
index 0000000..c0c5a11
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9F470.lua
@@ -0,0 +1,91 @@
+---@meta
+---@class Barotrauma.VisualSlot : System.Object
+---`Field Public Instance`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field InteractRect Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field Disabled System.Boolean
+---`Field Public Instance`
+---@field State Barotrauma.GUIComponent.ComponentState
+---`Field Public Instance`
+---@field DrawOffset Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field HighlightColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field HighlightScaleUpAmount System.Single
+---`Field Private Instance`
+---@field highlightCoroutine Barotrauma.CoroutineHandle
+---`Field Public Instance`
+---@field HighlightTimer System.Single
+---`Field Public Instance`
+---@field SlotSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field InventoryKeyIndex System.Int32
+---`Field Public Instance`
+---@field SubInventoryDir System.Int32
+---`Field Public Instance`
+---@field QuickUseTimer System.Single
+---`Field Public Instance`
+---@field QuickUseButtonToolTip Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field IsMoving System.Boolean
+---`Field Public Instance`
+---@field EquipButtonState Barotrauma.GUIComponent.ComponentState
+---`Field Private Instance`
+---@field currentHighlightState System.Single
+---`Field Private Instance`
+---@field fadeInDuration System.Single
+---`Field Private Instance`
+---@field fadeOutDuration System.Single
+---`Field Private Instance`
+---@field currentHighlightColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field offScreenRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field IsHighlighted System.Boolean
+---`Getter Public Instance`
+---@field EquipButtonRect Microsoft.Xna.Framework.Rectangle
+_G['VisualSlot'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['VisualSlot'].MouseOn = function() end
+
+---`Method Public Instance`
+---@param color Microsoft.Xna.Framework.Color
+---@param fadeInDuration System.Single
+---@param fadeOutDuration System.Single
+---@param scaleUpAmount? System.Single
+_G['VisualSlot'].ShowBorderHighlight = function(color, fadeInDuration, fadeOutDuration, scaleUpAmount) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['VisualSlot'].UpdateBorderHighlight = function() end
+
+---`Method Public Instance`
+---@param newSlot Barotrauma.VisualSlot
+_G['VisualSlot'].MoveBorderHighlight = function(newSlot) end
+
+---`Constructor Public Instance`
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle):Barotrauma.VisualSlot
+---@return Barotrauma.VisualSlot
+_G['VisualSlot'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle):Barotrauma.VisualSlot
+---@return Barotrauma.VisualSlot
+_G['VisualSlot'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle):Barotrauma.VisualSlot
+---@return Barotrauma.VisualSlot
+_G['VisualSlot'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle):Barotrauma.VisualSlot
+---@return Barotrauma.VisualSlot
+_G['VisualSlot'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E9F648.lua b/Meta/Types/client/_00007FFD97E9F648.lua
new file mode 100644
index 0000000..3e30752
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9F648.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Command : System.Object
+_G['Command'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@return Barotrauma.LocalizedString
+_G['Command'].GetDescription = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['Command'].Execute = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['Command'].UnExecute = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['Command'].Cleanup = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Command
+_G['Command'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Command
+_G['Command'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97E9F840.lua b/Meta/Types/client/_00007FFD97E9F840.lua
new file mode 100644
index 0000000..99d021b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9F840.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.TransformCommand : Barotrauma.Command
+---`Field Private Instance`
+---@field Receivers (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Instance`
+---@field NewData (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Instance`
+---@field OldData (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Instance`
+---@field Resized System.Boolean
+_G['TransformCommand'] = {}
+
+---`Method Public Instance Virtual`
+_G['TransformCommand'].Execute = function() end
+
+---`Method Public Instance Virtual`
+_G['TransformCommand'].UnExecute = function() end
+
+---`Method Public Instance Virtual`
+_G['TransformCommand'].Cleanup = function() end
+
+---`Method Private Instance`
+---@param rects (System.Collections.Generic.IReadOnlyList*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+_G['TransformCommand'].SetRects = function(rects) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['TransformCommand'].GetDescription = function() end
+
+---`Constructor Public Instance`
+---@param receivers (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param newData (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param oldData (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param resized System.Boolean
+---@return Barotrauma.TransformCommand
+_G['TransformCommand'] = function(receivers, newData, oldData, resized) end
+
+---`Constructor Public Instance`
+---@param receivers (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param newData (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param oldData (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param resized System.Boolean
+---@return Barotrauma.TransformCommand
+_G['TransformCommand'].__new = function(receivers, newData, oldData, resized) end
+
diff --git a/Meta/Types/client/_00007FFD97E9FAA0.lua b/Meta/Types/client/_00007FFD97E9FAA0.lua
new file mode 100644
index 0000000..3b1e4ea
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9FAA0.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.AddOrDeleteCommand : Barotrauma.Command
+---`Field Private Instance`
+---@field PreviousInventories (System.Collections.Generic.Dictionary*1Barotrauma*InventorySlotItem*1Barotrauma*Inventory)|({[Barotrauma.InventorySlotItem]:(Barotrauma.Inventory)})
+---`Field Public Instance`
+---@field Receivers (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Instance`
+---@field CloneList (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Instance`
+---@field WasDeleted System.Boolean
+---`Field Private Instance`
+---@field ContainedItemsCommand (System.Collections.Generic.List*1Barotrauma*AddOrDeleteCommand)|(Barotrauma.AddOrDeleteCommand[])
+---`Field Private Instance`
+---@field CircuitBoxData (System.Collections.Generic.List*1System*Xml*Linq*XElement)|(System.Xml.Linq.XElement[])
+_G['AddOrDeleteCommand'] = {}
+
+---`Method Public Instance Virtual`
+_G['AddOrDeleteCommand'].Execute = function() end
+
+---`Method Public Instance Virtual`
+_G['AddOrDeleteCommand'].UnExecute = function() end
+
+---`Method Private Instance`
+---@param redo System.Boolean
+_G['AddOrDeleteCommand'].Process = function(redo) end
+
+---`Method Private Instance`
+---@param items (System.Collections.Immutable.ImmutableArray*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['AddOrDeleteCommand'].ApplyCircuitBoxDataIfAny = function(items) end
+
+---`Method Public Instance Virtual`
+_G['AddOrDeleteCommand'].Cleanup = function() end
+
+---`Method Private Instance`
+---@param redo System.Boolean
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['AddOrDeleteCommand'].DeleteUndelete = function(redo) end
+
+---`Method Public Instance`
+---@param master Barotrauma.AddOrDeleteCommand
+_G['AddOrDeleteCommand'].MergeInto = function(master) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['AddOrDeleteCommand'].GetDescription = function() end
+
+---`Constructor Public Instance`
+---@param receivers (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param wasDeleted System.Boolean
+---@param handleInventoryBehavior? System.Boolean
+---@return Barotrauma.AddOrDeleteCommand
+_G['AddOrDeleteCommand'] = function(receivers, wasDeleted, handleInventoryBehavior) end
+
+---`Constructor Public Instance`
+---@param receivers (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param wasDeleted System.Boolean
+---@param handleInventoryBehavior? System.Boolean
+---@return Barotrauma.AddOrDeleteCommand
+_G['AddOrDeleteCommand'].__new = function(receivers, wasDeleted, handleInventoryBehavior) end
+
diff --git a/Meta/Types/client/_00007FFD97E9FD10.lua b/Meta/Types/client/_00007FFD97E9FD10.lua
new file mode 100644
index 0000000..0b9150a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9FD10.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.PropertyCommand : Barotrauma.Command
+---`Field Private Instance`
+---@field OldProperties (System.Collections.Generic.Dictionary*1System*Object*1System*Collections*Generic*List*2Barotrauma*ISerializableEntity)|({[System.Object]:((System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[]))})
+---`Field Private Instance`
+---@field Receivers (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field PropertyName Barotrauma.Identifier
+---`Field Private Instance`
+---@field NewProperties System.Object
+---`Field Private Instance`
+---@field sanitizedProperty System.String
+---`Field Public Instance`
+---@field PropertyCount System.Int32
+_G['PropertyCommand'] = {}
+
+---`Method Public Instance`
+---@param master Barotrauma.PropertyCommand
+---@return System.Boolean
+_G['PropertyCommand'].MergeInto = function(master) end
+
+---`Method Private Instance`
+_G['PropertyCommand'].SanitizeProperty = function() end
+
+---`Method Public Instance Virtual`
+_G['PropertyCommand'].Execute = function() end
+
+---`Method Public Instance Virtual`
+_G['PropertyCommand'].UnExecute = function() end
+
+---`Method Public Instance Virtual`
+_G['PropertyCommand'].Cleanup = function() end
+
+---`Method Private Instance`
+---@param undo System.Boolean
+_G['PropertyCommand'].SetProperties = function(undo) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['PropertyCommand'].GetDescription = function() end
+
+---`Constructor Public Instance`
+---@overload fun(receivers:(System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[]), propertyName:Barotrauma.Identifier, newData:System.Object, oldData:(System.Collections.Generic.Dictionary*1System*Object*1System*Collections*Generic*List*2Barotrauma*ISerializableEntity)|({[System.Object]:((System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[]))})):Barotrauma.PropertyCommand
+---@param receiver Barotrauma.ISerializableEntity
+---@param propertyName Barotrauma.Identifier
+---@param newData System.Object
+---@param oldData System.Object
+---@return Barotrauma.PropertyCommand
+_G['PropertyCommand'] = function(receiver, propertyName, newData, oldData) end
+
+---`Constructor Public Instance`
+---@overload fun(receivers:(System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[]), propertyName:Barotrauma.Identifier, newData:System.Object, oldData:(System.Collections.Generic.Dictionary*1System*Object*1System*Collections*Generic*List*2Barotrauma*ISerializableEntity)|({[System.Object]:((System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[]))})):Barotrauma.PropertyCommand
+---@param receiver Barotrauma.ISerializableEntity
+---@param propertyName Barotrauma.Identifier
+---@param newData System.Object
+---@param oldData System.Object
+---@return Barotrauma.PropertyCommand
+_G['PropertyCommand'].__new = function(receiver, propertyName, newData, oldData) end
+
diff --git a/Meta/Types/client/_00007FFD97E9FF00.lua b/Meta/Types/client/_00007FFD97E9FF00.lua
new file mode 100644
index 0000000..998ba3f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97E9FF00.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.InventoryMoveCommand : Barotrauma.Command
+---`Field Private Instance`
+---@field oldInventory Barotrauma.Inventory
+---`Field Private Instance`
+---@field newInventory Barotrauma.Inventory
+---`Field Private Instance`
+---@field oldSlot System.Int32
+---`Field Private Instance`
+---@field newSlot System.Int32
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+_G['InventoryMoveCommand'] = {}
+
+---`Method Public Instance Virtual`
+_G['InventoryMoveCommand'].Execute = function() end
+
+---`Method Public Instance Virtual`
+_G['InventoryMoveCommand'].UnExecute = function() end
+
+---`Method Public Instance Virtual`
+_G['InventoryMoveCommand'].Cleanup = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['InventoryMoveCommand'].GetDescription = function() end
+
+---`Constructor Public Instance`
+---@param oldInventory Barotrauma.Inventory
+---@param newInventory Barotrauma.Inventory
+---@param item Barotrauma.Item
+---@param oldSlot System.Int32
+---@param newSlot System.Int32
+---@return Barotrauma.InventoryMoveCommand
+_G['InventoryMoveCommand'] = function(oldInventory, newInventory, item, oldSlot, newSlot) end
+
+---`Constructor Public Instance`
+---@param oldInventory Barotrauma.Inventory
+---@param newInventory Barotrauma.Inventory
+---@param item Barotrauma.Item
+---@param oldSlot System.Int32
+---@param newSlot System.Int32
+---@return Barotrauma.InventoryMoveCommand
+_G['InventoryMoveCommand'].__new = function(oldInventory, newInventory, item, oldSlot, newSlot) end
+
diff --git a/Meta/Types/client/_00007FFD97EA0120.lua b/Meta/Types/client/_00007FFD97EA0120.lua
new file mode 100644
index 0000000..bc34f41
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA0120.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.InventoryPlaceCommand : Barotrauma.Command
+---`Field Private Instance`
+---@field Inventory Barotrauma.Inventory
+---`Field Private Instance`
+---@field Receivers (System.Collections.Generic.List*1Barotrauma*InventorySlotItem)|(Barotrauma.InventorySlotItem[])
+---`Field Private Instance`
+---@field wasDropped System.Boolean
+_G['InventoryPlaceCommand'] = {}
+
+---`Method Public Instance Virtual`
+_G['InventoryPlaceCommand'].Execute = function() end
+
+---`Method Public Instance Virtual`
+_G['InventoryPlaceCommand'].UnExecute = function() end
+
+---`Method Public Instance Virtual`
+_G['InventoryPlaceCommand'].Cleanup = function() end
+
+---`Method Private Instance`
+---@param drop System.Boolean
+_G['InventoryPlaceCommand'].ContainUncontain = function(drop) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['InventoryPlaceCommand'].GetDescription = function() end
+
+---`Constructor Public Instance`
+---@param inventory Barotrauma.Inventory
+---@param items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@param dropped System.Boolean
+---@return Barotrauma.InventoryPlaceCommand
+_G['InventoryPlaceCommand'] = function(inventory, items, dropped) end
+
+---`Constructor Public Instance`
+---@param inventory Barotrauma.Inventory
+---@param items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@param dropped System.Boolean
+---@return Barotrauma.InventoryPlaceCommand
+_G['InventoryPlaceCommand'].__new = function(inventory, items, dropped) end
+
diff --git a/Meta/Types/client/_00007FFD97EA0568.lua b/Meta/Types/client/_00007FFD97EA0568.lua
new file mode 100644
index 0000000..b41b58e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA0568.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.TraitorEvent : Barotrauma.ScriptedEvent
+---`Field Public Instance`
+---@field OnStateChanged (System.Action)|(fun())
+---`Field Private Instance`
+---@field prefab Barotrauma.TraitorEventPrefab
+---`Field Private Instance`
+---@field codeWord Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field currentState Barotrauma.TraitorEvent.State
+---`Field Private Instance`
+---@field traitor Barotrauma.Networking.Client
+---`Field Private Instance`
+---@field secondaryTraitors (System.Collections.Generic.HashSet*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Private Static`
+---@field nonActionChildElementNames (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Prefab Barotrauma.TraitorEventPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentState Barotrauma.TraitorEvent.State
+---`Getter Public Instance`
+---@field Traitor Barotrauma.Networking.Client
+---`Getter Public Instance`
+---@field SecondaryTraitors (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---`Getter NonPublic Instance Virtual`
+---@field NonActionChildElementNames (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['TraitorEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['TraitorEvent'].ToString = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet? Barotrauma.EventSet
+_G['TraitorEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['TraitorEvent'].ReplaceVariablesInEventText = function(str) end
+
+---`Method Public Instance`
+---@param traitor Barotrauma.Networking.Client
+_G['TraitorEvent'].SetTraitor = function(traitor) end
+
+---`Method Public Instance`
+---@param traitors (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['TraitorEvent'].SetSecondaryTraitors = function(traitors) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA0950.lua b/Meta/Types/client/_00007FFD97EA0950.lua
new file mode 100644
index 0000000..d77addc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA0950.lua
@@ -0,0 +1,82 @@
+---@meta
+---@class Barotrauma.TraitorEventPrefab : Barotrauma.EventPrefab
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field IconColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field reputationRequirements (System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*ReputationRequirement)|(Barotrauma.TraitorEventPrefab.ReputationRequirement[])
+---`Field Private Instance`
+---@field missionRequirements (System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*MissionRequirement)|(Barotrauma.TraitorEventPrefab.MissionRequirement[])
+---`Field Private Instance`
+---@field levelRequirements (System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*LevelRequirement)|(Barotrauma.TraitorEventPrefab.LevelRequirement[])
+---`Field Public Instance`
+---@field RequiredCompletedTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field DangerLevel System.Int32
+---`Field Public Instance`
+---@field RequiredPreviousDangerLevel System.Int32
+---`Field Public Instance`
+---@field RequirePreviousDangerLevelCompleted System.Boolean
+---`Field Public Instance`
+---@field MinPlayerCount System.Int32
+---`Field Public Instance`
+---@field SecondaryTraitorAmount System.Int32
+---`Field Public Instance`
+---@field SecondaryTraitorPercentage System.Single
+---`Field Public Instance`
+---@field AllowAccusingSecondaryTraitor System.Boolean
+---`Field Public Instance`
+---@field MoneyPenaltyForUnfoundedTraitorAccusation System.Int32
+---`Field Public Instance`
+---@field IsChainable System.Boolean
+---`Field Public Instance`
+---@field StealPercentageOfExperience System.Single
+---`Field Public Static`
+---@field MinDangerLevel System.Int32
+---`Field Public Static`
+---@field MaxDangerLevel System.Int32
+---`Getter Public Instance`
+---@field HasReputationRequirements System.Boolean
+---`Getter Public Instance`
+---@field HasMissionRequirements System.Boolean
+---`Getter Public Instance`
+---@field HasLevelRequirements System.Boolean
+_G['TraitorEventPrefab'] = {}
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@return System.Boolean
+_G['TraitorEventPrefab'].ReputationRequirementsMet = function(campaign) end
+
+---`Method Public Instance`
+---@param gameSession Barotrauma.GameSession
+---@return System.Boolean
+_G['TraitorEventPrefab'].MissionRequirementsMet = function(gameSession) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['TraitorEventPrefab'].LevelRequirementsMet = function(level) end
+
+---`Method Public Instance Virtual`
+_G['TraitorEventPrefab'].Dispose = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['TraitorEventPrefab'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.RandomEventsFile
+---@param fallbackIdentifier? Barotrauma.Identifier
+---@return Barotrauma.TraitorEventPrefab
+_G['TraitorEventPrefab'] = function(element, file, fallbackIdentifier) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.RandomEventsFile
+---@param fallbackIdentifier? Barotrauma.Identifier
+---@return Barotrauma.TraitorEventPrefab
+_G['TraitorEventPrefab'].__new = function(element, file, fallbackIdentifier) end
+
diff --git a/Meta/Types/client/_00007FFD97EA2CA0.lua b/Meta/Types/client/_00007FFD97EA2CA0.lua
new file mode 100644
index 0000000..85b0497
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA2CA0.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.TraitorManager : System.Object
+_G['TraitorManager'] = {}
+
+---`Method Public Static`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['TraitorManager'].ClientRead = function(msg) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.TraitorManager
+_G['TraitorManager'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.TraitorManager
+_G['TraitorManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA2E48.lua b/Meta/Types/client/_00007FFD97EA2E48.lua
new file mode 100644
index 0000000..d076597
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA2E48.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.TraitorManager.TraitorResults : System.ValueType
+---`Field Public Instance`
+---@field VotedAsTraitorClientSessionId System.Byte
+---`Field Public Instance`
+---@field VotedCorrectTraitor System.Boolean
+---`Field Public Instance`
+---@field ObjectiveSuccessful System.Boolean
+---`Field Public Instance`
+---@field MoneyPenalty System.Int32
+---`Field Public Instance`
+---@field TraitorEventIdentifier Barotrauma.Identifier
+_G['TraitorManager']['TraitorResults'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.Networking.Client
+_G['TraitorManager']['TraitorResults'].GetTraitorClient = function() end
+
+---`Constructor Public Instance`
+---@param votedAsTraitor Barotrauma.Networking.Client
+---@param traitorEvent Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorManager.TraitorResults
+_G['TraitorManager']['TraitorResults'] = function(votedAsTraitor, traitorEvent) end
+
+---`Constructor Public Instance`
+---@param votedAsTraitor Barotrauma.Networking.Client
+---@param traitorEvent Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorManager.TraitorResults
+_G['TraitorManager']['TraitorResults'].__new = function(votedAsTraitor, traitorEvent) end
+
diff --git a/Meta/Types/client/_00007FFD97EA3148.lua b/Meta/Types/client/_00007FFD97EA3148.lua
new file mode 100644
index 0000000..7286a50
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3148.lua
@@ -0,0 +1,75 @@
+---@meta
+---@class FarseerPhysics.Collision.AABB : System.ValueType
+---`Field Public Instance`
+---@field LowerBound Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field UpperBound Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Width System.Single
+---`Getter Public Instance`
+---@field Height System.Single
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Extents Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Perimeter System.Single
+---`Getter Public Instance`
+---@field Vertices FarseerPhysics.Common.Vertices
+---`Getter Public Instance`
+---@field Q1 FarseerPhysics.Collision.AABB
+---`Getter Public Instance`
+---@field Q2 FarseerPhysics.Collision.AABB
+---`Getter Public Instance`
+---@field Q3 FarseerPhysics.Collision.AABB
+---`Getter Public Instance`
+---@field Q4 FarseerPhysics.Collision.AABB
+_G['FarseerPhysics']['Collision']['AABB'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].IsValid = function() end
+
+---`Method Public Instance`
+---@overload fun(aabb:FarseerPhysics.Collision.AABB-ref)
+---@param aabb1 FarseerPhysics.Collision.AABB-ref
+---@param aabb2 FarseerPhysics.Collision.AABB-ref
+_G['FarseerPhysics']['Collision']['AABB'].Combine = function(aabb1, aabb2) end
+
+---`Method Public Instance`
+---@overload fun(aabb:FarseerPhysics.Collision.AABB-ref):(System.Boolean)
+---@param point Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].Contains = function(point) end
+
+---`Method Public Static`
+---@param a FarseerPhysics.Collision.AABB-ref
+---@param b FarseerPhysics.Collision.AABB-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].TestOverlap = function(a, b) end
+
+---`Method Public Instance`
+---@param output FarseerPhysics.Collision.RayCastOutput-ref
+---@param input FarseerPhysics.Collision.RayCastInput-ref
+---@param doInteriorCheck? System.Boolean
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].RayCast = function(output, input, doInteriorCheck) end
+
+---`Constructor Public Instance`
+---@overload fun(min:Microsoft.Xna.Framework.Vector2, max:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Collision.AABB
+---@overload fun(min:Microsoft.Xna.Framework.Vector2-ref, max:Microsoft.Xna.Framework.Vector2-ref):FarseerPhysics.Collision.AABB
+---@param center Microsoft.Xna.Framework.Vector2
+---@param width System.Single
+---@param height System.Single
+---@return FarseerPhysics.Collision.AABB
+_G['FarseerPhysics']['Collision']['AABB'] = function(center, width, height) end
+
+---`Constructor Public Instance`
+---@overload fun(min:Microsoft.Xna.Framework.Vector2, max:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Collision.AABB
+---@overload fun(min:Microsoft.Xna.Framework.Vector2-ref, max:Microsoft.Xna.Framework.Vector2-ref):FarseerPhysics.Collision.AABB
+---@param center Microsoft.Xna.Framework.Vector2
+---@param width System.Single
+---@param height System.Single
+---@return FarseerPhysics.Collision.AABB
+_G['FarseerPhysics']['Collision']['AABB'].__new = function(center, width, height) end
+
diff --git a/Meta/Types/client/_00007FFD97EA3258.lua b/Meta/Types/client/_00007FFD97EA3258.lua
new file mode 100644
index 0000000..4e916f7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3258.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class FarseerPhysics.Collision.ContactFeature : System.ValueType
+---`Field Public Instance`
+---@field IndexA System.Byte
+---`Field Public Instance`
+---@field IndexB System.Byte
+---`Field Public Instance`
+---@field TypeA System.Byte
+---`Field Public Instance`
+---@field TypeB System.Byte
+_G['FarseerPhysics']['Collision']['ContactFeature'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA3348.lua b/Meta/Types/client/_00007FFD97EA3348.lua
new file mode 100644
index 0000000..26c2676
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3348.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class FarseerPhysics.Collision.ContactID : System.ValueType
+---`Field Public Instance`
+---@field Features FarseerPhysics.Collision.ContactFeature
+---`Field Public Instance`
+---@field Key System.UInt32
+_G['FarseerPhysics']['Collision']['ContactID'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA3400.lua b/Meta/Types/client/_00007FFD97EA3400.lua
new file mode 100644
index 0000000..d62343f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3400.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class FarseerPhysics.Collision.ManifoldPoint : System.ValueType
+---`Field Public Instance`
+---@field Id FarseerPhysics.Collision.ContactID
+---`Field Public Instance`
+---@field LocalPoint Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field NormalImpulse System.Single
+---`Field Public Instance`
+---@field TangentImpulse System.Single
+_G['FarseerPhysics']['Collision']['ManifoldPoint'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA38E0.lua b/Meta/Types/client/_00007FFD97EA38E0.lua
new file mode 100644
index 0000000..a3bd0f9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA38E0.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class FarseerPhysics.Collision.Manifold : System.ValueType
+---`Field Public Instance`
+---@field LocalNormal Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field LocalPoint Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field PointCount System.Int32
+---`Field Public Instance`
+---@field Points FarseerPhysics.Common.FixedArray2*1FarseerPhysics*Collision*ManifoldPoint
+---`Field Public Instance`
+---@field Type FarseerPhysics.Collision.ManifoldType
+_G['FarseerPhysics']['Collision']['Manifold'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA39E0.lua b/Meta/Types/client/_00007FFD97EA39E0.lua
new file mode 100644
index 0000000..8ab7bb1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA39E0.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class FarseerPhysics.Collision.RayCastInput : System.ValueType
+---`Field Public Instance`
+---@field MaxFraction System.Single
+---`Field Public Instance`
+---@field Point1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Point2 Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Collision']['RayCastInput'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA3AD0.lua b/Meta/Types/client/_00007FFD97EA3AD0.lua
new file mode 100644
index 0000000..595dc47
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3AD0.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class FarseerPhysics.Collision.ClipVertex : System.ValueType
+---`Field Public Instance`
+---@field ID FarseerPhysics.Collision.ContactID
+---`Field Public Instance`
+---@field V Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Collision']['ClipVertex'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA3BC0.lua b/Meta/Types/client/_00007FFD97EA3BC0.lua
new file mode 100644
index 0000000..366e6df
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3BC0.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class FarseerPhysics.Collision.RayCastOutput : System.ValueType
+---`Field Public Instance`
+---@field Fraction System.Single
+---`Field Public Instance`
+---@field Normal Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Collision']['RayCastOutput'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA3E10.lua b/Meta/Types/client/_00007FFD97EA3E10.lua
new file mode 100644
index 0000000..27734f0
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3E10.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class FarseerPhysics.Collision.EPAxis : System.ValueType
+---`Field Public Instance`
+---@field Index System.Int32
+---`Field Public Instance`
+---@field Separation System.Single
+---`Field Public Instance`
+---@field Type FarseerPhysics.Collision.EPAxisType
+_G['FarseerPhysics']['Collision']['EPAxis'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA3F70.lua b/Meta/Types/client/_00007FFD97EA3F70.lua
new file mode 100644
index 0000000..21e50a1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA3F70.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class FarseerPhysics.Collision.ReferenceFace : System.ValueType
+---`Field Public Instance`
+---@field i1 System.Int32
+---`Field Public Instance`
+---@field i2 System.Int32
+---`Field Public Instance`
+---@field v1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field v2 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field normal Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field sideNormal1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field sideOffset1 System.Single
+---`Field Public Instance`
+---@field sideNormal2 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field sideOffset2 System.Single
+_G['FarseerPhysics']['Collision']['ReferenceFace'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA4168.lua b/Meta/Types/client/_00007FFD97EA4168.lua
new file mode 100644
index 0000000..268dddc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA4168.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class FarseerPhysics.Collision.Collision : System.Object
+_G['FarseerPhysics']['Collision']['Collision'] = {}
+
+---`Method Public Static`
+---@param shapeA FarseerPhysics.Collision.Shapes.Shape
+---@param indexA System.Int32
+---@param shapeB FarseerPhysics.Collision.Shapes.Shape
+---@param indexB System.Int32
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param xfB FarseerPhysics.Common.Transform-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['Collision'].TestOverlap = function(shapeA, indexA, shapeB, indexB, xfA, xfB) end
+
+---`Method Public Static`
+---@param state1 FarseerPhysics.Common.FixedArray2
+---@param state2 FarseerPhysics.Common.FixedArray2
+---@param manifold1 FarseerPhysics.Collision.Manifold-ref
+---@param manifold2 FarseerPhysics.Collision.Manifold-ref
+_G['FarseerPhysics']['Collision']['Collision'].GetPointStates = function(state1, state2, manifold1, manifold2) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param circleA FarseerPhysics.Collision.Shapes.CircleShape
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param circleB FarseerPhysics.Collision.Shapes.CircleShape
+---@param xfB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollideCircles = function(manifold, circleA, xfA, circleB, xfB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param polygonA FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param circleB FarseerPhysics.Collision.Shapes.CircleShape
+---@param xfB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollidePolygonAndCircle = function(manifold, polygonA, xfA, circleB, xfB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param polyA FarseerPhysics.Collision.Shapes.PolygonShape
+---@param transformA FarseerPhysics.Common.Transform-ref
+---@param polyB FarseerPhysics.Collision.Shapes.PolygonShape
+---@param transformB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollidePolygons = function(manifold, polyA, transformA, polyB, transformB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param edgeA FarseerPhysics.Collision.Shapes.EdgeShape
+---@param transformA FarseerPhysics.Common.Transform-ref
+---@param circleB FarseerPhysics.Collision.Shapes.CircleShape
+---@param transformB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollideEdgeAndCircle = function(manifold, edgeA, transformA, circleB, transformB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param edgeA FarseerPhysics.Collision.Shapes.EdgeShape
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param polygonB FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xfB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollideEdgeAndPolygon = function(manifold, edgeA, xfA, polygonB, xfB) end
+
+---`Method Private Static`
+---@param vOut FarseerPhysics.Common.FixedArray2
+---@param vIn FarseerPhysics.Common.FixedArray2
+---@param normal Microsoft.Xna.Framework.Vector2
+---@param offset System.Single
+---@param vertexIndexA System.Int32
+---@return System.Int32
+_G['FarseerPhysics']['Collision']['Collision'].ClipSegmentToLine = function(vOut, vIn, normal, offset, vertexIndexA) end
+
+---`Method Private Static`
+---@param poly1 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf1To2 FarseerPhysics.Common.Transform-ref
+---@param edge1 System.Int32
+---@param poly2 FarseerPhysics.Collision.Shapes.PolygonShape
+---@return System.Single
+_G['FarseerPhysics']['Collision']['Collision'].EdgeSeparation = function(poly1, xf1To2, edge1, poly2) end
+
+---`Method Private Static`
+---@param edgeIndex System.Int32-ref
+---@param poly1 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf1 FarseerPhysics.Common.Transform-ref
+---@param poly2 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf2 FarseerPhysics.Common.Transform-ref
+---@return System.Single
+_G['FarseerPhysics']['Collision']['Collision'].FindMaxSeparation = function(edgeIndex, poly1, xf1, poly2, xf2) end
+
+---`Method Private Static`
+---@param c FarseerPhysics.Common.FixedArray2
+---@param poly1 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf1 FarseerPhysics.Common.Transform-ref
+---@param edge1 System.Int32
+---@param poly2 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf2 FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].FindIncidentEdge = function(c, poly1, xf1, edge1, poly2, xf2) end
+
diff --git a/Meta/Types/client/_00007FFD97EA4BB0.lua b/Meta/Types/client/_00007FFD97EA4BB0.lua
new file mode 100644
index 0000000..61b6ae7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA4BB0.lua
@@ -0,0 +1,419 @@
+---@meta
+---@class FarseerPhysics.Dynamics.World : System.Object
+---`Field Private Instance`
+---@field _stepComplete System.Boolean
+---`Field Private Instance`
+---@field _invDt0 System.Single
+---`Field Private Instance`
+---@field _stack (FarseerPhysics.Dynamics.Body-arr)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field _bodyAddList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field _bodyRemoveList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field _jointAddList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Field Private Instance`
+---@field _jointRemoveList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Field Private Instance`
+---@field _queryAABBCallback (System.Func*1FarseerPhysics*Dynamics*Fixture*1System*Boolean)|(fun(arg:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---`Field Private Instance`
+---@field _queryAABBCallbackWrapper (System.Func*1System*Int32*1System*Boolean)|(fun(arg:System.Int32):(System.Boolean))
+---`Field Private Instance`
+---@field _input FarseerPhysics.Collision.TOIInput
+---`Field Private Instance`
+---@field _myFixture FarseerPhysics.Dynamics.Fixture
+---`Field Private Instance`
+---@field _point1 Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _point2 Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _testPointAllFixtures (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+---`Field Private Instance`
+---@field _watch System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field _rayCastCallback (System.Func*1FarseerPhysics*Dynamics*Fixture*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single)|(fun(arg1:FarseerPhysics.Dynamics.Fixture, arg2:Microsoft.Xna.Framework.Vector2, arg3:Microsoft.Xna.Framework.Vector2, arg4:System.Single):(System.Single))
+---`Field Private Instance`
+---@field _rayCastCallbackWrapper (System.Func*1FarseerPhysics*Collision*RayCastInput*1FarseerPhysics*Dynamics*FixtureProxy*1System*Single)|(fun(arg1:FarseerPhysics.Collision.RayCastInput, arg2:FarseerPhysics.Dynamics.FixtureProxy):(System.Single))
+---`Field NonPublic Instance`
+---@field _worldHasNewFixture System.Boolean
+---`Field Public Instance`
+---@field Tag System.Object
+---`Field Public Instance`
+---@field BodyAdded (FarseerPhysics.Dynamics.BodyDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body))
+---`Field Public Instance`
+---@field BodyRemoved (FarseerPhysics.Dynamics.BodyDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body))
+---`Field Public Instance`
+---@field FixtureAdded (FarseerPhysics.Dynamics.FixtureDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body, fixture:FarseerPhysics.Dynamics.Fixture))
+---`Field Public Instance`
+---@field FixtureRemoved (FarseerPhysics.Dynamics.FixtureDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body, fixture:FarseerPhysics.Dynamics.Fixture))
+---`Field Public Instance`
+---@field JointAdded (FarseerPhysics.Dynamics.JointDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, joint:FarseerPhysics.Dynamics.Joints.Joint))
+---`Field Public Instance`
+---@field JointRemoved (FarseerPhysics.Dynamics.JointDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, joint:FarseerPhysics.Dynamics.Joints.Joint))
+---`Field Public Instance`
+---@field ControllerAdded (FarseerPhysics.Dynamics.ControllerDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, controller:FarseerPhysics.Controllers.Controller))
+---`Field Public Instance`
+---@field ControllerRemoved (FarseerPhysics.Dynamics.ControllerDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, controller:FarseerPhysics.Controllers.Controller))
+---`Field Public Instance`
+---@field ControllerList (System.Collections.Generic.List*1FarseerPhysics*Controllers*Controller)|(FarseerPhysics.Controllers.Controller[])
+---`Field Public Instance`
+---@field Gravity Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ContactManager FarseerPhysics.Dynamics.ContactManager
+---`Field Public Instance`
+---@field BodyList (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Public Instance`
+---@field JointList (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Field Private Static`
+---@field _warmStarting System.Boolean
+---`Field Private Static`
+---@field _subStepping System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Fluid FarseerPhysics.Fluids.FluidSystem2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UpdateTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContinuousPhysicsTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ControllersUpdateTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AddRemoveTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NewContactsTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContactsUpdateTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SolveUpdateTime System.TimeSpan
+---`Getter Public Instance`
+---@field ProxyCount System.Int32
+---`Getter Public Instance`
+---@field ContactCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsLocked System.Boolean
+---`Getter Public Instance`
+---@field ContactList FarseerPhysics.Dynamics.Contacts.ContactListHead
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Island FarseerPhysics.Dynamics.Island
+_G['FarseerPhysics']['Dynamics']['World'] = {}
+
+---`Method Private Instance`
+---@param proxyId System.Int32
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].QueryAABBCallbackWrapper = function(proxyId) end
+
+---`Method Private Instance`
+---@param rayCastInput FarseerPhysics.Collision.RayCastInput
+---@param proxy FarseerPhysics.Dynamics.FixtureProxy
+---@return System.Single
+_G['FarseerPhysics']['Dynamics']['World'].RayCastCallbackWrapper = function(rayCastInput, proxy) end
+
+---`Method Private Instance`
+---@param step FarseerPhysics.Dynamics.TimeStep-ref
+_G['FarseerPhysics']['Dynamics']['World'].Solve = function(step) end
+
+---`Method Private Instance`
+---@param step FarseerPhysics.Dynamics.TimeStep-ref
+---@param iterations FarseerPhysics.Dynamics.SolverIterations-ref
+_G['FarseerPhysics']['Dynamics']['World'].SolveTOI = function(step, iterations) end
+
+---`Method Public Instance Virtual`
+---@param body FarseerPhysics.Dynamics.Body
+---@param findNewContacts System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].Add = function(body, findNewContacts) end
+
+---`Method Public Instance`
+---@overload fun(joint:FarseerPhysics.Dynamics.Joints.Joint)
+---@param controller FarseerPhysics.Controllers.Controller
+_G['FarseerPhysics']['Dynamics']['World'].Add = function(controller) end
+
+---`Method Public Instance Virtual`
+---@param body FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].Remove = function(body) end
+
+---`Method Public Instance`
+---@overload fun(joint:FarseerPhysics.Dynamics.Joints.Joint)
+---@param controller FarseerPhysics.Controllers.Controller
+_G['FarseerPhysics']['Dynamics']['World'].Remove = function(controller) end
+
+---`Method Public Instance`
+---@overload fun(body:FarseerPhysics.Dynamics.Body, findNewContacts:System.Boolean)
+---@param joint FarseerPhysics.Dynamics.Joints.Joint
+_G['FarseerPhysics']['Dynamics']['World'].AddAsync = function(joint) end
+
+---`Method Public Instance`
+---@overload fun(body:FarseerPhysics.Dynamics.Body)
+---@param joint FarseerPhysics.Dynamics.Joints.Joint
+_G['FarseerPhysics']['Dynamics']['World'].RemoveAsync = function(joint) end
+
+---`Method Public Instance`
+_G['FarseerPhysics']['Dynamics']['World'].ProcessChanges = function() end
+
+---`Method Public Instance`
+---@overload fun(dt:System.TimeSpan)
+---@overload fun(dt:System.TimeSpan, iterations:FarseerPhysics.Dynamics.SolverIterations-ref)
+---@overload fun(dt:System.Single)
+---@param dt System.Single
+---@param iterations FarseerPhysics.Dynamics.SolverIterations-ref
+_G['FarseerPhysics']['Dynamics']['World'].Step = function(dt, iterations) end
+
+---`Method Public Instance`
+_G['FarseerPhysics']['Dynamics']['World'].ClearForces = function() end
+
+---`Method Public Instance`
+---@overload fun(callback:(System.Func*1FarseerPhysics*Dynamics*Fixture*1System*Boolean)|(fun(arg:FarseerPhysics.Dynamics.Fixture):(System.Boolean)), aabb:FarseerPhysics.Collision.AABB-ref)
+---@param aabb FarseerPhysics.Collision.AABB-ref
+---@return (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+_G['FarseerPhysics']['Dynamics']['World'].QueryAABB = function(aabb) end
+
+---`Method Public Instance`
+---@overload fun(callback:(System.Func*1FarseerPhysics*Dynamics*Fixture*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single)|(fun(arg1:FarseerPhysics.Dynamics.Fixture, arg2:Microsoft.Xna.Framework.Vector2, arg3:Microsoft.Xna.Framework.Vector2, arg4:System.Single):(System.Single)), point1:Microsoft.Xna.Framework.Vector2, point2:Microsoft.Xna.Framework.Vector2, collisionCategory?:FarseerPhysics.Dynamics.Category)
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+_G['FarseerPhysics']['Dynamics']['World'].RayCast = function(point1, point2) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['World'].TestPoint = function(point) end
+
+---`Method Private Instance`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].TestPointCallback = function(fixture) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+_G['FarseerPhysics']['Dynamics']['World'].TestPointAll = function(point) end
+
+---`Method Private Instance`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].TestPointAllCallback = function(fixture) end
+
+---`Method Public Instance`
+---@param newOrigin Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Dynamics']['World'].ShiftOrigin = function(newOrigin) end
+
+---`Method Public Instance`
+_G['FarseerPhysics']['Dynamics']['World'].Clear = function() end
+
+---`Method Public Instance Virtual`
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateBody = function(position, rotation, bodyType, findNewContacts) end
+
+---`Method Public Instance`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateEdge = function(start, luaKey__end, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param vertices FarseerPhysics.Common.Vertices
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateChainShape = function(vertices, position, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param vertices FarseerPhysics.Common.Vertices
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateLoopShape = function(vertices, position, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param width System.Single
+---@param height System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateRectangle = function(width, height, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param radius System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCircle = function(radius, density, position, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param xRadius System.Single
+---@param yRadius System.Single
+---@param edges System.Int32
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateEllipse = function(xRadius, yRadius, edges, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param vertices FarseerPhysics.Common.Vertices
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreatePolygon = function(vertices, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param list (System.Collections.Generic.List*1FarseerPhysics*Common*Vertices)|(FarseerPhysics.Common.Vertices[])
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCompoundPolygon = function(list, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param radius System.Single
+---@param numberOfTeeth System.Int32
+---@param tipPercentage System.Single
+---@param toothHeight System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateGear = function(radius, numberOfTeeth, tipPercentage, toothHeight, density, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@overload fun(height:System.Single, topRadius:System.Single, topEdges:System.Int32, bottomRadius:System.Single, bottomEdges:System.Int32, density:System.Single, position?:Microsoft.Xna.Framework.Vector2, rotation?:System.Single, bodyType?:FarseerPhysics.BodyType, collisionCategory?:FarseerPhysics.Dynamics.Category, collidesWith?:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):(FarseerPhysics.Dynamics.Body)
+---@param height System.Single
+---@param endRadius System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCapsule = function(height, endRadius, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param width System.Single
+---@param endRadius System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCapsuleHorizontal = function(width, endRadius, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param width System.Single
+---@param height System.Single
+---@param xRadius System.Single
+---@param yRadius System.Single
+---@param segments System.Int32
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateRoundedRectangle = function(width, height, xRadius, yRadius, segments, density, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@param radians System.Single
+---@param sides System.Int32
+---@param radius System.Single
+---@param closed? System.Boolean
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateLineArc = function(radians, sides, radius, closed, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@param density System.Single
+---@param radians System.Single
+---@param sides System.Int32
+---@param radius System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateSolidArc = function(density, radians, sides, radius, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param linkWidth System.Single
+---@param linkHeight System.Single
+---@param numberOfLinks System.Int32
+---@param linkDensity System.Single
+---@param attachRopeJoint System.Boolean
+---@return FarseerPhysics.Common.Path
+_G['FarseerPhysics']['Dynamics']['World'].CreateChain = function(start, luaKey__end, linkWidth, linkHeight, numberOfLinks, linkDensity, attachRopeJoint) end
+
+---`Constructor Public Instance`
+---@overload fun():FarseerPhysics.Dynamics.World
+---@overload fun(gravity:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Dynamics.World
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@return FarseerPhysics.Dynamics.World
+_G['FarseerPhysics']['Dynamics']['World'] = function(broadPhase) end
+
+---`Constructor Public Instance`
+---@overload fun():FarseerPhysics.Dynamics.World
+---@overload fun(gravity:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Dynamics.World
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@return FarseerPhysics.Dynamics.World
+_G['FarseerPhysics']['Dynamics']['World'].__new = function(broadPhase) end
+
diff --git a/Meta/Types/client/_00007FFD97EA50E0.lua b/Meta/Types/client/_00007FFD97EA50E0.lua
new file mode 100644
index 0000000..a2a4ca8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA50E0.lua
@@ -0,0 +1,138 @@
+---@meta
+---@class FarseerPhysics.Dynamics.Fixture : System.Object
+---`Field Private Instance`
+---@field _isSensor System.Boolean
+---`Field Private Instance`
+---@field _friction System.Single
+---`Field Private Instance`
+---@field _restitution System.Single
+---`Field NonPublic Instance`
+---@field _collidesWith FarseerPhysics.Dynamics.Category
+---`Field NonPublic Instance`
+---@field _collisionCategories FarseerPhysics.Dynamics.Category
+---`Field NonPublic Instance`
+---@field _collisionGroup System.Int16
+---`Field Public Instance`
+---@field AfterCollision (FarseerPhysics.Dynamics.AfterCollisionEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture, contact:FarseerPhysics.Dynamics.Contacts.Contact, impulse:FarseerPhysics.Dynamics.Contacts.ContactVelocityConstraint))
+---`Field Public Instance`
+---@field BeforeCollision (FarseerPhysics.Dynamics.BeforeCollisionEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---`Field Public Instance`
+---@field OnCollision (FarseerPhysics.Dynamics.OnCollisionEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture, contact:FarseerPhysics.Dynamics.Contacts.Contact):(System.Boolean))
+---`Field Public Instance`
+---@field OnSeparation (FarseerPhysics.Dynamics.OnSeparationEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture, contact:FarseerPhysics.Dynamics.Contacts.Contact))
+---`Field Public Instance`
+---@field UserData System.Object
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Proxies (FarseerPhysics.Dynamics.FixtureProxy-arr)|(FarseerPhysics.Dynamics.FixtureProxy[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ProxyCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollisionGroup System.Int16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollidesWith FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollisionCategories FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Shape FarseerPhysics.Collision.Shapes.Shape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsSensor System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Body FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Friction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Restitution System.Single
+_G['FarseerPhysics']['Dynamics']['Fixture'] = {}
+
+---`Method Private Instance`
+_G['FarseerPhysics']['Dynamics']['Fixture'].Refilter = function() end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+_G['FarseerPhysics']['Dynamics']['Fixture'].TouchProxies = function(broadPhase) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['Fixture'].TestPoint = function(point) end
+
+---`Method Public Instance`
+---@param output FarseerPhysics.Collision.RayCastOutput-ref
+---@param input FarseerPhysics.Collision.RayCastInput-ref
+---@param childIndex System.Int32
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['Fixture'].RayCast = function(output, input, childIndex) end
+
+---`Method Public Instance`
+---@param aabb FarseerPhysics.Collision.AABB-ref
+---@param childIndex System.Int32
+_G['FarseerPhysics']['Dynamics']['Fixture'].GetAABB = function(aabb, childIndex) end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@param xf FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Dynamics']['Fixture'].CreateProxies = function(broadPhase, xf) end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+_G['FarseerPhysics']['Dynamics']['Fixture'].DestroyProxies = function(broadPhase) end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@param transform1 FarseerPhysics.Common.Transform-ref
+---@param transform2 FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Dynamics']['Fixture'].Synchronize = function(broadPhase, transform1, transform2) end
+
+---`Method Public Instance`
+---@param body FarseerPhysics.Dynamics.Body
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].CloneOnto = function(body) end
+
+---`Method NonPublic Instance`
+---@param body FarseerPhysics.Dynamics.Body
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].CloneOnto = function(body, shape) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'] = function(shape, collisionCategory, collidesWith) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].__new = function(shape, collisionCategory, collidesWith) end
+
+---`Constructor Public Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'] = function(shape, collisionCategory, collidesWith) end
+
+---`Constructor Public Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].__new = function(shape, collisionCategory, collidesWith) end
+
diff --git a/Meta/Types/client/_00007FFD97EA5228.lua b/Meta/Types/client/_00007FFD97EA5228.lua
new file mode 100644
index 0000000..f1120c1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA5228.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.Physics : System.Object
+---`Field Public Static`
+---@field DisplayToRealWorldRatio System.Single
+---`Field Public Static`
+---@field CollisionNone FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionAll FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionWall FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionCharacter FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionPlatform FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionStairs FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionItem FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionItemBlocking FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionProjectile FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionLevel FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionRepairableWall FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field DefaultItemCollidesWith FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field DisplayToSimRation System.Single
+---`Field Public Static`
+---@field NeutralDensity System.Single
+_G['Physics'] = {}
+
+---`Method Public Static`
+---@param categoryName System.String
+---@param category FarseerPhysics.Dynamics.Category-ref
+---@return System.Boolean
+_G['Physics'].TryParseCollisionCategory = function(categoryName, category) end
+
+---`Constructor Private Static`
+---@return Barotrauma.Physics
+_G['Physics'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Physics
+_G['Physics'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA5ED0.lua b/Meta/Types/client/_00007FFD97EA5ED0.lua
new file mode 100644
index 0000000..cd53893
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA5ED0.lua
@@ -0,0 +1,386 @@
+---@meta
+---@class Barotrauma.PhysicsBody : System.Object
+---`Field NonPublic Instance`
+---@field prevPosition Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field prevRotation System.Single
+---`Field NonPublic Instance`
+---@field targetPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field NonPublic Instance`
+---@field targetRotation System.Nullable*1System*Single
+---`Field Private Instance`
+---@field drawPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field drawRotation System.Single
+---`Field Private Instance`
+---@field bodyShape Barotrauma.PhysicsBody.Shape
+---`Field Private Instance`
+---@field density System.Single
+---`Field Private Instance`
+---@field dir System.Single
+---`Field Private Instance`
+---@field drawOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field rotationOffset System.Single
+---`Field Private Instance`
+---@field lastProcessedNetworkState System.Single
+---`Field Public Instance`
+---@field PositionSmoothingFactor System.Nullable*1System*Single
+---`Field Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Field Private Instance`
+---@field isEnabled System.Boolean
+---`Field Private Instance`
+---@field isPhysEnabled System.Boolean
+---`Field Private Instance`
+---@field _collisionCategories FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field _collidesWith FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field _suppressSmoothRotationCalls System.Boolean
+---`Field Private Instance`
+---@field smoothRotationSuppressionCounter System.Int32
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*PhysicsBody)|(Barotrauma.PhysicsBody[])
+---`Field Public Static`
+---@field MinDensity System.Single
+---`Field Public Static`
+---@field DefaultAngularDamping System.Single
+---`Getter Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*PhysicsBody)|(Barotrauma.PhysicsBody[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastSentPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Height System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Width System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Radius System.Single
+---`Getter Public Instance`
+---@field BodyShape Barotrauma.PhysicsBody.Shape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetRotation System.Nullable*1System*Single
+---`Getter Public Instance`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DrawRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Dir System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PhysEnabled System.Boolean
+---`Getter Public Instance`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DrawPositionOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field PrevPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---@field TransformedRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinearVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AngularVelocity System.Single
+---`Getter Public Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---@field Density System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FarseerBody FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UserData System.Object
+---
`Setter Public Instance`
+---@field Friction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyType FarseerPhysics.BodyType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollisionCategories FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollidesWith FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SuppressSmoothRotationCalls System.Boolean
+_G['PhysicsBody'] = {}
+
+---`Method Public Instance`
+---@param interpolate? System.Boolean
+_G['PhysicsBody'].UpdateDrawPosition = function(interpolate) end
+
+---`Method Public Instance`
+---@param positionBuffer (System.Collections.Generic.List*1Barotrauma*PhysicsBody*T)|(Barotrauma.PhysicsBody.T[])
+---@param newPosition Microsoft.Xna.Framework.Vector2-ref
+---@param newVelocity Microsoft.Xna.Framework.Vector2-ref
+---@param newRotation System.Single-ref
+---@param newAngularVelocity System.Single-ref
+_G['PhysicsBody'].CorrectPosition = function(positionBuffer, newPosition, newVelocity, newRotation, newAngularVelocity) end
+
+---`Method Public Instance`
+---@param targetRotation System.Single
+---@param force? System.Single
+---@param wrapAngle? System.Boolean
+_G['PhysicsBody'].SmoothRotate = function(targetRotation, force, wrapAngle) end
+
+---`Method Public Instance`
+---@param angle System.Single
+---@return System.Single
+_G['PhysicsBody'].WrapAngleToSameNumberOfRevolutions = function(angle) end
+
+---`Method Public Instance`
+_G['PhysicsBody'].Remove = function() end
+
+---`Method Public Static`
+_G['PhysicsBody'].RemoveAll = function() end
+
+---`Method Public Static`
+---@param radius System.Single
+---@param height System.Single
+---@param width System.Single
+---@return System.Boolean
+_G['PhysicsBody'].IsValidShape = function(radius, height, width) end
+
+---`Method Public Static`
+---@param radius System.Single
+---@param width System.Single
+---@param height System.Single
+---@return Barotrauma.PhysicsBody.Shape
+_G['PhysicsBody'].DefineBodyShape = function(radius, width, height) end
+
+---`Method Public Instance`
+---@overload fun(deformSprite:Barotrauma.DeformableSprite, cam:Barotrauma.Camera, scale:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, invert?:System.Boolean)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param sprite Barotrauma.Sprite
+---@param color Microsoft.Xna.Framework.Color
+---@param depth? System.Nullable*1System*Single
+---@param scale? System.Single
+---@param mirrorX? System.Boolean
+---@param mirrorY? System.Boolean
+---@param origin? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['PhysicsBody'].Draw = function(spriteBatch, sprite, color, depth, scale, mirrorX, mirrorY, origin) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param color Microsoft.Xna.Framework.Color
+---@param forceColor? System.Boolean
+_G['PhysicsBody'].DebugDraw = function(spriteBatch, color, forceColor) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+---@param parentDebugName System.String
+---@return Barotrauma.PosInfo
+_G['PhysicsBody'].ClientRead = function(msg, sendingTime, parentDebugName) end
+
+---`Method Public Instance`
+---@param rotation System.Single
+---@return System.Single
+_G['PhysicsBody'].TransformRotation = function(rotation) end
+
+---`Method Public Static`
+---@param rot System.Single
+---@param dir System.Single
+---@return System.Single
+_G['PhysicsBody'].TransformRotation = function(rot, dir) end
+
+---`Method Private Instance`
+---@param width System.Single
+---@param height System.Single
+---@param radius System.Single
+---@param density System.Single
+---@param bodyType FarseerPhysics.BodyType
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+_G['PhysicsBody'].CreateBody = function(width, height, radius, density, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param spritesheetRotation? System.Nullable*1System*Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].GetLocalFront = function(spritesheetRotation) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['PhysicsBody'].GetMaxExtent = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].GetSize = function() end
+
+---`Method Public Instance`
+---@param size Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].SetSize = function(size) end
+
+---`Method Public Instance`
+---@param value System.Single
+---@param valueName System.String
+---@param minValue? System.Single
+---@param maxValue? System.Single
+---@return System.Boolean
+_G['PhysicsBody'].IsValidValue = function(value, valueName, minValue, maxValue) end
+
+---`Method Private Instance`
+---@param value Microsoft.Xna.Framework.Vector2
+---@param valueName System.String
+---@param minValue? System.Single
+---@param maxValue? System.Single
+---@return System.Boolean
+_G['PhysicsBody'].IsValidValue = function(value, valueName, minValue, maxValue) end
+
+---`Method Public Instance`
+_G['PhysicsBody'].ResetDynamics = function() end
+
+---`Method Public Instance`
+---@overload fun(impulse:Microsoft.Xna.Framework.Vector2)
+---@overload fun(impulse:Microsoft.Xna.Framework.Vector2, maxVelocity:System.Single)
+---@overload fun(impulse:Microsoft.Xna.Framework.Vector2, point:Microsoft.Xna.Framework.Vector2)
+---@param impulse Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@param maxVelocity System.Single
+_G['PhysicsBody'].ApplyLinearImpulse = function(impulse, point, maxVelocity) end
+
+---`Method Public Instance`
+---@overload fun(force:Microsoft.Xna.Framework.Vector2, maxVelocity?:System.Single)
+---@param force Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].ApplyForce = function(force, point) end
+
+---`Method Public Instance`
+---@param torque System.Single
+_G['PhysicsBody'].ApplyTorque = function(torque) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param setPrevTransform? System.Boolean
+---@return System.Boolean
+_G['PhysicsBody'].SetTransform = function(simPosition, rotation, setPrevTransform) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param setPrevTransform? System.Boolean
+---@return System.Boolean
+_G['PhysicsBody'].SetTransformIgnoreContacts = function(simPosition, rotation, setPrevTransform) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+_G['PhysicsBody'].SetPrevTransform = function(simPosition, rotation) end
+
+---`Method Public Instance`
+---@param lerp? System.Boolean
+_G['PhysicsBody'].MoveToTargetPosition = function(lerp) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param force System.Single
+---@param pullPos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['PhysicsBody'].MoveToPos = function(simPosition, force, pullPos) end
+
+---`Method Public Instance`
+_G['PhysicsBody'].ApplyWaterForces = function() end
+
+---`Method Public Instance`
+_G['PhysicsBody'].Update = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'] = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'].__new = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'] = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'].__new = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
diff --git a/Meta/Types/client/_00007FFD97EA63A0.lua b/Meta/Types/client/_00007FFD97EA63A0.lua
new file mode 100644
index 0000000..920119b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA63A0.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Voronoi2.DoubleVector2 : System.Object
+---`Field Public Instance`
+---@field X System.Double
+---`Field Public Instance`
+---@field Y System.Double
+_G['Voronoi2']['DoubleVector2'] = {}
+
+---`Method Public Instance`
+---@param x System.Double
+---@param y System.Double
+_G['Voronoi2']['DoubleVector2'].SetPoint = function(x, y) end
+
+---`Method Public Instance`
+_G['Voronoi2']['DoubleVector2'].Normalize = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Voronoi2.DoubleVector2
+---@param x System.Double
+---@param y System.Double
+---@return Voronoi2.DoubleVector2
+_G['Voronoi2']['DoubleVector2'] = function(x, y) end
+
+---`Constructor Public Instance`
+---@overload fun():Voronoi2.DoubleVector2
+---@param x System.Double
+---@param y System.Double
+---@return Voronoi2.DoubleVector2
+_G['Voronoi2']['DoubleVector2'].__new = function(x, y) end
+
diff --git a/Meta/Types/client/_00007FFD97EA6510.lua b/Meta/Types/client/_00007FFD97EA6510.lua
new file mode 100644
index 0000000..814d42b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA6510.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Voronoi2.Site : System.Object
+---`Field Public Instance`
+---@field Coord Voronoi2.DoubleVector2
+---`Field Public Instance`
+---@field SiteNbr System.Int32
+_G['Voronoi2']['Site'] = {}
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['Site'].SetPoint = function(point) end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Site
+_G['Voronoi2']['Site'] = function() end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Site
+_G['Voronoi2']['Site'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA66A8.lua b/Meta/Types/client/_00007FFD97EA66A8.lua
new file mode 100644
index 0000000..85dc6e2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA66A8.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Voronoi2.Edge : System.Object
+---`Field Public Instance`
+---@field a System.Double
+---`Field Public Instance`
+---@field b System.Double
+---`Field Public Instance`
+---@field c System.Double
+---`Field Public Instance`
+---@field ep (Voronoi2.Site-arr)|(Voronoi2.Site[])
+---`Field Public Instance`
+---@field reg (Voronoi2.Site-arr)|(Voronoi2.Site[])
+---`Field Public Instance`
+---@field edgenbr System.Int32
+_G['Voronoi2']['Edge'] = {}
+
+---`Constructor Public Instance`
+---@return Voronoi2.Edge
+_G['Voronoi2']['Edge'] = function() end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Edge
+_G['Voronoi2']['Edge'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA6860.lua b/Meta/Types/client/_00007FFD97EA6860.lua
new file mode 100644
index 0000000..84d7079
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA6860.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Voronoi2.Halfedge : System.Object
+---`Field Public Instance`
+---@field ELleft Voronoi2.Halfedge
+---`Field Public Instance`
+---@field ELright Voronoi2.Halfedge
+---`Field Public Instance`
+---@field ELedge Voronoi2.Edge
+---`Field Public Instance`
+---@field deleted System.Boolean
+---`Field Public Instance`
+---@field ELpm System.Int32
+---`Field Public Instance`
+---@field vertex Voronoi2.Site
+---`Field Public Instance`
+---@field ystar System.Double
+---`Field Public Instance`
+---@field PQnext Voronoi2.Halfedge
+_G['Voronoi2']['Halfedge'] = {}
+
+---`Constructor Public Instance`
+---@return Voronoi2.Halfedge
+_G['Voronoi2']['Halfedge'] = function() end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Halfedge
+_G['Voronoi2']['Halfedge'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA6BF0.lua b/Meta/Types/client/_00007FFD97EA6BF0.lua
new file mode 100644
index 0000000..c1cfdbf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA6BF0.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Voronoi2.VoronoiCell : System.Object
+---`Field Public Instance`
+---@field Edges (System.Collections.Generic.List*1Voronoi2*GraphEdge)|(Voronoi2.GraphEdge[])
+---`Field Public Instance`
+---@field Site Voronoi2.Site
+---`Field Public Instance`
+---@field BodyVertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Public Instance`
+---@field Body FarseerPhysics.Dynamics.Body
+---`Field Public Instance`
+---@field CellType Voronoi2.CellType
+---`Field Public Instance`
+---@field Translation Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Island System.Boolean
+---`Field Public Instance`
+---@field IsDestructible System.Boolean
+---`Field Public Instance`
+---@field DoesDamage System.Boolean
+---`Field Public Instance`
+---@field OnDestroyed (System.Action)|(fun())
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['VoronoiCell'] = {}
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Voronoi2']['VoronoiCell'].IsPointInside = function(point) end
+
+---`Method Public Instance`
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param margin System.Single
+---@return System.Boolean
+_G['Voronoi2']['VoronoiCell'].IsPointInsideAABB = function(point2, margin) end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])):Voronoi2.VoronoiCell
+---@param site Voronoi2.Site
+---@return Voronoi2.VoronoiCell
+_G['Voronoi2']['VoronoiCell'] = function(site) end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])):Voronoi2.VoronoiCell
+---@param site Voronoi2.Site
+---@return Voronoi2.VoronoiCell
+_G['Voronoi2']['VoronoiCell'].__new = function(site) end
+
diff --git a/Meta/Types/client/_00007FFD97EA6E38.lua b/Meta/Types/client/_00007FFD97EA6E38.lua
new file mode 100644
index 0000000..064943a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA6E38.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Voronoi2.GraphEdge : System.Object
+---`Field Public Instance`
+---@field Point1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Point2 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Site1 Voronoi2.Site
+---`Field Public Instance`
+---@field Site2 Voronoi2.Site
+---`Field Public Instance`
+---@field Cell1 Voronoi2.VoronoiCell
+---`Field Public Instance`
+---@field Cell2 Voronoi2.VoronoiCell
+---`Field Public Instance`
+---@field IsSolid System.Boolean
+---`Field Public Instance`
+---@field OutsideLevel System.Boolean
+---`Field Public Instance`
+---@field NextToCave System.Boolean
+---`Field Public Instance`
+---@field NextToMainPath System.Boolean
+---`Field Public Instance`
+---@field NextToSidePath System.Boolean
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['GraphEdge'] = {}
+
+---`Method Public Instance`
+---@param cell Voronoi2.VoronoiCell
+---@return Voronoi2.VoronoiCell
+_G['Voronoi2']['GraphEdge'].AdjacentCell = function(cell) end
+
+---`Method Public Instance`
+---@param cell Voronoi2.VoronoiCell
+---@return Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['GraphEdge'].GetNormal = function(cell) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Voronoi2']['GraphEdge'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return Voronoi2.GraphEdge
+_G['Voronoi2']['GraphEdge'] = function(point1, point2) end
+
+---`Constructor Public Instance`
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return Voronoi2.GraphEdge
+_G['Voronoi2']['GraphEdge'].__new = function(point1, point2) end
+
diff --git a/Meta/Types/client/_00007FFD97EA70F0.lua b/Meta/Types/client/_00007FFD97EA70F0.lua
new file mode 100644
index 0000000..8db81e6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA70F0.lua
@@ -0,0 +1,61 @@
+---@meta
+---@class Barotrauma.SpriteSheet : Barotrauma.Sprite
+---`Field Private Instance`
+---@field sourceRects (Microsoft.Xna.Framework.Rectangle-arr)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Instance`
+---@field emptyFrames System.Int32
+---`Getter Public Instance`
+---@field FrameCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FrameSize Microsoft.Xna.Framework.Point
+_G['SpriteSheet'] = {}
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate System.Single
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param spriteEffect? Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param depth? System.Nullable*1System*Single
+_G['SpriteSheet'].Draw = function(spriteBatch, pos, color, origin, rotate, scale, spriteEffect, depth) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param spriteIndex System.Int32
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate System.Single
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param spriteEffect? Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param depth? System.Nullable*1System*Single
+_G['SpriteSheet'].Draw = function(spriteBatch, spriteIndex, pos, color, origin, rotate, scale, spriteEffect, depth) end
+
+---`Method Private Instance`
+---@param columnCount System.Int32
+---@param rowCount System.Int32
+_G['SpriteSheet'].Init = function(columnCount, rowCount) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String):Barotrauma.SpriteSheet
+---@param filePath System.String
+---@param columnCount System.Int32
+---@param rowCount System.Int32
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param sourceRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.SpriteSheet
+_G['SpriteSheet'] = function(filePath, columnCount, rowCount, origin, sourceRect) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String):Barotrauma.SpriteSheet
+---@param filePath System.String
+---@param columnCount System.Int32
+---@param rowCount System.Int32
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param sourceRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.SpriteSheet
+_G['SpriteSheet'].__new = function(filePath, columnCount, rowCount, origin, sourceRect) end
+
diff --git a/Meta/Types/client/_00007FFD97EA73B0.lua b/Meta/Types/client/_00007FFD97EA73B0.lua
new file mode 100644
index 0000000..e92d5f2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA73B0.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.ConditionalSprite : System.Object
+---`Field Public Instance`
+---@field conditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Field Public Instance`
+---@field LogicalOperator Barotrauma.PropertyConditional.LogicalOperatorType
+---`Field Public Instance`
+---@field Exclusive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Target Barotrauma.ISerializableEntity
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeformableSprite Barotrauma.DeformableSprite
+---`Getter Public Instance`
+---@field ActiveSprite Barotrauma.Sprite
+_G['ConditionalSprite'] = {}
+
+---`Method Public Instance`
+_G['ConditionalSprite'].Remove = function() end
+
+---`Method Public Instance`
+_G['ConditionalSprite'].CheckConditionals = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param target Barotrauma.ISerializableEntity
+---@param file? System.String
+---@param lazyLoad? System.Boolean
+---@param sourceRectScale? System.Single
+---@return Barotrauma.ConditionalSprite
+_G['ConditionalSprite'] = function(element, target, file, lazyLoad, sourceRectScale) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param target Barotrauma.ISerializableEntity
+---@param file? System.String
+---@param lazyLoad? System.Boolean
+---@param sourceRectScale? System.Single
+---@return Barotrauma.ConditionalSprite
+_G['ConditionalSprite'].__new = function(element, target, file, lazyLoad, sourceRectScale) end
+
diff --git a/Meta/Types/client/_00007FFD97EA74B0.lua b/Meta/Types/client/_00007FFD97EA74B0.lua
new file mode 100644
index 0000000..dcb16d4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA74B0.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.WearableType : System.Enum
+---`Field Public Static`
+---@field Item Barotrauma.WearableType
+---`Field Public Static`
+---@field Hair Barotrauma.WearableType
+---`Field Public Static`
+---@field Beard Barotrauma.WearableType
+---`Field Public Static`
+---@field Moustache Barotrauma.WearableType
+---`Field Public Static`
+---@field FaceAttachment Barotrauma.WearableType
+---`Field Public Static`
+---@field Husk Barotrauma.WearableType
+---`Field Public Static`
+---@field Herpes Barotrauma.WearableType
+_G['WearableType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EA8180.lua b/Meta/Types/client/_00007FFD97EA8180.lua
new file mode 100644
index 0000000..ce38788
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA8180.lua
@@ -0,0 +1,133 @@
+---@meta
+---@class Barotrauma.WearableSprite : System.Object
+---`Field Private Instance`
+---@field _sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field _wearableComponent Barotrauma.Items.Components.Wearable
+---`Field Private Instance`
+---@field _lightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Field Private Instance`
+---@field _picker Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnassignedSpritePath Barotrauma.ContentPath
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpritePath System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SourceElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Type Barotrauma.WearableType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Limb Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HideLimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ObscureOtherWearables Barotrauma.WearableSprite.ObscuringMode
+---`Getter Public Instance`
+---@field HideOtherWearables System.Boolean
+---`Getter Public Instance`
+---@field AlphaClipOtherWearables System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanBeHiddenByOtherWearables System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanBeHiddenByItem (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HideWearablesOfType (System.Collections.Generic.List*1Barotrauma*WearableType)|(Barotrauma.WearableType[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritLimbDepth System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreRagdollScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreLimbScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreTextureScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritOrigin System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritSourceRect System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DepthLimb Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WearableComponent Barotrauma.Items.Components.Wearable
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sound System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SheetIndex System.Nullable*1Microsoft*Xna*Framework*Point
+---`Getter Public Instance`
+---@field LightComponent Barotrauma.Items.Components.LightComponent
+---`Getter Public Instance`
+---@field LightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Variant System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Picker Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsInitialized System.Boolean
+_G['WearableSprite'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.ContentPath
+_G['WearableSprite'].ParseSpritePath = function(element) end
+
+---`Method Public Instance`
+---@param parseSpritePath System.Boolean
+_G['WearableSprite'].ParsePath = function(parseSpritePath) end
+
+---`Method Public Instance`
+---@param picker? Barotrauma.Character
+_G['WearableSprite'].Init = function(picker) end
+
+---`Method Public Instance`
+_G['WearableSprite'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(subElement:Barotrauma.ContentXElement, type:Barotrauma.WearableType):Barotrauma.WearableSprite
+---@param subElement Barotrauma.ContentXElement
+---@param wearable Barotrauma.Items.Components.Wearable
+---@param variant? System.Int32
+---@return Barotrauma.WearableSprite
+_G['WearableSprite'] = function(subElement, wearable, variant) end
+
+---`Constructor Public Instance`
+---@overload fun(subElement:Barotrauma.ContentXElement, type:Barotrauma.WearableType):Barotrauma.WearableSprite
+---@param subElement Barotrauma.ContentXElement
+---@param wearable Barotrauma.Items.Components.Wearable
+---@param variant? System.Int32
+---@return Barotrauma.WearableSprite
+_G['WearableSprite'].__new = function(subElement, wearable, variant) end
+
diff --git a/Meta/Types/client/_00007FFD97EA85F0.lua b/Meta/Types/client/_00007FFD97EA85F0.lua
new file mode 100644
index 0000000..ed179d9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA85F0.lua
@@ -0,0 +1,130 @@
+---@meta
+---@class Barotrauma.DeformableSprite : System.Object
+---`Field Private Instance`
+---@field initialized System.Boolean
+---`Field Private Instance`
+---@field triangleCount System.Int32
+---`Field Private Instance`
+---@field vertexBuffer Microsoft.Xna.Framework.Graphics.VertexBuffer
+---`Field Private Instance`
+---@field flippedVertexBuffer Microsoft.Xna.Framework.Graphics.VertexBuffer
+---`Field Private Instance`
+---@field indexBuffer Microsoft.Xna.Framework.Graphics.IndexBuffer
+---`Field Private Instance`
+---@field uvTopLeft Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field uvBottomRight Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field uvTopLeftFlipped Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field uvBottomRightFlipped Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field deformAmount (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field deformArrayWidth System.Int32
+---`Field Private Instance`
+---@field deformArrayHeight System.Int32
+---`Field Private Instance`
+---@field subDivX System.Int32
+---`Field Private Instance`
+---@field subDivY System.Int32
+---`Field Private Instance`
+---@field spritePos Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field spriteSize Microsoft.Xna.Framework.Point
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*DeformableSprite)|(Barotrauma.DeformableSprite[])
+---`Field Private Static`
+---@field effect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Static`
+---@field Effect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Invert System.Boolean
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+_G['DeformableSprite'] = {}
+
+---`Method Public Instance`
+_G['DeformableSprite'].EnsureLazyLoaded = function() end
+
+---`Method Private Instance`
+_G['DeformableSprite'].Init = function() end
+
+---`Method Private Instance`
+_G['DeformableSprite'].SetupVertexBuffers = function() end
+
+---`Method Private Instance`
+_G['DeformableSprite'].SetupIndexBuffer = function() end
+
+---`Method Public Instance`
+---@overload fun(deformFunction:(System.Func*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2)|(fun(arg:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)))
+---@param deform (Microsoft.Xna.Framework.Vector2[,])|(Microsoft.Xna.Framework.Vector2[])
+_G['DeformableSprite'].Deform = function(deform) end
+
+---`Method Public Instance`
+_G['DeformableSprite'].Reset = function() end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector3
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate System.Single
+---@param scale Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Matrix
+_G['DeformableSprite'].GetTransform = function(pos, origin, rotate, scale) end
+
+---`Method Public Instance`
+---@param cam Barotrauma.Camera
+---@param pos Microsoft.Xna.Framework.Vector3
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate System.Single
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param mirror? System.Boolean
+---@param invert? System.Boolean
+_G['DeformableSprite'].Draw = function(cam, pos, origin, rotate, scale, color, mirror, invert) end
+
+---`Method Public Instance`
+_G['DeformableSprite'].Remove = function() end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+---@param deformations (System.Collections.Generic.List*1Barotrauma*SpriteDeformations*SpriteDeformation)|(Barotrauma.SpriteDeformations.SpriteDeformation[])
+---@param parentDebugName System.String
+---@return Barotrauma.GUIComponent
+_G['DeformableSprite'].CreateEditor = function(parent, deformations, parentDebugName) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param subdivisionsX System.Nullable*1System*Int32
+---@param subdivisionsY System.Nullable*1System*Int32
+---@param lazyLoad System.Boolean
+---@param invert System.Boolean
+_G['DeformableSprite'].InitProjSpecific = function(element, subdivisionsX, subdivisionsY, lazyLoad, invert) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, subdivisionsX?:System.Nullable*1System*Int32, subdivisionsY?:System.Nullable*1System*Int32, filePath?:System.String, lazyLoad?:System.Boolean, invert?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.DeformableSprite
+---@return Barotrauma.DeformableSprite
+_G['DeformableSprite'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, subdivisionsX?:System.Nullable*1System*Int32, subdivisionsY?:System.Nullable*1System*Int32, filePath?:System.String, lazyLoad?:System.Boolean, invert?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.DeformableSprite
+---@return Barotrauma.DeformableSprite
+_G['DeformableSprite'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, subdivisionsX?:System.Nullable*1System*Int32, subdivisionsY?:System.Nullable*1System*Int32, filePath?:System.String, lazyLoad?:System.Boolean, invert?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.DeformableSprite
+---@return Barotrauma.DeformableSprite
+_G['DeformableSprite'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, subdivisionsX?:System.Nullable*1System*Int32, subdivisionsY?:System.Nullable*1System*Int32, filePath?:System.String, lazyLoad?:System.Boolean, invert?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.DeformableSprite
+---@return Barotrauma.DeformableSprite
+_G['DeformableSprite'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA87F0.lua b/Meta/Types/client/_00007FFD97EA87F0.lua
new file mode 100644
index 0000000..541b028
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA87F0.lua
@@ -0,0 +1,51 @@
+---@meta
+---@class Barotrauma.TextureLoader : System.Object
+---`Field Private Static`
+---@field cancelAll System.Boolean
+---`Field Private Static`
+---@field _graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PlaceHolderTexture Microsoft.Xna.Framework.Graphics.Texture2D
+_G['TextureLoader'] = {}
+
+---`Method Public Static`
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param needsBmp? System.Boolean
+_G['TextureLoader'].Init = function(graphicsDevice, needsBmp) end
+
+---`Method Public Static`
+_G['TextureLoader'].CancelAll = function() end
+
+---`Method Private Static`
+---@param data (System.Byte-arr)|(System.Byte[])
+---@param width System.Int32
+---@param height System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['TextureLoader'].CompressDxt5 = function(data, width, height) end
+
+---`Method Private Static`
+---@param data (System.Byte-arr)|(System.Byte[])
+---@param inputOffset System.Int32
+---@param width System.Int32
+---@param output (System.Byte-arr)|(System.Byte[])
+---@param outputOffset System.Int32
+_G['TextureLoader'].CompressDxt5Block = function(data, inputOffset, width, output, outputOffset) end
+
+---`Method Public Static`
+---@param path System.String
+---@param compress? System.Boolean
+---@param mipmap? System.Boolean
+---@param contentPackage? Barotrauma.ContentPackage
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['TextureLoader'].FromFile = function(path, compress, mipmap, contentPackage) end
+
+---`Method Public Static`
+---@param stream System.IO.Stream
+---@param path? System.String
+---@param compress? System.Boolean
+---@param mipmap? System.Boolean
+---@param contentPackage? Barotrauma.ContentPackage
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['TextureLoader'].FromStream = function(stream, path, compress, mipmap, contentPackage) end
+
diff --git a/Meta/Types/client/_00007FFD97EA8A58.lua b/Meta/Types/client/_00007FFD97EA8A58.lua
new file mode 100644
index 0000000..52b4ce4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA8A58.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.SpriteRecorder : System.Object
+---`Field Private Instance`
+---@field recordedBuffers (System.Collections.Generic.List*1Barotrauma*SpriteRecorder*RecordedBuffer)|(Barotrauma.SpriteRecorder.RecordedBuffer[])
+---`Field Private Instance`
+---@field commandList (System.Collections.Generic.List*1Barotrauma*SpriteRecorder*Command)|(Barotrauma.SpriteRecorder.Command[])
+---`Field Private Instance`
+---@field currentSortMode Microsoft.Xna.Framework.Graphics.SpriteSortMode
+---`Field Private Instance`
+---@field indexBuffer Microsoft.Xna.Framework.Graphics.IndexBuffer
+---`Field Private Instance`
+---@field maxSpriteCount System.Int32
+---`Field Public Instance`
+---@field ReadyToRender System.Boolean
+---`Field Private Instance`
+---@field isDisposed System.Boolean
+---`Field Public Static`
+---@field BasicEffect Microsoft.Xna.Framework.Graphics.BasicEffect
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Min Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Max Microsoft.Xna.Framework.Vector2
+_G['SpriteRecorder'] = {}
+
+---`Method Public Instance`
+---@param sortMode Microsoft.Xna.Framework.Graphics.SpriteSortMode
+_G['SpriteRecorder'].Begin = function(sortMode) end
+
+---`Method Private Instance`
+---@param command Barotrauma.SpriteRecorder.Command
+_G['SpriteRecorder'].AppendCommand = function(command) end
+
+---`Method Public Instance Virtual`
+---@overload fun(texture:Microsoft.Xna.Framework.Graphics.Texture2D, pos:Microsoft.Xna.Framework.Vector2, srcRect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, color:Microsoft.Xna.Framework.Color, rotationRad:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:Microsoft.Xna.Framework.Vector2, effects:Microsoft.Xna.Framework.Graphics.SpriteEffects, depth:System.Single)
+---@param texture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param vertices (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---@param layerDepth System.Single
+---@param count? System.Nullable*1System*Int32
+_G['SpriteRecorder'].Draw = function(texture, vertices, layerDepth, count) end
+
+---`Method Public Instance`
+_G['SpriteRecorder'].End = function() end
+
+---`Method Public Instance`
+---@param cam Barotrauma.Camera
+_G['SpriteRecorder'].Render = function(cam) end
+
+---`Method Public Instance Virtual`
+_G['SpriteRecorder'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.SpriteRecorder
+_G['SpriteRecorder'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.SpriteRecorder
+_G['SpriteRecorder'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EA8DB0.lua b/Meta/Types/client/_00007FFD97EA8DB0.lua
new file mode 100644
index 0000000..492300c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA8DB0.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.VineSprite : System.Object
+---`Field Public Instance`
+---@field AbsoluteOrigin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SourceRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+_G['Components']['VineSprite'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.VineSprite
+_G['Components']['VineSprite'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.VineSprite
+_G['Components']['VineSprite'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97EA9080.lua b/Meta/Types/client/_00007FFD97EA9080.lua
new file mode 100644
index 0000000..4801509
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA9080.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.SwappableItem : System.Object
+---`Field Public Instance`
+---@field CanBeBought System.Boolean
+---`Field Public Instance`
+---@field ReplacementOnUninstall Barotrauma.Identifier
+---`Field Public Instance`
+---@field SpawnWithId System.String
+---`Field Public Instance`
+---@field SwapIdentifier System.String
+---`Field Public Instance`
+---@field SwapOrigin Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ConnectedItemsToSwap (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Field Public Instance`
+---@field SchematicSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field BasePrice System.Int32
+_G['SwappableItem'] = {}
+
+---`Method Public Instance`
+---@param location? Barotrauma.Location
+---@return System.Int32
+_G['SwappableItem'].GetPrice = function(location) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SwappableItem
+_G['SwappableItem'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SwappableItem
+_G['SwappableItem'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97EA9338.lua b/Meta/Types/client/_00007FFD97EA9338.lua
new file mode 100644
index 0000000..ec89a14
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA9338.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.FabricationRecipe : System.Object
+---`Field Public Instance`
+---@field TargetItemPrefabIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field displayName System.Lazy*1Barotrauma*LocalizedString
+---`Field Public Instance`
+---@field RequiredItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*FabricationRecipe*RequiredItem)|(Barotrauma.FabricationRecipe.RequiredItem[])
+---`Field Public Instance`
+---@field SuitableFabricatorIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredTime System.Single
+---`Field Public Instance`
+---@field RequiredMoney System.Int32
+---`Field Public Instance`
+---@field RequiresRecipe System.Boolean
+---`Field Public Instance`
+---@field OutCondition System.Single
+---`Field Public Instance`
+---@field RequiredSkills (System.Collections.Immutable.ImmutableArray*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---`Field Public Instance`
+---@field RecipeHash System.UInt32
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field Quality System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field HideForNonTraitors System.Boolean
+---`Field Public Instance`
+---@field FabricationLimitMin System.Int32
+---`Field Public Instance`
+---@field FabricationLimitMax System.Int32
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+_G['FabricationRecipe'] = {}
+
+---`Method Private Instance`
+---@return System.UInt32
+_G['FabricationRecipe'].GenerateHash = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param itemPrefab Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe
+_G['FabricationRecipe'] = function(element, itemPrefab) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param itemPrefab Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe
+_G['FabricationRecipe'].__new = function(element, itemPrefab) end
+
diff --git a/Meta/Types/client/_00007FFD97EA9508.lua b/Meta/Types/client/_00007FFD97EA9508.lua
new file mode 100644
index 0000000..6ec3923
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EA9508.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.FabricationRecipe.RequiredItem : System.Object
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field MinCondition System.Single
+---`Field Public Instance`
+---@field MaxCondition System.Single
+---`Field Public Instance`
+---@field UseCondition System.Boolean
+---`Field Public Instance`
+---@field DefaultItem Barotrauma.Identifier
+---`Getter Public Instance Abstract Virtual`
+---@field ItemPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Public Instance Abstract Virtual`
+---@field UintIdentifier System.UInt32
+---`Getter Public Instance Abstract Virtual`
+---@field FirstMatchingPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field OverrideHeader Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field OverrideDescription Barotrauma.LocalizedString
+_G['FabricationRecipe']['RequiredItem'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItem'].MatchesItem = function(item) end
+
+---`Method Public Instance`
+---@param conditionPercentage System.Single
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItem'].IsConditionSuitable = function(conditionPercentage) end
+
+---`Constructor Public Instance`
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItem
+_G['FabricationRecipe']['RequiredItem'] = function(amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
+---`Constructor Public Instance`
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItem
+_G['FabricationRecipe']['RequiredItem'].__new = function(amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
diff --git a/Meta/Types/client/_00007FFD97EAA590.lua b/Meta/Types/client/_00007FFD97EAA590.lua
new file mode 100644
index 0000000..3c3197b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAA590.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.FabricationRecipe.RequiredItemByIdentifier : Barotrauma.FabricationRecipe.RequiredItem
+---`Field Public Instance`
+---@field ItemPrefabIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field ItemPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance Virtual`
+---@field UintIdentifier System.UInt32
+---`Getter Public Instance Virtual`
+---@field ItemPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Public Instance Virtual`
+---@field FirstMatchingPrefab Barotrauma.ItemPrefab
+_G['FabricationRecipe']['RequiredItemByIdentifier'] = {}
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItemByIdentifier'].MatchesItem = function(item) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['FabricationRecipe']['RequiredItemByIdentifier'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@return Barotrauma.FabricationRecipe.RequiredItemByIdentifier
+_G['FabricationRecipe']['RequiredItemByIdentifier'] = function(itemPrefab, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader) end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@return Barotrauma.FabricationRecipe.RequiredItemByIdentifier
+_G['FabricationRecipe']['RequiredItemByIdentifier'].__new = function(itemPrefab, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader) end
+
diff --git a/Meta/Types/client/_00007FFD97EAA7C8.lua b/Meta/Types/client/_00007FFD97EAA7C8.lua
new file mode 100644
index 0000000..12861b5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAA7C8.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.FabricationRecipe.RequiredItemByTag : Barotrauma.FabricationRecipe.RequiredItem
+---`Field Public Instance`
+---@field Tag Barotrauma.Identifier
+---`Field Private Instance`
+---@field cachedPrefabs (System.Collections.Generic.List*1Barotrauma*ItemPrefab)|(Barotrauma.ItemPrefab[])
+---`Field Private Instance`
+---@field prevContentPackagesHash Barotrauma.Md5Hash
+---`Getter Public Instance Virtual`
+---@field UintIdentifier System.UInt32
+---`Getter Public Instance Virtual`
+---@field ItemPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Public Instance Virtual`
+---@field FirstMatchingPrefab Barotrauma.ItemPrefab
+_G['FabricationRecipe']['RequiredItemByTag'] = {}
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItemByTag'].MatchesItem = function(item) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['FabricationRecipe']['RequiredItemByTag'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param tag Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItemByTag
+_G['FabricationRecipe']['RequiredItemByTag'] = function(tag, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
+---`Constructor Public Instance`
+---@param tag Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItemByTag
+_G['FabricationRecipe']['RequiredItemByTag'].__new = function(tag, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
diff --git a/Meta/Types/client/_00007FFD97EAAB18.lua b/Meta/Types/client/_00007FFD97EAAB18.lua
new file mode 100644
index 0000000..a2c259f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAAB18.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.PurchasedItem : System.Object
+---`Field Public Instance`
+---@field BuyerCharacterInfoIdentifier System.Int32
+---`Field Public Instance`
+---@field Delivered System.Boolean
+---`Getter Public Instance`
+---@field ItemPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field ItemPrefabIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Quantity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsStoreComponentEnabled System.Nullable*1System*Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeliverImmediately System.Boolean
+_G['PurchasedItem'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['PurchasedItem'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyerCharacterInfoId:System.Int32):Barotrauma.PurchasedItem
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32):Barotrauma.PurchasedItem
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyer:Barotrauma.Networking.Client):Barotrauma.PurchasedItem
+---@param itemPrefabId Barotrauma.Identifier
+---@param quantity System.Int32
+---@param buyer Barotrauma.Networking.Client
+---@return Barotrauma.PurchasedItem
+_G['PurchasedItem'] = function(itemPrefabId, quantity, buyer) end
+
+---`Constructor Public Instance`
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyerCharacterInfoId:System.Int32):Barotrauma.PurchasedItem
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32):Barotrauma.PurchasedItem
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyer:Barotrauma.Networking.Client):Barotrauma.PurchasedItem
+---@param itemPrefabId Barotrauma.Identifier
+---@param quantity System.Int32
+---@param buyer Barotrauma.Networking.Client
+---@return Barotrauma.PurchasedItem
+_G['PurchasedItem'].__new = function(itemPrefabId, quantity, buyer) end
+
diff --git a/Meta/Types/client/_00007FFD97EAAC78.lua b/Meta/Types/client/_00007FFD97EAAC78.lua
new file mode 100644
index 0000000..fb73d5f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAAC78.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.PurchasedItemSwap : System.Object
+---`Field Public Instance`
+---@field ItemToRemove Barotrauma.Item
+---`Field Public Instance`
+---@field ItemToInstall Barotrauma.ItemPrefab
+_G['PurchasedItemSwap'] = {}
+
+---`Constructor Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param itemToInstall Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItemSwap
+_G['PurchasedItemSwap'] = function(itemToRemove, itemToInstall) end
+
+---`Constructor Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param itemToInstall Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItemSwap
+_G['PurchasedItemSwap'].__new = function(itemToRemove, itemToInstall) end
+
diff --git a/Meta/Types/client/_00007FFD97EAB018.lua b/Meta/Types/client/_00007FFD97EAB018.lua
new file mode 100644
index 0000000..f4f260e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAB018.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.SoldItem : System.Object
+---`Getter Public Instance`
+---@field ItemPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ID System.UInt16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---@field SellerID System.Byte
+---`Getter Public Instance`
+---@field Origin Barotrauma.SoldItem.SellOrigin
+_G['SoldItem'] = {}
+
+---`Method Public Instance`
+---@param id System.UInt16
+_G['SoldItem'].SetItemId = function(id) end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param id System.UInt16
+---@param removed System.Boolean
+---@param sellerId System.Byte
+---@param origin Barotrauma.SoldItem.SellOrigin
+---@return Barotrauma.SoldItem
+_G['SoldItem'] = function(itemPrefab, id, removed, sellerId, origin) end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param id System.UInt16
+---@param removed System.Boolean
+---@param sellerId System.Byte
+---@param origin Barotrauma.SoldItem.SellOrigin
+---@return Barotrauma.SoldItem
+_G['SoldItem'].__new = function(itemPrefab, id, removed, sellerId, origin) end
+
diff --git a/Meta/Types/client/_00007FFD97EAB358.lua b/Meta/Types/client/_00007FFD97EAB358.lua
new file mode 100644
index 0000000..6d60999
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAB358.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.UpgradeCategory : Barotrauma.UpgradeContentPrefab
+---`Field Private Instance`
+---@field selfItemTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field prefabsThatAllowUpgrades (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field IsWallUpgrade System.Boolean
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Public Instance`
+---@field ItemTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Field Public Static`
+---@field Categories (Barotrauma.PrefabCollection*1Barotrauma*UpgradeCategory)|(fun():(Barotrauma.UpgradeCategory))
+_G['UpgradeCategory'] = {}
+
+---`Method Public Instance`
+_G['UpgradeCategory'].DeterminePrefabsThatAllowUpgrades = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.MapEntity
+---@param upgradePrefab Barotrauma.UpgradePrefab
+---@return System.Boolean
+_G['UpgradeCategory'].CanBeApplied = function(item, upgradePrefab) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'].Find = function(identifier) end
+
+---`Method Public Instance Virtual`
+_G['UpgradeCategory'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EAB4D8.lua b/Meta/Types/client/_00007FFD97EAB4D8.lua
new file mode 100644
index 0000000..a2e79ef
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAB4D8.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.UpgradePrice : System.ValueType
+---`Field Public Instance`
+---@field BasePrice System.Int32
+---`Field Public Instance`
+---@field IncreaseLow System.Int32
+---`Field Public Instance`
+---@field IncreaseHigh System.Int32
+_G['UpgradePrice'] = {}
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+---@param location? Barotrauma.Location
+---@param characterList? (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---@return System.Int32
+_G['UpgradePrice'].GetBuyPrice = function(prefab, level, location, characterList) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UpgradePrice
+_G['UpgradePrice'] = function(prefab, element) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UpgradePrice
+_G['UpgradePrice'].__new = function(prefab, element) end
+
diff --git a/Meta/Types/client/_00007FFD97EAB980.lua b/Meta/Types/client/_00007FFD97EAB980.lua
new file mode 100644
index 0000000..1783e0f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAB980.lua
@@ -0,0 +1,190 @@
+---@meta
+---@class Barotrauma.UpgradeManager : System.Object
+---`Field Private Instance`
+---@field loadedUpgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+---`Field Public Instance`
+---@field PurchasedUpgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+---`Field Public Instance`
+---@field PendingUpgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+---`Field Public Instance`
+---@field PurchasedItemSwaps (System.Collections.Generic.List*1Barotrauma*PurchasedItemSwap)|(Barotrauma.PurchasedItemSwap[])
+---`Field Private Instance`
+---@field Campaign Barotrauma.CampaignMode
+---`Field Public Instance`
+---@field OnUpgradesChanged Barotrauma.NamedEvent*1Barotrauma*UpgradeManager
+---`Field Private Instance`
+---@field lastUpgradeSpeak System.DateTime
+---`Field Private Instance`
+---@field lastErrorSpeak System.DateTime
+---`Field Private Static`
+---@field upgradedSubs (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Public Static`
+---@field UpgradeAlsoConnectedSubs System.Boolean
+---`Getter Private Instance`
+---@field Metadata Barotrauma.CampaignMetadata
+_G['UpgradeManager'] = {}
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param replacement Barotrauma.ItemPrefab
+---@return System.Int32
+_G['UpgradeManager'].DetermineItemSwapCost = function(item, replacement) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param force? System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['UpgradeManager'].PurchaseUpgrade = function(prefab, category, force, client) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level System.Int32
+_G['UpgradeManager'].AddUpgradeExternally = function(prefab, category, level) end
+
+---`Method Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param itemToInstall Barotrauma.ItemPrefab
+---@param isNetworkMessage? System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['UpgradeManager'].PurchaseItemSwap = function(itemToRemove, itemToInstall, isNetworkMessage, client) end
+
+---`Method Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param force? System.Boolean
+_G['UpgradeManager'].CancelItemSwap = function(itemToRemove, force) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return (System.Collections.Generic.ICollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['UpgradeManager'].GetLinkedItemsToSwap = function(item) end
+
+---`Method Public Instance`
+_G['UpgradeManager'].ApplyUpgrades = function() end
+
+---`Method Public Instance`
+---@param text System.String
+---@param isSinglePlayer System.Boolean
+---@param character Barotrauma.Character
+_G['UpgradeManager'].CreateUpgradeErrorMessage = function(text, isSinglePlayer, character) end
+
+---`Method Private Instance`
+---@param text System.String
+---@param isSinglePlayer System.Boolean
+---@param character? Barotrauma.Character
+_G['UpgradeManager'].UpgradeNPCSpeak = function(text, isSinglePlayer, character) end
+
+---`Method Public Instance`
+_G['UpgradeManager'].SanityCheckUpgrades = function() end
+
+---`Method Private Static`
+---@param target Barotrauma.ISerializableEntity
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+_G['UpgradeManager'].FixUpgradeOnItem = function(target, prefab, level) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param submarine Barotrauma.Submarine
+---@param level? System.Int32
+---@param parentSub? Barotrauma.Submarine
+---@return System.Int32
+_G['UpgradeManager'].BuyUpgrade = function(prefab, category, submarine, level, parentSub) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param info? Barotrauma.SubmarineInfo
+---@return System.Int32
+_G['UpgradeManager'].GetUpgradeLevel = function(prefab, category, info) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@return System.Int32
+_G['UpgradeManager'].GetRealUpgradeLevel = function(prefab, category) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param info Barotrauma.SubmarineInfo
+---@return System.Int32
+_G['UpgradeManager'].GetRealUpgradeLevelForSub = function(prefab, category, info) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level System.Int32
+_G['UpgradeManager'].SetUpgradeLevel = function(prefab, category, level) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['UpgradeManager'].CanUpgradeSub = function() end
+
+---`Method Public Instance`
+---@param parent System.Xml.Linq.XElement
+_G['UpgradeManager'].Save = function(parent) end
+
+---`Method Private Static`
+---@param parent System.Xml.Linq.XElement
+---@param upgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+_G['UpgradeManager'].SavePendingUpgrades = function(parent, upgrades) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param isSingleplayer? System.Boolean
+_G['UpgradeManager'].LoadPendingUpgrades = function(element, isSingleplayer) end
+
+---`Method Public Static`
+---@param text System.String
+---@param data (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@param e? System.Exception
+_G['UpgradeManager'].LogError = function(text, data, e) end
+
+---`Method Public Instance`
+---@param upgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+_G['UpgradeManager'].SetPendingUpgrades = function(upgrades) end
+
+---`Method Public Static`
+---@param msg System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['UpgradeManager'].DebugLog = function(msg, color) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@return Barotrauma.PurchasedUpgrade
+_G['UpgradeManager'].FindMatchingUpgrade = function(prefab, category) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@return Barotrauma.Identifier
+_G['UpgradeManager'].FormatIdentifier = function(prefab, category) end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EAD780.lua b/Meta/Types/client/_00007FFD97EAD780.lua
new file mode 100644
index 0000000..2d4fd58
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAD780.lua
@@ -0,0 +1,127 @@
+---@meta
+---@class Barotrauma.UpgradePrefab : Barotrauma.UpgradeContentPrefab
+---`Field Public Instance`
+---@field DecorativeSprites (System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])
+---`Field Public Instance`
+---@field MaxLevel System.Int32
+---`Field Private Instance`
+---@field upgradeCategoryIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field MaxLevelsMods (System.Collections.Immutable.ImmutableArray*1Barotrauma*UpgradeMaxLevelMod)|(Barotrauma.UpgradeMaxLevelMod[])
+---`Field Public Instance`
+---@field ResourceCosts (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*UpgradeResourceCost)|(Barotrauma.UpgradeResourceCost[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*UpgradePrefab)|(fun():(Barotrauma.UpgradePrefab))
+---`Field Private Static`
+---@field crushDepthUpgradePrc System.Nullable*1System*Int32
+---`Field Private Static`
+---@field increaseWallHealthMaxLevel System.Nullable*1System*Int32
+---`Field Public Static`
+---@field CrushDepthDefaultUpgradePrc System.Int32
+---`Field Public Static`
+---@field IncreaseWallHealthDefaultMaxLevel System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field IncreaseOnTooltip System.Single
+---`Getter Public Instance`
+---@field UpgradeCategories (System.Collections.Generic.IEnumerable*1Barotrauma*UpgradeCategory)|(fun():(Barotrauma.UpgradeCategory))
+---`Getter Public Instance`
+---@field Price Barotrauma.UpgradePrice
+---`Getter Private Instance`
+---@field isOverride System.Boolean
+---`Getter Public Instance`
+---@field SourceElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field SuppressWarnings System.Boolean
+---`Getter Public Instance`
+---@field HideInMenus System.Boolean
+---`Getter Public Instance`
+---@field TargetItems (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---@field IsWallUpgrade System.Boolean
+---`Getter Private Instance`
+---@field targetProperties (System.Collections.Generic.Dictionary*1System*String*1System*String-arr)|({[System.String]:((System.String-arr)|(System.String[]))})
+---`Getter Public Static`
+---@field CrushDepthUpgradePrc System.Int32
+---`Getter Public Static`
+---@field IncreaseWallHealthMaxLevel System.Int32
+_G['UpgradePrefab'] = {}
+
+---`Method Public Instance`
+---@return System.Int32
+_G['UpgradePrefab'].GetMaxLevelForCurrentSub = function() end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@return System.Int32
+_G['UpgradePrefab'].GetMaxLevel = function(info) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@return System.Boolean
+_G['UpgradePrefab'].IsApplicable = function(info) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param currentLevel System.Int32
+---@return System.Boolean
+_G['UpgradePrefab'].HasResourcesToUpgrade = function(character, currentLevel) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param currentLevel System.Int32
+---@return System.Boolean
+_G['UpgradePrefab'].TryTakeResources = function(character, currentLevel) end
+
+---`Method Public Instance`
+---@param level System.Int32
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*ApplicableResourceCollection)|(Barotrauma.ApplicableResourceCollection[])
+_G['UpgradePrefab'].GetApplicableResources = function(level) end
+
+---`Method Public Instance`
+---@param item Barotrauma.MapEntity
+---@return System.Boolean
+_G['UpgradePrefab'].IsDisallowed = function(item) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'].Find = function(identifier) end
+
+---`Method Public Static`
+---@param value System.String
+---@param attribute? Barotrauma.Identifier
+---@param sourceElement? System.Xml.Linq.XElement
+---@param suppressWarnings? System.Boolean
+---@return System.Int32
+_G['UpgradePrefab'].ParsePercentage = function(value, attribute, sourceElement, suppressWarnings) end
+
+---`Method Public Instance Virtual`
+_G['UpgradePrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EAE1E8.lua b/Meta/Types/client/_00007FFD97EAE1E8.lua
new file mode 100644
index 0000000..a456fe5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAE1E8.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.Upgrade : System.Object
+---`Field Private Instance`
+---@field sourceElement Barotrauma.ContentXElement
+---`Getter Private Instance`
+---@field TargetEntity Barotrauma.ISerializableEntity
+---`Getter Public Instance`
+---@field TargetComponents (System.Collections.Generic.Dictionary*1Barotrauma*ISerializableEntity*1Barotrauma*PropertyReference-arr)|({[Barotrauma.ISerializableEntity]:((Barotrauma.PropertyReference-arr)|(Barotrauma.PropertyReference[]))})
+---`Getter Public Instance`
+---@field Prefab Barotrauma.UpgradePrefab
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Level System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Disposed System.Boolean
+_G['Upgrade'] = {}
+
+---`Method Private Instance`
+---@param saveElement System.Xml.Linq.XContainer
+_G['Upgrade'].ResetNonAffectedProperties = function(saveElement) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@param name System.String
+---@return (Barotrauma.ISerializableEntity-arr)|(Barotrauma.ISerializableEntity[])
+_G['Upgrade'].FindItemComponent = function(item, name) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Upgrade'].Save = function(element) end
+
+---`Method Public Instance`
+_G['Upgrade'].ApplyUpgrade = function() end
+
+---`Method Public Instance Virtual`
+_G['Upgrade'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param targetEntity Barotrauma.ISerializableEntity
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+---@param saveElement? System.Xml.Linq.XContainer
+---@return Barotrauma.Upgrade
+_G['Upgrade'] = function(targetEntity, prefab, level, saveElement) end
+
+---`Constructor Public Instance`
+---@param targetEntity Barotrauma.ISerializableEntity
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+---@param saveElement? System.Xml.Linq.XContainer
+---@return Barotrauma.Upgrade
+_G['Upgrade'].__new = function(targetEntity, prefab, level, saveElement) end
+
diff --git a/Meta/Types/client/_00007FFD97EAE388.lua b/Meta/Types/client/_00007FFD97EAE388.lua
new file mode 100644
index 0000000..c04e7bd
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAE388.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.PurchasedUpgrade : System.Object
+---`Field Public Instance`
+---@field Category Barotrauma.UpgradeCategory
+---`Field Public Instance`
+---@field Prefab Barotrauma.UpgradePrefab
+---`Field Public Instance`
+---@field Level System.Int32
+_G['PurchasedUpgrade'] = {}
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab-ref
+---@param category Barotrauma.UpgradeCategory-ref
+---@param level System.Int32-ref
+_G['PurchasedUpgrade'].Deconstruct = function(prefab, category, level) end
+
+---`Constructor Public Instance`
+---@param upgradePrefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level? System.Int32
+---@return Barotrauma.PurchasedUpgrade
+_G['PurchasedUpgrade'] = function(upgradePrefab, category, level) end
+
+---`Constructor Public Instance`
+---@param upgradePrefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level? System.Int32
+---@return Barotrauma.PurchasedUpgrade
+_G['PurchasedUpgrade'].__new = function(upgradePrefab, category, level) end
+
diff --git a/Meta/Types/client/_00007FFD97EAE488.lua b/Meta/Types/client/_00007FFD97EAE488.lua
new file mode 100644
index 0000000..2a5d1bc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAE488.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Item.EventType : System.Enum
+---`Field Public Static`
+---@field ComponentState Barotrauma.Item.EventType
+---`Field Public Static`
+---@field InventoryState Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Treatment Barotrauma.Item.EventType
+---`Field Public Static`
+---@field ChangeProperty Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Combine Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Status Barotrauma.Item.EventType
+---`Field Public Static`
+---@field AssignCampaignInteraction Barotrauma.Item.EventType
+---`Field Public Static`
+---@field ApplyStatusEffect Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Upgrade Barotrauma.Item.EventType
+---`Field Public Static`
+---@field ItemStat Barotrauma.Item.EventType
+---`Field Public Static`
+---@field DroppedStack Barotrauma.Item.EventType
+---`Field Public Static`
+---@field SetHighlight Barotrauma.Item.EventType
+---`Field Public Static`
+---@field SwapItem Barotrauma.Item.EventType
+---`Field Public Static`
+---@field MinValue Barotrauma.Item.EventType
+---`Field Public Static`
+---@field MaxValue Barotrauma.Item.EventType
+_G['Item']['EventType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EAE7B0.lua b/Meta/Types/client/_00007FFD97EAE7B0.lua
new file mode 100644
index 0000000..faea4c5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAE7B0.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Item.ComponentStateEventData : System.ValueType
+---`Field Public Instance`
+---@field Component Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field ComponentData Barotrauma.Items.Components.ItemComponent.IEventData
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['ComponentStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+---@param componentData Barotrauma.Items.Components.ItemComponent.IEventData
+---@return Barotrauma.Item.ComponentStateEventData
+_G['Item']['ComponentStateEventData'] = function(component, componentData) end
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+---@param componentData Barotrauma.Items.Components.ItemComponent.IEventData
+---@return Barotrauma.Item.ComponentStateEventData
+_G['Item']['ComponentStateEventData'].__new = function(component, componentData) end
+
diff --git a/Meta/Types/client/_00007FFD97EAEF38.lua b/Meta/Types/client/_00007FFD97EAEF38.lua
new file mode 100644
index 0000000..c670888
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAEF38.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Item.InventoryStateEventData : System.ValueType
+---`Field Public Instance`
+---@field Component Barotrauma.Items.Components.ItemContainer
+---`Field Public Instance`
+---@field SlotRange System.Range
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['InventoryStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemContainer
+---@param slotRange System.Range
+---@return Barotrauma.Item.InventoryStateEventData
+_G['Item']['InventoryStateEventData'] = function(component, slotRange) end
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemContainer
+---@param slotRange System.Range
+---@return Barotrauma.Item.InventoryStateEventData
+_G['Item']['InventoryStateEventData'].__new = function(component, slotRange) end
+
diff --git a/Meta/Types/client/_00007FFD97EAF0C0.lua b/Meta/Types/client/_00007FFD97EAF0C0.lua
new file mode 100644
index 0000000..7aac22c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAF0C0.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Item.ChangePropertyEventData : System.ValueType
+---`Field Public Instance`
+---@field SerializableProperty Barotrauma.SerializableProperty
+---`Field Public Instance`
+---@field Entity Barotrauma.ISerializableEntity
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['ChangePropertyEventData'] = {}
+
+---`Constructor Public Instance`
+---@param serializableProperty Barotrauma.SerializableProperty
+---@param entity Barotrauma.ISerializableEntity
+---@return Barotrauma.Item.ChangePropertyEventData
+_G['Item']['ChangePropertyEventData'] = function(serializableProperty, entity) end
+
+---`Constructor Public Instance`
+---@param serializableProperty Barotrauma.SerializableProperty
+---@param entity Barotrauma.ISerializableEntity
+---@return Barotrauma.Item.ChangePropertyEventData
+_G['Item']['ChangePropertyEventData'].__new = function(serializableProperty, entity) end
+
diff --git a/Meta/Types/client/_00007FFD97EAF288.lua b/Meta/Types/client/_00007FFD97EAF288.lua
new file mode 100644
index 0000000..a1087d4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAF288.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Item.ApplyStatusEffectEventData : System.ValueType
+---`Field Public Instance`
+---@field ActionType Barotrauma.ActionType
+---`Field Public Instance`
+---@field TargetItemComponent Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field TargetCharacter Barotrauma.Character
+---`Field Public Instance`
+---@field TargetLimb Barotrauma.Limb
+---`Field Public Instance`
+---@field UseTarget Barotrauma.Entity
+---`Field Public Instance`
+---@field WorldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['ApplyStatusEffectEventData'] = {}
+
+---`Constructor Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param targetCharacter? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.Item.ApplyStatusEffectEventData
+_G['Item']['ApplyStatusEffectEventData'] = function(actionType, targetItemComponent, targetCharacter, targetLimb, useTarget, worldPosition) end
+
+---`Constructor Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param targetCharacter? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.Item.ApplyStatusEffectEventData
+_G['Item']['ApplyStatusEffectEventData'].__new = function(actionType, targetItemComponent, targetCharacter, targetLimb, useTarget, worldPosition) end
+
diff --git a/Meta/Types/client/_00007FFD97EAF388.lua b/Meta/Types/client/_00007FFD97EAF388.lua
new file mode 100644
index 0000000..52280f4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAF388.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.Character.EventType : System.Enum
+---`Field Public Static`
+---@field InventoryState Barotrauma.Character.EventType
+---`Field Public Static`
+---@field Control Barotrauma.Character.EventType
+---`Field Public Static`
+---@field Status Barotrauma.Character.EventType
+---`Field Public Static`
+---@field Treatment Barotrauma.Character.EventType
+---`Field Public Static`
+---@field SetAttackTarget Barotrauma.Character.EventType
+---`Field Public Static`
+---@field ExecuteAttack Barotrauma.Character.EventType
+---`Field Public Static`
+---@field AssignCampaignInteraction Barotrauma.Character.EventType
+---`Field Public Static`
+---@field ObjectiveManagerState Barotrauma.Character.EventType
+---`Field Public Static`
+---@field TeamChange Barotrauma.Character.EventType
+---`Field Public Static`
+---@field AddToCrew Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateExperience Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateTalents Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateSkills Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateMoney Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdatePermanentStats Barotrauma.Character.EventType
+---`Field Public Static`
+---@field RemoveFromCrew Barotrauma.Character.EventType
+---`Field Public Static`
+---@field LatchOntoTarget Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateTalentRefundPoints Barotrauma.Character.EventType
+---`Field Public Static`
+---@field ConfirmTalentRefund Barotrauma.Character.EventType
+---`Field Public Static`
+---@field MinValue Barotrauma.Character.EventType
+---`Field Public Static`
+---@field MaxValue Barotrauma.Character.EventType
+_G['Character']['EventType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EAF638.lua b/Meta/Types/client/_00007FFD97EAF638.lua
new file mode 100644
index 0000000..6f9cde1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAF638.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.InventoryStateEventData : System.ValueType
+---`Field Public Instance`
+---@field SlotRange System.Range
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['InventoryStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param slotRange System.Range
+---@return Barotrauma.Character.InventoryStateEventData
+_G['Character']['InventoryStateEventData'] = function(slotRange) end
+
+---`Constructor Public Instance`
+---@param slotRange System.Range
+---@return Barotrauma.Character.InventoryStateEventData
+_G['Character']['InventoryStateEventData'].__new = function(slotRange) end
+
diff --git a/Meta/Types/client/_00007FFD97EAF7B0.lua b/Meta/Types/client/_00007FFD97EAF7B0.lua
new file mode 100644
index 0000000..26ef142
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAF7B0.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.ControlEventData : System.ValueType
+---`Field Public Instance`
+---@field Owner Barotrauma.Networking.Client
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['ControlEventData'] = {}
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Networking.Client
+---@return Barotrauma.Character.ControlEventData
+_G['Character']['ControlEventData'] = function(owner) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Networking.Client
+---@return Barotrauma.Character.ControlEventData
+_G['Character']['ControlEventData'].__new = function(owner) end
+
diff --git a/Meta/Types/client/_00007FFD97EAF8E8.lua b/Meta/Types/client/_00007FFD97EAF8E8.lua
new file mode 100644
index 0000000..5cb37f5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAF8E8.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.CharacterStatusEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['CharacterStatusEventData'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EAFA20.lua b/Meta/Types/client/_00007FFD97EAFA20.lua
new file mode 100644
index 0000000..fbb512d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAFA20.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.TreatmentEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['TreatmentEventData'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EAFD78.lua b/Meta/Types/client/_00007FFD97EAFD78.lua
new file mode 100644
index 0000000..a54b702
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EAFD78.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Character.SetAttackTargetEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+---`Getter Public Instance Virtual`
+---@field AttackLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetEntity Barotrauma.IDamageable
+---`Getter Public Instance Virtual`
+---@field TargetLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetSimPos Microsoft.Xna.Framework.Vector2
+_G['Character']['SetAttackTargetEventData'] = {}
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.SetAttackTargetEventData
+_G['Character']['SetAttackTargetEventData'] = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.SetAttackTargetEventData
+_G['Character']['SetAttackTargetEventData'].__new = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
diff --git a/Meta/Types/client/_00007FFD97EB0018.lua b/Meta/Types/client/_00007FFD97EB0018.lua
new file mode 100644
index 0000000..1185f0e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB0018.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Character.ExecuteAttackEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+---`Getter Public Instance Virtual`
+---@field AttackLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetEntity Barotrauma.IDamageable
+---`Getter Public Instance Virtual`
+---@field TargetLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetSimPos Microsoft.Xna.Framework.Vector2
+_G['Character']['ExecuteAttackEventData'] = {}
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.ExecuteAttackEventData
+_G['Character']['ExecuteAttackEventData'] = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.ExecuteAttackEventData
+_G['Character']['ExecuteAttackEventData'].__new = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
diff --git a/Meta/Types/client/_00007FFD97EB0180.lua b/Meta/Types/client/_00007FFD97EB0180.lua
new file mode 100644
index 0000000..754be6c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB0180.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.AssignCampaignInteractionEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['AssignCampaignInteractionEventData'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB0430.lua b/Meta/Types/client/_00007FFD97EB0430.lua
new file mode 100644
index 0000000..854bbc2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB0430.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.ObjectiveManagerStateEventData : System.ValueType
+---`Field Public Instance`
+---@field ObjectiveType Barotrauma.AIObjectiveManager.ObjectiveType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['ObjectiveManagerStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param objectiveType Barotrauma.AIObjectiveManager.ObjectiveType
+---@return Barotrauma.Character.ObjectiveManagerStateEventData
+_G['Character']['ObjectiveManagerStateEventData'] = function(objectiveType) end
+
+---`Constructor Public Instance`
+---@param objectiveType Barotrauma.AIObjectiveManager.ObjectiveType
+---@return Barotrauma.Character.ObjectiveManagerStateEventData
+_G['Character']['ObjectiveManagerStateEventData'].__new = function(objectiveType) end
+
diff --git a/Meta/Types/client/_00007FFD97EB1E90.lua b/Meta/Types/client/_00007FFD97EB1E90.lua
new file mode 100644
index 0000000..5639624
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB1E90.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.Character.AddToCrewEventData : System.ValueType
+---`Field Public Instance`
+---@field ItemTeamChange Barotrauma.Character.ItemTeamChange
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['AddToCrewEventData'] = {}
+
+---`Constructor Public Instance`
+---@param teamType Barotrauma.CharacterTeamType
+---@param inventoryItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return Barotrauma.Character.AddToCrewEventData
+_G['Character']['AddToCrewEventData'] = function(teamType, inventoryItems) end
+
+---`Constructor Public Instance`
+---@param teamType Barotrauma.CharacterTeamType
+---@param inventoryItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return Barotrauma.Character.AddToCrewEventData
+_G['Character']['AddToCrewEventData'].__new = function(teamType, inventoryItems) end
+
diff --git a/Meta/Types/client/_00007FFD97EB2750.lua b/Meta/Types/client/_00007FFD97EB2750.lua
new file mode 100644
index 0000000..6c1129d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB2750.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.UpdateExperienceEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdateExperienceEventData'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB28B0.lua b/Meta/Types/client/_00007FFD97EB28B0.lua
new file mode 100644
index 0000000..6376269
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB28B0.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.UpdatePermanentStatsEventData : System.ValueType
+---`Field Public Instance`
+---@field StatType Barotrauma.StatTypes
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdatePermanentStatsEventData'] = {}
+
+---`Constructor Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return Barotrauma.Character.UpdatePermanentStatsEventData
+_G['Character']['UpdatePermanentStatsEventData'] = function(statType) end
+
+---`Constructor Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return Barotrauma.Character.UpdatePermanentStatsEventData
+_G['Character']['UpdatePermanentStatsEventData'].__new = function(statType) end
+
diff --git a/Meta/Types/client/_00007FFD97EB2A38.lua b/Meta/Types/client/_00007FFD97EB2A38.lua
new file mode 100644
index 0000000..3eed405
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB2A38.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Character.UpdateSkillsEventData : System.ValueType
+---`Field Public Instance`
+---@field ForceNotification System.Boolean
+---`Field Public Instance`
+---@field SkillIdentifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdateSkillsEventData'] = {}
+
+---`Constructor Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param forceNotification System.Boolean
+---@return Barotrauma.Character.UpdateSkillsEventData
+_G['Character']['UpdateSkillsEventData'] = function(skillIdentifier, forceNotification) end
+
+---`Constructor Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param forceNotification System.Boolean
+---@return Barotrauma.Character.UpdateSkillsEventData
+_G['Character']['UpdateSkillsEventData'].__new = function(skillIdentifier, forceNotification) end
+
diff --git a/Meta/Types/client/_00007FFD97EB2B70.lua b/Meta/Types/client/_00007FFD97EB2B70.lua
new file mode 100644
index 0000000..bd0d629
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB2B70.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.UpdateTalentsEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdateTalentsEventData'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB2E68.lua b/Meta/Types/client/_00007FFD97EB2E68.lua
new file mode 100644
index 0000000..32ce7ee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB2E68.lua
@@ -0,0 +1,89 @@
+---@meta
+---@class Barotrauma.Networking.NetConfig : System.Object
+---`Field Public Static`
+---@field MaxPlayers System.Int32
+---`Field Public Static`
+---@field ServerNameMaxLength System.Int32
+---`Field Public Static`
+---@field ServerMessageMaxLength System.Int32
+---`Field Public Static`
+---@field MaxHealthUpdateInterval System.Single
+---`Field Public Static`
+---@field MaxHealthUpdateIntervalDead System.Single
+---`Field Public Static`
+---@field HighPrioCharacterPositionUpdateDistance System.Single
+---`Field Public Static`
+---@field LowPrioCharacterPositionUpdateDistance System.Single
+---`Field Public Static`
+---@field HighPrioCharacterPositionUpdateInterval System.Single
+---`Field Public Static`
+---@field LowPrioCharacterPositionUpdateInterval System.Single
+---`Field Public Static`
+---@field FreezeCharacterIfPositionDataMissingDelay System.Single
+---`Field Public Static`
+---@field DisableCharacterIfPositionDataMissingDelay System.Single
+---`Field Public Static`
+---@field DeleteDisconnectedTime System.Single
+---`Field Public Static`
+---@field ItemConditionUpdateInterval System.Single
+---`Field Public Static`
+---@field LevelObjectUpdateInterval System.Single
+---`Field Public Static`
+---@field HullUpdateInterval System.Single
+---`Field Public Static`
+---@field SparseHullUpdateInterval System.Single
+---`Field Public Static`
+---@field HullUpdateDistance System.Single
+---`Field Public Static`
+---@field MaxEventPacketsPerUpdate System.Int32
+---`Field Public Static`
+---@field RoundStartSyncDuration System.Single
+---`Field Public Static`
+---@field EventRemovalTime System.Single
+---`Field Public Static`
+---@field OldReceivedEventKickTime System.Single
+---`Field Public Static`
+---@field OldEventKickTime System.Single
+---`Field Public Static`
+---@field DefaultPort System.Int32
+---`Field Public Static`
+---@field DefaultQueryPort System.Int32
+---`Field Public Static`
+---@field MaxPhysicsBodyVelocity System.Single
+---`Field Public Static`
+---@field MaxPhysicsBodyAngularVelocity System.Single
+_G['NetConfig'] = {}
+
+---`Method Public Static`
+---@param simPositionError Microsoft.Xna.Framework.Vector2
+---@param smoothingFactor? System.Nullable*1System*Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['NetConfig'].InterpolateSimPositionError = function(simPositionError, smoothingFactor) end
+
+---`Method Public Static`
+---@param rotationError System.Single
+---@return System.Single
+_G['NetConfig'].InterpolateRotationError = function(rotationError) end
+
+---`Method Public Static`
+---@param cursorPositionError Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['NetConfig'].InterpolateCursorPositionError = function(cursorPositionError) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, min:System.Single, max:System.Single, numberOfBits:System.Int32):(Microsoft.Xna.Framework.Vector2)
+---@param value System.Single
+---@param min System.Single
+---@param max System.Single
+---@param numberOfBits System.Int32
+---@return System.Single
+_G['NetConfig'].Quantize = function(value, min, max, numberOfBits) end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.NetConfig
+_G['NetConfig'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.NetConfig
+_G['NetConfig'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EB54F0.lua b/Meta/Types/client/_00007FFD97EB54F0.lua
new file mode 100644
index 0000000..171ca47
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB54F0.lua
@@ -0,0 +1,622 @@
+---@meta
+---@class Barotrauma.Networking.ServerSettings : System.Object
+---`Field Private Instance`
+---@field tempMonsterEnabled (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Boolean)|({[Barotrauma.Identifier]:(System.Boolean)})
+---`Field Private Instance`
+---@field settingsFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field settingsTabs (System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerSettings*SettingsTab*1Barotrauma*GUIComponent)|({[Barotrauma.Networking.ServerSettings.SettingsTab]:(Barotrauma.GUIComponent)})
+---`Field Private Instance`
+---@field tabButtons (System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerSettings*SettingsTab*1Barotrauma*GUIButton)|({[Barotrauma.Networking.ServerSettings.SettingsTab]:(Barotrauma.GUIButton)})
+---`Field Private Instance`
+---@field selectedTab Barotrauma.Networking.ServerSettings.SettingsTab
+---`Field Private Instance`
+---@field karmaElements (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field karmaPresetDD Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field karmaSettingsList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field extraCargoPanel Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field monstersEnabledPanel Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field extraCargoButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field monstersEnabledButton Barotrauma.GUIButton
+---`Field Public Instance`
+---@field ServerDetailsChanged System.Boolean
+---`Field Private Instance`
+---@field netProperties (System.Collections.Generic.Dictionary*1System*UInt32*1Barotrauma*Networking*ServerSettings*NetPropertyData)|({[System.UInt32]:(Barotrauma.Networking.ServerSettings.NetPropertyData)})
+---`Field Private Instance`
+---@field serverName System.String
+---`Field Private Instance`
+---@field serverMessageText System.String
+---`Field Public Instance`
+---@field Port System.Int32
+---`Field Public Instance`
+---@field QueryPort System.Int32
+---`Field Public Instance`
+---@field ListenIPAddress System.Net.IPAddress
+---`Field Public Instance`
+---@field EnableUPnP System.Boolean
+---`Field Public Instance`
+---@field ServerLog Barotrauma.Networking.ServerLog
+---`Field Private Instance`
+---@field selectedLevelDifficulty System.Single
+---`Field Private Instance`
+---@field password System.String
+---`Field Public Instance`
+---@field AutoRestartTimer System.Single
+---`Field Private Instance`
+---@field autoRestart System.Boolean
+---`Field Private Instance`
+---@field maxPlayers System.Int32
+---`Field Private Instance`
+---@field tickRate System.Int32
+---`Field Private Instance`
+---@field allowSpectating System.Boolean
+---`Field Private Instance`
+---@field voiceChatEnabled System.Boolean
+---`Field Private Instance`
+---@field playstyleSelection Barotrauma.Networking.PlayStyle
+---`Field Private Instance`
+---@field respawnMode Barotrauma.Networking.RespawnMode
+---`Field Private Instance`
+---@field traitorProbability System.Single
+---`Field Private Instance`
+---@field traitorDangerLevel System.Int32
+---`Field Private Instance`
+---@field traitorsMinPlayerCount System.Int32
+---`Field Private Instance`
+---@field subSelectionMode Barotrauma.Networking.SelectionMode
+---`Field Private Instance`
+---@field modeSelectionMode Barotrauma.Networking.SelectionMode
+---`Field Private Instance`
+---@field karmaEnabled System.Boolean
+---`Field Private Instance`
+---@field karmaPreset System.String
+---`Field Private Instance`
+---@field allowSubVoting System.Boolean
+---`Field Private Instance`
+---@field allowModeVoting System.Boolean
+---`Field Private Static`
+---@field packetAmountTooltip Barotrauma.LocalizedString
+---`Field Private Static`
+---@field packetAmountTooltipWarning Barotrauma.RichString
+---`Field Public Static`
+---@field PermissionPresetFile System.String
+---`Field Public Static`
+---@field PacketLimitMin System.Int32
+---`Field Public Static`
+---@field PacketLimitWarning System.Int32
+---`Field Public Static`
+---@field PacketLimitDefault System.Int32
+---`Field Public Static`
+---@field PacketLimitMax System.Int32
+---`Field Public Static`
+---@field SettingsFile System.String
+---`Field Public Static`
+---@field MaxExtraCargoItemsOfType System.Int32
+---`Field Public Static`
+---@field MaxExtraCargoItemTypes System.Int32
+---`Field Public Static`
+---@field DefaultTickRate System.Int32
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ServerName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ServerMessageText System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MonsterEnabled (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Boolean)|({[Barotrauma.Identifier]:(System.Boolean)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExtraCargo (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HiddenSubs (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClientPermissions (System.Collections.Generic.List*1Barotrauma*Networking*ServerSettings*SavedClientPermission)|(Barotrauma.Networking.ServerSettings.SavedClientPermission[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsPublic System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TickRate System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAuthentication System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomizeSeed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseRespawnShuttle System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RespawnInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxTransportTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinRespawnRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SkillLossPercentageOnDeath System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SkillLossPercentageOnImmediateRespawn System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ReplaceCostPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowBotTakeoverOnPermadeath System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IronmanMode System.Boolean
+---`Getter Public Instance`
+---@field IronmanModeActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoRestartInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StartWhenClientsReady System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvpTeamSelectionMode Barotrauma.PvpTeamSelectionMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvpAutoBalanceThreshold System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartWhenClientsReadyRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvPStunResist System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvPSpawnMonsters System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvPSpawnWrecks System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Biome Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedOutpostName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowSpectating System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SaveServerLogs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowModDownloads System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowFileTransfers System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoiceChatEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayStyle Barotrauma.Networking.PlayStyle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LosMode Barotrauma.LosMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowEnemyHealthBars Barotrauma.EnemyHealthBarMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinesPerLogFile System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoRestart System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HasPassword System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowVoteKick System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowEndVoting System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RespawnMode Barotrauma.Networking.RespawnMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BotCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxBotCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BotSpawnMode Barotrauma.Networking.BotSpawnMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableBotConversations System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedLevelDifficulty System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDisguises System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowRewiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowImmediateItemDelivery System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LockAllDefaultWires System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowLinkingWifiToChat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowFriendlyFire System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDragAndDropGive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DestructibleOutposts System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KillableNPCs System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BanAfterWrongPassword System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxPasswordRetriesBeforeBan System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EnableDoSProtection System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxPacketAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedSubmarine System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedShuttle System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TraitorProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TraitorDangerLevel System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TraitorsMinPlayerCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinPercentageOfPlayersForTraitorAccusation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubSelectionMode Barotrauma.Networking.SelectionMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ModeSelectionMode Barotrauma.Networking.SelectionMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BanList Barotrauma.Networking.BanList
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndVoteRequiredRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoteRequiredRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoteTimeout System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KickVoteRequiredRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisallowKickVoteTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KillDisconnectedTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DespawnDisconnectedPermadeathTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KickAFKTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinimumMidRoundSyncTimeout System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaPreset System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GameModeIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MissionTypes System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPlayers System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowedRandomMissionTypes (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AutoBanTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxAutoBanTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LootedMoneyDestination Barotrauma.Networking.LootedMoneyDestination
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumMoneyTransferRequest System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NewCampaignDefaultSalary System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TrackOpponentInPvP System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisembarkPointAllowance System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedCoalitionPerks (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WinScorePvP System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedSeparatistsPerks (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CampaignSettings Barotrauma.CampaignSettings
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSubVoting System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowModeVoting System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowedClientNameChars (System.Collections.Generic.List*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])
+_G['ServerSettings'] = {}
+
+---`Method Public Instance`
+---@param password System.String
+_G['ServerSettings'].SetPassword = function(password) end
+
+---`Method Public Static`
+---@param password (System.Byte-arr)|(System.Byte[])
+---@param salt System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ServerSettings'].SaltPassword = function(password, salt) end
+
+---`Method Public Instance`
+---@param input (System.Byte-arr)|(System.Byte[])
+---@param salt System.Int32
+---@return System.Boolean
+_G['ServerSettings'].IsPasswordCorrect = function(input, salt) end
+
+---`Method Private Instance`
+_G['ServerSettings'].InitMonstersEnabled = function() end
+
+---`Method Private Static`
+---@param monsterEnabled (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Boolean)|({[Barotrauma.Identifier]:(System.Boolean)})
+---@return (System.Collections.Generic.IReadOnlyList*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['ServerSettings'].ExtractAndSortKeys = function(monsterEnabled) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@return System.Boolean
+_G['ServerSettings'].ReadMonsterEnabled = function(inc) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param monsterEnabled? (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Boolean)|({[Barotrauma.Identifier]:(System.Boolean)})
+_G['ServerSettings'].WriteMonsterEnabled = function(msg, monsterEnabled) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@return System.Boolean
+_G['ServerSettings'].ReadExtraCargo = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ServerSettings'].WriteExtraCargo = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ServerSettings'].WritePerks = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@return System.Boolean
+_G['ServerSettings'].ReadPerks = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['ServerSettings'].ReadHiddenSubs = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ServerSettings'].WriteHiddenSubs = function(msg) end
+
+---`Method Public Instance`
+---@param setter (System.Action*1Barotrauma*Identifier*1System*Object)|(fun(arg1:Barotrauma.Identifier, arg2:System.Object))
+_G['ServerSettings'].UpdateServerListInfo = function(setter) end
+
+---`Method Private Instance`
+---@overload fun()
+---@param availableMissionClasses (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['ServerSettings'].ValidateMissionTypes = function(availableMissionClasses) end
+
+---`Method Public Instance`
+---@param incMsg Barotrauma.Networking.IReadMessage
+_G['ServerSettings'].ClientAdminRead = function(incMsg) end
+
+---`Method Public Instance`
+---@param incMsg Barotrauma.Networking.IReadMessage
+_G['ServerSettings'].ClientRead = function(incMsg) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['ServerSettings'].HasPermissionToChangePerks = function() end
+
+---`Method Public Instance`
+_G['ServerSettings'].ClientAdminWritePerks = function() end
+
+---`Method Public Instance`
+---@param dataToSend Barotrauma.Networking.ServerSettings.NetFlags
+---@param addedMissionType? Barotrauma.Identifier
+---@param removedMissionType? Barotrauma.Identifier
+---@param traitorDangerLevel? System.Int32
+_G['ServerSettings'].ClientAdminWrite = function(dataToSend, addedMissionType, removedMissionType, traitorDangerLevel) end
+
+---`Method Private Instance`
+---@param name System.String
+---@return Barotrauma.Networking.ServerSettings.NetPropertyData
+_G['ServerSettings'].GetPropertyData = function(name) end
+
+---`Method Public Instance`
+---@param propertyName System.String
+---@param component Barotrauma.GUIComponent
+_G['ServerSettings'].AssignGUIComponent = function(propertyName, component) end
+
+---`Method Public Instance`
+_G['ServerSettings'].AddToGUIUpdateList = function() end
+
+---`Method Private Instance`
+_G['ServerSettings'].CreateSettingsFrame = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param interactable System.Boolean
+_G['ServerSettings'].SetElementInteractability = function(parent, interactable) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['ServerSettings'].CreateServerIdentityTab = function(parent) end
+
+---`Method Private Static`
+_G['ServerSettings'].CreateChangePasswordPrompt = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['ServerSettings'].CreateGeneralTab = function(parent) end
+
+---`Method Private Instance`
+---@return Barotrauma.GUIComponent
+_G['ServerSettings'].CreateMonstersEnabledPanel = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.GUIComponent
+_G['ServerSettings'].CreateExtraCargoPanel = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['ServerSettings'].CreateAntigriefingTab = function(parent) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['ServerSettings'].CreateBanlistTab = function(parent) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['ServerSettings'].SelectSettingsTab = function(button, obj) end
+
+---`Method Public Instance`
+_G['ServerSettings'].Close = function() end
+
+---`Method Public Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['ServerSettings'].ToggleSettingsFrame = function(button, obj) end
+
+---`Method Private Instance`
+_G['ServerSettings'].InitProjSpecific = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'] = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'].__new = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'] = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'].__new = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
diff --git a/Meta/Types/client/_00007FFD97EB5AF8.lua b/Meta/Types/client/_00007FFD97EB5AF8.lua
new file mode 100644
index 0000000..b65d76b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB5AF8.lua
@@ -0,0 +1,136 @@
+---@meta
+---@class Barotrauma.Networking.ChatMessage : System.Object
+---`Field Public Instance`
+---@field Text System.String
+---`Field Private Instance`
+---@field translatedText System.String
+---`Field Public Instance`
+---@field Type Barotrauma.Networking.ChatMessageType
+---`Field Public Instance`
+---@field ChangeType Barotrauma.Networking.PlayerConnectionChangeType
+---`Field Public Instance`
+---@field IconStyle System.String
+---`Field Public Instance`
+---@field Sender Barotrauma.Entity
+---`Field Public Instance`
+---@field SenderClient Barotrauma.Networking.Client
+---`Field Public Instance`
+---@field SenderName System.String
+---`Field Private Instance`
+---@field customTextColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Static`
+---@field dateTimeFormatLongTimePattern System.String
+---`Field Public Static`
+---@field MessageColor (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Public Static`
+---@field LastID System.UInt16
+---`Field Public Static`
+---@field MaxLength System.Int32
+---`Field Public Static`
+---@field MaxMessagesPerPacket System.Int32
+---`Field Public Static`
+---@field SpeakRange System.Single
+---`Field Public Static`
+---@field SpeakRangeVOIP System.Single
+---`Getter Public Instance`
+---@field TranslatedText System.String
+---`Getter Public Instance`
+---@field SenderCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field TextWithSender System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NetStateID System.UInt16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ChatMode Barotrauma.ChatMode
+_G['ChatMessage'] = {}
+
+---`Method Public Instance Virtual`
+---@param segmentTableWriter Barotrauma.Networking.SegmentTableWriter
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ChatMessage'].ClientWrite = function(segmentTableWriter, msg) end
+
+---`Method Public Static`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['ChatMessage'].ClientRead = function(msg) end
+
+---`Method Public Static`
+---@return System.String
+_G['ChatMessage'].GetTimeStamp = function() end
+
+---`Method Public Static`
+---@param senderName System.String
+---@param text System.String
+---@param type Barotrauma.Networking.ChatMessageType
+---@param sender Barotrauma.Entity
+---@param client? Barotrauma.Networking.Client
+---@param changeType? Barotrauma.Networking.PlayerConnectionChangeType
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'].Create = function(senderName, text, type, sender, client, changeType, textColor) end
+
+---`Method Public Static`
+---@param message System.String
+---@param messageWithoutCommand System.String-ref
+---@return System.String
+_G['ChatMessage'].GetChatMessageCommand = function(message, messageWithoutCommand) end
+
+---`Method Public Static`
+---@param listener Barotrauma.Entity
+---@param sender Barotrauma.Entity
+---@param range System.Single
+---@param obstructionMultiplier? System.Single
+---@return System.Single
+_G['ChatMessage'].GetGarbleAmount = function(listener, sender, range, obstructionMultiplier) end
+
+---`Method Public Instance`
+---@param listener Barotrauma.Character
+---@return System.String
+_G['ChatMessage'].ApplyDistanceEffect = function(listener) end
+
+---`Method Public Static`
+---@overload fun(listener:Barotrauma.Entity, sender:Barotrauma.Entity, text:System.String, range:System.Single, obstructionMultiplier?:System.Single):(System.String)
+---@overload fun(text:System.String, garbleAmount:System.Single):(System.String)
+---@param message System.String
+---@param type Barotrauma.Networking.ChatMessageType
+---@param sender Barotrauma.Character
+---@param receiver Barotrauma.Character
+---@return System.String
+_G['ChatMessage'].ApplyDistanceEffect = function(message, type, sender, receiver) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['ChatMessage'].EstimateLengthBytesClient = function() end
+
+---`Method Public Static`
+---@overload fun(sender:Barotrauma.Character, ignoreJamming?:System.Boolean):(System.Boolean)
+---@param sender Barotrauma.Character
+---@param radio Barotrauma.Items.Components.WifiComponent-ref
+---@param ignoreJamming? System.Boolean
+---@return System.Boolean
+_G['ChatMessage'].CanUseRadio = function(sender, radio, ignoreJamming) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EB5C00.lua b/Meta/Types/client/_00007FFD97EB5C00.lua
new file mode 100644
index 0000000..1868976
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB5C00.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Networking.PacketHeader : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsCompressed Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsConnectionInitializationStep Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsDisconnectMessage Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsServerMessage Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsHeartbeatMessage Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsDataFragment Barotrauma.Networking.PacketHeader
+_G['PacketHeader'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB5DA8.lua b/Meta/Types/client/_00007FFD97EB5DA8.lua
new file mode 100644
index 0000000..d01c7f2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB5DA8.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.Networking.ServerPacketHeader : System.Enum
+---`Field Public Static`
+---@field AUTH_RESPONSE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field AUTH_FAILURE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field UPDATE_LOBBY Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field UPDATE_INGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field PERMISSIONS Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field ACHIEVEMENT Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field ACHIEVEMENT_STAT Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CHEATS_ENABLED Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CAMPAIGN_SETUP_INFO Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field FILE_TRANSFER Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field VOICE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field VOICE_AMPLITUDE_DEBUG Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field PING_REQUEST Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CLIENT_PINGS Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field QUERY_STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field WARN_STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CANCEL_STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field STARTGAMEFINALIZE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field ENDGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field MISSION Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field EVENTACTION Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field TRAITOR_MESSAGE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CREW Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field MEDICAL Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CIRCUITBOX Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field MONEY Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field READY_CHECK Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field SEND_BACKUP_INDICES Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field LUA_NET_MESSAGE Barotrauma.Networking.ServerPacketHeader
+_G['ServerPacketHeader'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB5F50.lua b/Meta/Types/client/_00007FFD97EB5F50.lua
new file mode 100644
index 0000000..86d8294
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB5F50.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.Networking.ClientPacketHeader : System.Enum
+---`Field Public Static`
+---@field UPDATE_LOBBY Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field UPDATE_INGAME Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field SERVER_SETTINGS Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field SERVER_SETTINGS_PERKS Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field CAMPAIGN_SETUP_INFO Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field FILE_REQUEST Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field VOICE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field PING_RESPONSE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field RESPONSE_CANCEL_STARTGAME Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field RESPONSE_STARTGAME Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field SERVER_COMMAND Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field EVENTMANAGER_RESPONSE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field REQUEST_STARTGAMEFINALIZE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field UPDATE_CHARACTERINFO Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field ERROR Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field CREW Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field MEDICAL Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field TRANSFER_MONEY Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field REWARD_DISTRIBUTION Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field RESET_REWARD_DISTRIBUTION Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field CIRCUITBOX Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field READY_CHECK Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field READY_TO_SPAWN Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field TAKEOVERBOT Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field REQUEST_BACKUP_INDICES Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field LUA_NET_MESSAGE Barotrauma.Networking.ClientPacketHeader
+_G['ClientPacketHeader'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB60F8.lua b/Meta/Types/client/_00007FFD97EB60F8.lua
new file mode 100644
index 0000000..244574d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB60F8.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.Networking.DeliveryMethod : System.Enum
+---`Field Public Static`
+---@field Unreliable Barotrauma.Networking.DeliveryMethod
+---`Field Public Static`
+---@field Reliable Barotrauma.Networking.DeliveryMethod
+_G['DeliveryMethod'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB62A0.lua b/Meta/Types/client/_00007FFD97EB62A0.lua
new file mode 100644
index 0000000..9727762
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB62A0.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.Networking.ConnectionInitialization : System.Enum
+---`Field Public Static`
+---@field AuthInfoAndVersion Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field ContentPackageOrder Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field Password Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field Success Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field ConnectionStarted Barotrauma.Networking.ConnectionInitialization
+_G['ConnectionInitialization'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB66E0.lua b/Meta/Types/client/_00007FFD97EB66E0.lua
new file mode 100644
index 0000000..a921bc6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB66E0.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.Networking.IWriteMessage
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field LengthBytes System.Int32
+_G['IWriteMessage'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Boolean
+_G['IWriteMessage'].WriteBoolean = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+_G['IWriteMessage'].WritePadBits = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Byte
+_G['IWriteMessage'].WriteByte = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int16
+_G['IWriteMessage'].WriteInt16 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt16
+_G['IWriteMessage'].WriteUInt16 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int32
+_G['IWriteMessage'].WriteInt32 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt32
+_G['IWriteMessage'].WriteUInt32 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int64
+_G['IWriteMessage'].WriteInt64 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt64
+_G['IWriteMessage'].WriteUInt64 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Single
+_G['IWriteMessage'].WriteSingle = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Double
+_G['IWriteMessage'].WriteDouble = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['IWriteMessage'].WriteColorR8G8B8 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['IWriteMessage'].WriteColorR8G8B8A8 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt32
+_G['IWriteMessage'].WriteVariableUInt32 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.String
+_G['IWriteMessage'].WriteString = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val Barotrauma.Identifier
+_G['IWriteMessage'].WriteIdentifier = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int32
+---@param min System.Int32
+---@param max System.Int32
+_G['IWriteMessage'].WriteRangedInteger = function(val, min, max) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Single
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+_G['IWriteMessage'].WriteRangedSingle = function(val, min, max, bitCount) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val (System.Byte-arr)|(System.Byte[])
+---@param startIndex System.Int32
+---@param length System.Int32
+_G['IWriteMessage'].WriteBytes = function(val, startIndex, length) end
+
+---`Method Public Instance Abstract Virtual`
+---@param compressPastThreshold System.Boolean
+---@param isCompressed System.Boolean-ref
+---@param outLength System.Int32-ref
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IWriteMessage'].PrepareForSending = function(compressPastThreshold, isCompressed, outLength) end
+
diff --git a/Meta/Types/client/_00007FFD97EB6AC8.lua b/Meta/Types/client/_00007FFD97EB6AC8.lua
new file mode 100644
index 0000000..73f1e8f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB6AC8.lua
@@ -0,0 +1,119 @@
+---@meta
+---@class Barotrauma.Networking.WriteOnlyMessage : System.Object
+---`Field Private Instance`
+---@field buf (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field seekPos System.Int32
+---`Field Private Instance`
+---@field lengthBits System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Virtual`
+---@field LengthBytes System.Int32
+_G['WriteOnlyMessage'] = {}
+
+---`Method Public Instance Virtual`
+---@param val System.Boolean
+_G['WriteOnlyMessage'].WriteBoolean = function(val) end
+
+---`Method Public Instance Virtual`
+_G['WriteOnlyMessage'].WritePadBits = function() end
+
+---`Method Public Instance Virtual`
+---@param val System.Byte
+_G['WriteOnlyMessage'].WriteByte = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt16
+_G['WriteOnlyMessage'].WriteUInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int16
+_G['WriteOnlyMessage'].WriteInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['WriteOnlyMessage'].WriteUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+_G['WriteOnlyMessage'].WriteInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt64
+_G['WriteOnlyMessage'].WriteUInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int64
+_G['WriteOnlyMessage'].WriteInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+_G['WriteOnlyMessage'].WriteSingle = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Double
+_G['WriteOnlyMessage'].WriteDouble = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['WriteOnlyMessage'].WriteColorR8G8B8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['WriteOnlyMessage'].WriteColorR8G8B8A8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['WriteOnlyMessage'].WriteVariableUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.String
+_G['WriteOnlyMessage'].WriteString = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Barotrauma.Identifier
+_G['WriteOnlyMessage'].WriteIdentifier = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+---@param min System.Int32
+---@param max System.Int32
+_G['WriteOnlyMessage'].WriteRangedInteger = function(val, min, max) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+_G['WriteOnlyMessage'].WriteRangedSingle = function(val, min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param val (System.Byte-arr)|(System.Byte[])
+---@param startPos System.Int32
+---@param length System.Int32
+_G['WriteOnlyMessage'].WriteBytes = function(val, startPos, length) end
+
+---`Method Public Instance Virtual`
+---@param compressPastThreshold System.Boolean
+---@param isCompressed System.Boolean-ref
+---@param length System.Int32-ref
+---@return (System.Byte-arr)|(System.Byte[])
+_G['WriteOnlyMessage'].PrepareForSending = function(compressPastThreshold, isCompressed, length) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.WriteOnlyMessage
+_G['WriteOnlyMessage'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.WriteOnlyMessage
+_G['WriteOnlyMessage'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EB6F80.lua b/Meta/Types/client/_00007FFD97EB6F80.lua
new file mode 100644
index 0000000..172c36b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB6F80.lua
@@ -0,0 +1,103 @@
+---@meta
+---@class Barotrauma.Networking.IReadMessage
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field LengthBytes System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Sender Barotrauma.Networking.NetworkConnection
+_G['IReadMessage'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Boolean
+_G['IReadMessage'].ReadBoolean = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['IReadMessage'].ReadPadBits = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Byte
+_G['IReadMessage'].ReadByte = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Byte
+_G['IReadMessage'].PeekByte = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt16
+_G['IReadMessage'].ReadUInt16 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int16
+_G['IReadMessage'].ReadInt16 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt32
+_G['IReadMessage'].ReadUInt32 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['IReadMessage'].ReadInt32 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt64
+_G['IReadMessage'].ReadUInt64 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int64
+_G['IReadMessage'].ReadInt64 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Single
+_G['IReadMessage'].ReadSingle = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Double
+_G['IReadMessage'].ReadDouble = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt32
+_G['IReadMessage'].ReadVariableUInt32 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.String
+_G['IReadMessage'].ReadString = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Barotrauma.Identifier
+_G['IReadMessage'].ReadIdentifier = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['IReadMessage'].ReadColorR8G8B8 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['IReadMessage'].ReadColorR8G8B8A8 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['IReadMessage'].ReadRangedInteger = function(min, max) end
+
+---`Method Public Instance Abstract Virtual`
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+---@return System.Single
+_G['IReadMessage'].ReadRangedSingle = function(min, max, bitCount) end
+
+---`Method Public Instance Abstract Virtual`
+---@param numberOfBytes System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IReadMessage'].ReadBytes = function(numberOfBytes) end
+
diff --git a/Meta/Types/client/_00007FFD97EB7398.lua b/Meta/Types/client/_00007FFD97EB7398.lua
new file mode 100644
index 0000000..97984ad
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB7398.lua
@@ -0,0 +1,125 @@
+---@meta
+---@class Barotrauma.Networking.ReadOnlyMessage : System.Object
+---`Field Private Instance`
+---@field seekPos System.Int32
+---`Field Private Instance`
+---@field lengthBits System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Virtual`
+---@field LengthBytes System.Int32
+---`Getter Public Instance Virtual`
+---@field Sender Barotrauma.Networking.NetworkConnection
+_G['ReadOnlyMessage'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['ReadOnlyMessage'].ReadBoolean = function() end
+
+---`Method Public Instance Virtual`
+_G['ReadOnlyMessage'].ReadPadBits = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadOnlyMessage'].ReadByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadOnlyMessage'].PeekByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt16
+_G['ReadOnlyMessage'].ReadUInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int16
+_G['ReadOnlyMessage'].ReadInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadOnlyMessage'].ReadUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ReadOnlyMessage'].ReadInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt64
+_G['ReadOnlyMessage'].ReadUInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int64
+_G['ReadOnlyMessage'].ReadInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['ReadOnlyMessage'].ReadSingle = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Double
+_G['ReadOnlyMessage'].ReadDouble = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadOnlyMessage'].ReadVariableUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ReadOnlyMessage'].ReadString = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Identifier
+_G['ReadOnlyMessage'].ReadIdentifier = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadOnlyMessage'].ReadColorR8G8B8 = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadOnlyMessage'].ReadColorR8G8B8A8 = function() end
+
+---`Method Public Instance Virtual`
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['ReadOnlyMessage'].ReadRangedInteger = function(min, max) end
+
+---`Method Public Instance Virtual`
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+---@return System.Single
+_G['ReadOnlyMessage'].ReadRangedSingle = function(min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param numberOfBytes System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ReadOnlyMessage'].ReadBytes = function(numberOfBytes) end
+
+---`Constructor Public Instance`
+---@param inBuf (System.Byte-arr)|(System.Byte[])
+---@param isCompressed System.Boolean
+---@param startPos System.Int32
+---@param byteLength System.Int32
+---@param sender Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.ReadOnlyMessage
+_G['ReadOnlyMessage'] = function(inBuf, isCompressed, startPos, byteLength, sender) end
+
+---`Constructor Public Instance`
+---@param inBuf (System.Byte-arr)|(System.Byte[])
+---@param isCompressed System.Boolean
+---@param startPos System.Int32
+---@param byteLength System.Int32
+---@param sender Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.ReadOnlyMessage
+_G['ReadOnlyMessage'].__new = function(inBuf, isCompressed, startPos, byteLength, sender) end
+
diff --git a/Meta/Types/client/_00007FFD97EB7920.lua b/Meta/Types/client/_00007FFD97EB7920.lua
new file mode 100644
index 0000000..6030a28
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB7920.lua
@@ -0,0 +1,216 @@
+---@meta
+---@class Barotrauma.Networking.ReadWriteMessage : System.Object
+---`Field Private Instance`
+---@field buf (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field seekPos System.Int32
+---`Field Private Instance`
+---@field lengthBits System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Virtual`
+---@field LengthBytes System.Int32
+---`Getter Public Instance Virtual`
+---@field Sender Barotrauma.Networking.NetworkConnection
+_G['ReadWriteMessage'] = {}
+
+---`Method Public Instance Virtual`
+---@param val System.Boolean
+_G['ReadWriteMessage'].WriteBoolean = function(val) end
+
+---`Method Public Instance Virtual`
+_G['ReadWriteMessage'].WritePadBits = function() end
+
+---`Method Public Instance Virtual`
+---@param val System.Byte
+_G['ReadWriteMessage'].WriteByte = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt16
+_G['ReadWriteMessage'].WriteUInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int16
+_G['ReadWriteMessage'].WriteInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['ReadWriteMessage'].WriteUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+_G['ReadWriteMessage'].WriteInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt64
+_G['ReadWriteMessage'].WriteUInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int64
+_G['ReadWriteMessage'].WriteInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+_G['ReadWriteMessage'].WriteSingle = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Double
+_G['ReadWriteMessage'].WriteDouble = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].WriteColorR8G8B8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].WriteColorR8G8B8A8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['ReadWriteMessage'].WriteVariableUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.String
+_G['ReadWriteMessage'].WriteString = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Barotrauma.Identifier
+_G['ReadWriteMessage'].WriteIdentifier = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+---@param min System.Int32
+---@param max System.Int32
+_G['ReadWriteMessage'].WriteRangedInteger = function(val, min, max) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+_G['ReadWriteMessage'].WriteRangedSingle = function(val, min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param val (System.Byte-arr)|(System.Byte[])
+---@param startPos System.Int32
+---@param length System.Int32
+_G['ReadWriteMessage'].WriteBytes = function(val, startPos, length) end
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['ReadWriteMessage'].ReadBoolean = function() end
+
+---`Method Public Instance Virtual`
+_G['ReadWriteMessage'].ReadPadBits = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadWriteMessage'].ReadByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadWriteMessage'].PeekByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt16
+_G['ReadWriteMessage'].ReadUInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int16
+_G['ReadWriteMessage'].ReadInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadWriteMessage'].ReadUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ReadWriteMessage'].ReadInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt64
+_G['ReadWriteMessage'].ReadUInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int64
+_G['ReadWriteMessage'].ReadInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['ReadWriteMessage'].ReadSingle = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Double
+_G['ReadWriteMessage'].ReadDouble = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadWriteMessage'].ReadVariableUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ReadWriteMessage'].ReadString = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Identifier
+_G['ReadWriteMessage'].ReadIdentifier = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].ReadColorR8G8B8 = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].ReadColorR8G8B8A8 = function() end
+
+---`Method Public Instance Virtual`
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['ReadWriteMessage'].ReadRangedInteger = function(min, max) end
+
+---`Method Public Instance Virtual`
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+---@return System.Single
+_G['ReadWriteMessage'].ReadRangedSingle = function(min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param numberOfBytes System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ReadWriteMessage'].ReadBytes = function(numberOfBytes) end
+
+---`Method Public Instance Virtual`
+---@param compressPastThreshold System.Boolean
+---@param isCompressed System.Boolean-ref
+---@param outLength System.Int32-ref
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ReadWriteMessage'].PrepareForSending = function(compressPastThreshold, isCompressed, outLength) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ReadWriteMessage
+---@param b (System.Byte-arr)|(System.Byte[])
+---@param bitPos System.Int32
+---@param lBits System.Int32
+---@param copyBuf System.Boolean
+---@return Barotrauma.Networking.ReadWriteMessage
+_G['ReadWriteMessage'] = function(b, bitPos, lBits, copyBuf) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ReadWriteMessage
+---@param b (System.Byte-arr)|(System.Byte[])
+---@param bitPos System.Int32
+---@param lBits System.Int32
+---@param copyBuf System.Boolean
+---@return Barotrauma.Networking.ReadWriteMessage
+_G['ReadWriteMessage'].__new = function(b, bitPos, lBits, copyBuf) end
+
diff --git a/Meta/Types/client/_00007FFD97EB7BF0.lua b/Meta/Types/client/_00007FFD97EB7BF0.lua
new file mode 100644
index 0000000..1daa61a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB7BF0.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.Networking.ClientPermissions : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageRound Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field Kick Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field Ban Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field Unban Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SelectSub Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SelectMode Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageCampaign Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ConsoleCommands Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ServerLog Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageSettings Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManagePermissions Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field KarmaImmunity Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageMoney Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SellInventoryItems Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SellSubItems Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageMap Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageHires Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageBotTalents Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SpamImmunity Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field All Barotrauma.Networking.ClientPermissions
+_G['ClientPermissions'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB83F8.lua b/Meta/Types/client/_00007FFD97EB83F8.lua
new file mode 100644
index 0000000..8ee6148
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB83F8.lua
@@ -0,0 +1,184 @@
+---@meta
+---@class Barotrauma.Networking.Client : System.Object
+---`Field Private Instance`
+---@field voiceVolume System.Single
+---`Field Private Instance`
+---@field radioNoiseChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field radioNoise System.Single
+---`Field Private Instance`
+---@field mutedLocally System.Boolean
+---`Field Public Instance`
+---@field IsOwner System.Boolean
+---`Field Public Instance`
+---@field IsDownloading System.Boolean
+---`Field Public Instance`
+---@field Karma System.Single
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field NameId System.UInt16
+---`Field Public Instance`
+---@field SessionId System.Byte
+---`Field Public Instance`
+---@field AccountInfo Barotrauma.Networking.AccountInfo
+---`Field Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Field Public Instance`
+---@field Ping System.UInt16
+---`Field Public Instance`
+---@field PreferredJob Barotrauma.Identifier
+---`Field Private Instance`
+---@field teamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field PreferredTeam Barotrauma.CharacterTeamType
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Public Instance`
+---@field UsingFreeCam System.Boolean
+---`Field Public Instance`
+---@field CharacterID System.UInt16
+---`Field Private Instance`
+---@field spectatePos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field muted System.Boolean
+---`Field Private Instance`
+---@field inGame System.Boolean
+---`Field Public Instance`
+---@field HasSpawned System.Boolean
+---`Field Public Instance`
+---@field GivenAchievements (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Permissions Barotrauma.Networking.ClientPermissions
+---`Field Public Instance`
+---@field PermittedConsoleCommands (System.Collections.Generic.HashSet*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+---`Field Private Instance`
+---@field votes (System.Object-arr)|(System.Object[])
+---`Field Public Static`
+---@field MaxVoiceChatBoost System.Single
+---`Field Public Static`
+---@field MaxNameLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoipSound Barotrauma.Sounds.VoipSound
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoiceVolume System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RadioNoise System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MutedLocally System.Boolean
+---`Getter Public Instance`
+---@field AllowKicking System.Boolean
+---`Getter Public Static`
+---@field ClientList (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Getter Public Instance`
+---@field SteamID System.UInt64
+---`Getter Public Instance`
+---@field AccountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpectatePos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---@field Spectating System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Muted System.Boolean
+---`Getter Public Instance`
+---@field HasPermissions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoipQueue Barotrauma.Networking.VoipQueue
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InGame System.Boolean
+_G['Client'] = {}
+
+---`Method Public Instance`
+_G['Client'].UpdateVoipSound = function() end
+
+---`Method Public Instance`
+---@overload fun(permissions:Barotrauma.Networking.ClientPermissions, permittedConsoleCommands:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)))
+---@param permissions Barotrauma.Networking.ClientPermissions
+---@param permittedConsoleCommands (System.Collections.Generic.IEnumerable*1Barotrauma*DebugConsole*Command)|(fun():(Barotrauma.DebugConsole.Command))
+_G['Client'].SetPermissions = function(permissions, permittedConsoleCommands) end
+
+---`Method Public Instance`
+---@param permission Barotrauma.Networking.ClientPermissions
+_G['Client'].GivePermission = function(permission) end
+
+---`Method Public Instance`
+---@param permission Barotrauma.Networking.ClientPermissions
+_G['Client'].RemovePermission = function(permission) end
+
+---`Method Public Instance`
+---@param permission Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['Client'].HasPermission = function(permission) end
+
+---`Method Public Instance`
+_G['Client'].ResetVotes = function() end
+
+---`Method Private Instance`
+_G['Client'].InitProjSpecific = function() end
+
+---`Method Private Instance`
+_G['Client'].DisposeProjSpecific = function() end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@return Barotrauma.Networking.Client.T
+_G['Client'].GetVote = function(voteType) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@param value System.Object
+_G['Client'].SetVote = function(voteType, value) end
+
+---`Method Public Instance`
+---@param userId System.String
+---@return System.Boolean
+_G['Client'].SessionOrAccountIdMatches = function(userId) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Client'].WritePermissions = function(msg) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param permissions Barotrauma.Networking.ClientPermissions-ref
+---@param permittedCommands System.Collections.Generic.List
+_G['Client'].ReadPermissions = function(inc, permissions, permittedCommands) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['Client'].ReadPermissions = function(inc) end
+
+---`Method Public Static`
+---@param name System.String
+---@return System.String
+_G['Client'].SanitizeName = function(name) end
+
+---`Method Public Instance Virtual`
+_G['Client'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param sessionId System.Byte
+---@return Barotrauma.Networking.Client
+_G['Client'] = function(name, sessionId) end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param sessionId System.Byte
+---@return Barotrauma.Networking.Client
+_G['Client'].__new = function(name, sessionId) end
+
diff --git a/Meta/Types/client/_00007FFD97EB8630.lua b/Meta/Types/client/_00007FFD97EB8630.lua
new file mode 100644
index 0000000..e8a2dea
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB8630.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.Networking.TempClient : System.ValueType
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field PreferredJob Barotrauma.Identifier
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field PreferredTeam Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field NameId System.UInt16
+---`Field Public Instance`
+---@field AccountInfo Barotrauma.Networking.AccountInfo
+---`Field Public Instance`
+---@field SessionId System.Byte
+---`Field Public Instance`
+---@field CharacterId System.UInt16
+---`Field Public Instance`
+---@field Karma System.Single
+---`Field Public Instance`
+---@field Muted System.Boolean
+---`Field Public Instance`
+---@field InGame System.Boolean
+---`Field Public Instance`
+---@field HasPermissions System.Boolean
+---`Field Public Instance`
+---@field IsOwner System.Boolean
+---`Field Public Instance`
+---@field IsDownloading System.Boolean
+_G['TempClient'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB8798.lua b/Meta/Types/client/_00007FFD97EB8798.lua
new file mode 100644
index 0000000..c9cc10b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB8798.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.Networking.NetworkConnectionStatus : System.Enum
+---`Field Public Static`
+---@field Connected Barotrauma.Networking.NetworkConnectionStatus
+---`Field Public Static`
+---@field Disconnected Barotrauma.Networking.NetworkConnectionStatus
+_G['NetworkConnectionStatus'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EB8AD0.lua b/Meta/Types/client/_00007FFD97EB8AD0.lua
new file mode 100644
index 0000000..9647ec8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB8AD0.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.Networking.NetworkConnection : System.Object
+---`Field Public Instance`
+---@field Endpoint Barotrauma.Networking.Endpoint
+---`Field Public Instance`
+---@field Status Barotrauma.Networking.NetworkConnectionStatus
+---`Field Public Static`
+---@field TimeoutThreshold System.Double
+---`Field Public Static`
+---@field TimeoutThresholdInGame System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccountInfo Barotrauma.Networking.AccountInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+_G['NetworkConnection'] = {}
+
+---`Method Public Instance`
+---@param endPoint Barotrauma.Networking.Endpoint
+---@return System.Boolean
+_G['NetworkConnection'].EndpointMatches = function(endPoint) end
+
+---`Method Public Instance Abstract Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['NetworkConnection'].AddressMatches = function(other) end
+
+---`Method Public Instance`
+---@param newInfo Barotrauma.Networking.AccountInfo
+_G['NetworkConnection'].SetAccountInfo = function(newInfo) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['NetworkConnection'].ToString = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EB8E80.lua b/Meta/Types/client/_00007FFD97EB8E80.lua
new file mode 100644
index 0000000..23c60d8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB8E80.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Networking.PipeConnection : Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*PipeEndpoint
+_G['PipeConnection'] = {}
+
+---`Method Public Instance Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['PipeConnection'].AddressMatches = function(other) end
+
+---`Constructor Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return Barotrauma.Networking.PipeConnection
+_G['PipeConnection'] = function(accountId) end
+
+---`Constructor Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return Barotrauma.Networking.PipeConnection
+_G['PipeConnection'].__new = function(accountId) end
+
diff --git a/Meta/Types/client/_00007FFD97EB9108.lua b/Meta/Types/client/_00007FFD97EB9108.lua
new file mode 100644
index 0000000..a6edcc8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB9108.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenConnection : Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*LidgrenEndpoint
+---`Field Public Instance`
+---@field NetConnection Lidgren.Network.NetConnection
+_G['LidgrenConnection'] = {}
+
+---`Method Public Instance Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['LidgrenConnection'].AddressMatches = function(other) end
+
+---`Constructor Public Instance`
+---@param netConnection Lidgren.Network.NetConnection
+---@return Barotrauma.Networking.LidgrenConnection
+_G['LidgrenConnection'] = function(netConnection) end
+
+---`Constructor Public Instance`
+---@param netConnection Lidgren.Network.NetConnection
+---@return Barotrauma.Networking.LidgrenConnection
+_G['LidgrenConnection'].__new = function(netConnection) end
+
diff --git a/Meta/Types/client/_00007FFD97EB9710.lua b/Meta/Types/client/_00007FFD97EB9710.lua
new file mode 100644
index 0000000..13e5df9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB9710.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Networking.SteamP2PConnection : Barotrauma.Networking.P2PConnection*1Barotrauma*Networking*SteamP2PEndpoint
+_G['SteamP2PConnection'] = {}
+
+---`Method Public Instance Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['SteamP2PConnection'].AddressMatches = function(other) end
+
+---`Constructor Public Instance`
+---@overload fun(steamId:Barotrauma.Networking.SteamId):Barotrauma.Networking.SteamP2PConnection
+---@param endpoint Barotrauma.Networking.SteamP2PEndpoint
+---@return Barotrauma.Networking.SteamP2PConnection
+_G['SteamP2PConnection'] = function(endpoint) end
+
+---`Constructor Public Instance`
+---@overload fun(steamId:Barotrauma.Networking.SteamId):Barotrauma.Networking.SteamP2PConnection
+---@param endpoint Barotrauma.Networking.SteamP2PEndpoint
+---@return Barotrauma.Networking.SteamP2PConnection
+_G['SteamP2PConnection'].__new = function(endpoint) end
+
diff --git a/Meta/Types/client/_00007FFD97EB9CB0.lua b/Meta/Types/client/_00007FFD97EB9CB0.lua
new file mode 100644
index 0000000..1cc8354
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB9CB0.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class Barotrauma.Networking.NetworkMember : System.Object
+---`Field NonPublic Instance`
+---@field updateTimer System.DateTime
+---`Field Public Instance`
+---@field ShowNetStats System.Boolean
+---`Field Public Instance`
+---@field SimulatedRandomLatency System.Single
+---`Field Public Instance`
+---@field SimulatedMinimumLatency System.Single
+---`Field Public Instance`
+---@field SimulatedLoss System.Single
+---`Field Public Instance`
+---@field SimulatedDuplicatesChance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastClientListUpdateID System.UInt16
+---`Getter Public Instance Abstract Virtual`
+---@field IsServer System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field IsClient System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field Voting Barotrauma.Voting
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KarmaManager Barotrauma.KarmaManager
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field GameStarted System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field ConnectedClients (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field RespawnManager Barotrauma.Networking.RespawnManager
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ServerSettings Barotrauma.Networking.ServerSettings
+---`Getter Public Instance`
+---@field UpdateInterval System.TimeSpan
+_G['NetworkMember'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param entity Barotrauma.Networking.INetSerializable
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['NetworkMember'].CreateEntityEvent = function(entity, extraData) end
+
+---`Method Public Instance`
+---@param message System.String
+---@param type Barotrauma.Networking.ChatMessageType
+---@param senderName? System.String
+---@param senderClient? Barotrauma.Networking.Client
+---@param senderEntity? Barotrauma.Entity
+---@param changeType? Barotrauma.Networking.PlayerConnectionChangeType
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['NetworkMember'].AddChatMessage = function(message, type, senderName, senderClient, senderEntity, changeType, textColor) end
+
+---`Method Public Instance Abstract Virtual`
+---@param message Barotrauma.Networking.ChatMessage
+_G['NetworkMember'].AddChatMessage = function(message) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@param name? System.String
+---@return System.String
+_G['NetworkMember'].ClientLogName = function(client, name) end
+
+---`Method Public Instance Abstract Virtual`
+---@param kickedName System.String
+---@param reason System.String
+_G['NetworkMember'].KickPlayer = function(kickedName, reason) end
+
+---`Method Public Instance Abstract Virtual`
+---@param kickedName System.String
+---@param reason System.String
+---@param duration? System.Nullable*1System*TimeSpan
+_G['NetworkMember'].BanPlayer = function(kickedName, reason, duration) end
+
+---`Method Public Instance Abstract Virtual`
+---@overload fun(playerName:System.String)
+---@param endpoint Barotrauma.Networking.Endpoint
+_G['NetworkMember'].UnbanPlayer = function(endpoint) end
+
+---`Method Public Static`
+---@param myVersion System.Version
+---@param remoteVersion System.Version
+---@return System.Boolean
+_G['NetworkMember'].IsCompatible = function(myVersion, remoteVersion) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.NetworkMember
+_G['NetworkMember'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.NetworkMember
+_G['NetworkMember'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EB9F60.lua b/Meta/Types/client/_00007FFD97EB9F60.lua
new file mode 100644
index 0000000..b3bc059
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EB9F60.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.Networking.BanList : System.Object
+---`Field Public Instance`
+---@field localRemovedBans (System.Collections.Generic.List*1System*UInt32)|(System.UInt32[])
+---`Field Private Instance`
+---@field bannedPlayers (System.Collections.Generic.List*1Barotrauma*Networking*BannedPlayer)|(Barotrauma.Networking.BannedPlayer[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BanFrame Barotrauma.GUIComponent
+---`Getter Public Instance`
+---@field BannedPlayers (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*BannedPlayer)|(Barotrauma.Networking.BannedPlayer[])
+---`Getter Public Instance`
+---@field BannedNames (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---`Getter Public Instance`
+---@field BannedAddresses (System.Collections.Generic.IEnumerable*1Barotrauma*Either*2Barotrauma*Networking*Address*2Barotrauma*Networking*AccountId)|(fun():(Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId))
+_G['BanList'] = {}
+
+---`Method Private Instance`
+_G['BanList'].RecreateBanFrame = function() end
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+---@return Barotrauma.GUIComponent
+_G['BanList'].CreateBanFrame = function(parent) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['BanList'].RemoveBan = function(button, obj) end
+
+---`Method Public Instance`
+---@param incMsg Barotrauma.Networking.IReadMessage
+_G['BanList'].ClientAdminRead = function(incMsg) end
+
+---`Method Public Instance`
+---@param outMsg Barotrauma.Networking.IWriteMessage
+_G['BanList'].ClientAdminWrite = function(outMsg) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.BanList
+_G['BanList'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.BanList
+_G['BanList'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EBB440.lua b/Meta/Types/client/_00007FFD97EBB440.lua
new file mode 100644
index 0000000..05ddc31
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EBB440.lua
@@ -0,0 +1,591 @@
+---@meta
+---@class Barotrauma.Networking.GameClient : Barotrauma.Networking.NetworkMember
+---`Field Public Instance`
+---@field DebugServerVoipAmplitude System.Single
+---`Field Private Instance`
+---@field nameId System.UInt16
+---`Field Public Instance`
+---@field PendingName System.String
+---`Field Private Instance`
+---@field reconnectBox Barotrauma.GUIMessageBox
+---`Field Private Instance`
+---@field waitInServerQueueBox Barotrauma.GUIMessageBox
+---`Field Public Instance`
+---@field endRoundVoteText Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field EndVoteTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field buttonContainer Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field NetStats Barotrauma.Networking.NetStats
+---`Field NonPublic Instance`
+---@field cameraFollowsSub Barotrauma.GUITickBox
+---`Field Public Instance`
+---@field EndCinematic Barotrauma.CameraTransition
+---`Field Public Instance`
+---@field LateCampaignJoin System.Boolean
+---`Field Private Instance`
+---@field permissions Barotrauma.Networking.ClientPermissions
+---`Field Private Instance`
+---@field permittedConsoleCommands (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field connected System.Boolean
+---`Field Private Instance`
+---@field debugStartGameCampaignSaveID System.Nullable*1System*UInt16
+---`Field Private Instance`
+---@field roundInitStatus Barotrauma.Networking.GameClient.RoundInitStatus
+---`Field Private Instance`
+---@field otherClients (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Public Instance`
+---@field ServerSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Private Instance`
+---@field canStart System.Boolean
+---`Field Private Instance`
+---@field lastSentChatMsgID System.UInt16
+---`Field Private Instance`
+---@field lastQueueChatMsgID System.UInt16
+---`Field Private Instance`
+---@field chatMsgQueue (System.Collections.Generic.List*1Barotrauma*Networking*ChatMessage)|(Barotrauma.Networking.ChatMessage[])
+---`Field Public Instance`
+---@field LastSentEntityEventID System.UInt16
+---`Field Public Instance`
+---@field HasSpawned System.Boolean
+---`Field Public Instance`
+---@field TraitorFirstObjective Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field TraitorMission Barotrauma.TraitorEventPrefab
+---`Field Private Instance`
+---@field previouslyConnectedClients (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Public Instance`
+---@field FileReceiver Barotrauma.Networking.FileReceiver
+---`Field Public Instance`
+---@field EntityEventManager Barotrauma.Networking.ClientEntityEventManager
+---`Field Private Instance`
+---@field serverEndpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---`Field Private Instance`
+---@field ownerKey Barotrauma.Option*1System*Int32
+---`Field Public Instance`
+---@field OnPermissionChanged Barotrauma.NamedEvent*1Barotrauma*Networking*GameClient*PermissionChangedEvent
+---`Field Private Instance`
+---@field connectCancelled System.Boolean
+---`Field Private Instance`
+---@field pendingIncomingMessages (System.Collections.Generic.List*1Barotrauma*Networking*IReadMessage)|(Barotrauma.Networking.IReadMessage[])
+---`Field Private Instance`
+---@field incomingMessagesToProcess (System.Collections.Generic.List*1Barotrauma*Networking*IReadMessage)|(Barotrauma.Networking.IReadMessage[])
+---`Field Private Instance`
+---@field initialUpdateReceived System.Boolean
+---`Field Private Instance`
+---@field debugEntityList (System.Collections.Generic.List*1Barotrauma*Networking*IServerSerializable)|(Barotrauma.Networking.IServerSerializable[])
+---`Field NonPublic Instance`
+---@field characterInfo Barotrauma.CharacterInfo
+---`Field NonPublic Instance`
+---@field myCharacter Barotrauma.Character
+---`Field NonPublic Instance`
+---@field inGameHUD Barotrauma.GUIFrame
+---`Field NonPublic Instance`
+---@field chatBox Barotrauma.ChatBox
+---`Field Public Instance`
+---@field ShowLogButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field hasPermissionToUseLogButton System.Boolean
+---`Field Private Instance`
+---@field votingInterface Barotrauma.VotingInterface
+---`Field Private Instance`
+---@field eventErrorWritten System.Boolean
+---`Field Public Static`
+---@field CampaignSaveTransferTimeOut System.TimeSpan
+---`Field Public Static`
+---@field LevelTransitionTimeOut System.TimeSpan
+---`Getter Public Instance Virtual`
+---@field IsClient System.Boolean
+---`Getter Public Instance Virtual`
+---@field IsServer System.Boolean
+---`Getter Public Instance Virtual`
+---@field Voting Barotrauma.Voting
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClientPeer Barotrauma.Networking.ClientPeer
+---`Getter Public Instance`
+---@field FollowSubTickBox Barotrauma.GUITickBox
+---`Getter Public Instance`
+---@field IsFollowSubTickBoxVisible System.Boolean
+---`Getter Public Instance`
+---@field RoundStarting System.Boolean
+---`Getter Public Instance`
+---@field ServerName System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndRoundTimeRemaining System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SessionId System.Byte
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoipClient Barotrauma.Networking.VoipClient
+---`Getter Public Instance Virtual`
+---@field ConnectedClients (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Getter Public Instance`
+---@field MyClient Barotrauma.Networking.Client
+---`Getter Public Instance`
+---@field Ping Barotrauma.Option*1System*Int32
+---`Getter Public Instance`
+---@field PreviouslyConnectedClients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---`Getter Public Instance`
+---@field MidRoundSyncing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaitForNextRoundRespawn System.Nullable*1System*Boolean
+---`Getter Public Instance`
+---@field IsServerOwner System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterInfo Barotrauma.CharacterInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---@field InGameHUD Barotrauma.GUIFrame
+---`Getter Public Instance`
+---@field ChatBox Barotrauma.ChatBox
+---`Getter Public Instance`
+---@field VotingInterface Barotrauma.VotingInterface
+_G['GameClient'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(playerName:System.String)
+---@param endpoint Barotrauma.Networking.Endpoint
+_G['GameClient'].UnbanPlayer = function(endpoint) end
+
+---`Method Public Instance`
+---@param targetClient Barotrauma.Networking.Client
+_G['GameClient'].UpdateClientPermissions = function(targetClient) end
+
+---`Method Public Instance`
+_G['GameClient'].SendCampaignState = function() end
+
+---`Method Public Instance`
+---@param command System.String
+_G['GameClient'].SendConsoleCommand = function(command) end
+
+---`Method Public Instance`
+---@param continueCampaign? System.Boolean
+_G['GameClient'].RequestStartRound = function(continueCampaign) end
+
+---`Method Public Instance`
+---@param sub Barotrauma.SubmarineInfo
+---@param type Barotrauma.SelectedSubType
+_G['GameClient'].RequestSelectSub = function(sub, type) end
+
+---`Method Public Instance`
+---@param modeIndex System.Int32
+_G['GameClient'].RequestSelectMode = function(modeIndex) end
+
+---`Method Public Instance`
+---@param sub Barotrauma.SubmarineInfo
+---@param saveName System.String
+---@param mapSeed System.String
+---@param settings Barotrauma.CampaignSettings
+_G['GameClient'].SetupNewCampaign = function(sub, saveName, mapSeed, settings) end
+
+---`Method Public Instance`
+---@param filePath System.String
+---@param backupIndex Barotrauma.Option*1System*UInt32
+_G['GameClient'].SetupLoadCampaign = function(filePath, backupIndex) end
+
+---`Method Public Instance`
+---@param save System.Boolean
+---@param quitCampaign? System.Boolean
+_G['GameClient'].RequestRoundEnd = function(save, quitCampaign) end
+
+---`Method Public Instance`
+---@param button Barotrauma.GUIButton
+---@param _ System.Object
+---@return System.Boolean
+_G['GameClient'].JoinOnGoingClicked = function(button, _) end
+
+---`Method Public Instance`
+---@param tickBox Barotrauma.GUITickBox
+---@return System.Boolean
+_G['GameClient'].SetReadyToStart = function(tickBox) end
+
+---`Method Public Instance`
+---@param tickBox Barotrauma.GUITickBox
+---@return System.Boolean
+_G['GameClient'].ToggleEndRoundVote = function(tickBox) end
+
+---`Method Public Instance`
+_G['GameClient'].UpdateLogButtonPermissions = function() end
+
+---`Method Private Instance`
+_G['GameClient'].UpdateLogButtonVisibility = function() end
+
+---`Method Public Instance`
+---@param textBox Barotrauma.GUITextBox
+---@param text System.String
+---@return System.Boolean
+_G['GameClient'].TypingChatMessage = function(textBox, text) end
+
+---`Method Public Instance`
+---@param textBox Barotrauma.GUITextBox
+---@param message System.String
+---@return System.Boolean
+_G['GameClient'].EnterChatMessage = function(textBox, message) end
+
+---`Method Public Instance`
+_G['GameClient'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['GameClient'].UpdateHUD = function(deltaTime) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GameClient'].Draw = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param frame Barotrauma.GUIComponent
+---@return System.Boolean
+_G['GameClient'].SelectCrewCharacter = function(character, frame) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@param frame Barotrauma.GUIComponent
+---@return System.Boolean
+_G['GameClient'].SelectCrewClient = function(client, frame) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@param frame Barotrauma.GUIComponent
+_G['GameClient'].CreateSelectionRelatedButtons = function(client, frame) end
+
+---`Method Public Instance`
+---@param clientName System.String
+---@param ban System.Boolean
+_G['GameClient'].CreateKickReasonPrompt = function(clientName, ban) end
+
+---`Method Public Instance`
+---@param error Barotrauma.Networking.ClientNetError
+---@param expectedId? System.UInt16
+---@param eventId? System.UInt16
+---@param entityId? System.UInt16
+_G['GameClient'].ReportError = function(error, expectedId, eventId, entityId) end
+
+---`Method Private Instance`
+---@param error Barotrauma.Networking.ClientNetError
+---@param expectedID System.UInt16
+---@param eventID System.UInt16
+---@param entityID System.UInt16
+_G['GameClient'].WriteEventErrorData = function(error, expectedID, eventID, entityID) end
+
+---`Method Private Static`
+---@param errorMsg System.String-ref
+---@param e System.Exception
+_G['GameClient'].AppendExceptionInfo = function(errorMsg, e) end
+
+---`Method Public Instance`
+_G['GameClient'].ForceTimeOut = function() end
+
+---`Method Public Instance`
+---@param value System.String
+_G['GameClient'].SetName = function(value) end
+
+---`Method Public Instance`
+_G['GameClient'].ForceNameJobTeamUpdate = function() end
+
+---`Method Public Instance`
+_G['GameClient'].PrintReceiverTransters = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Networking.ServerInfo
+_G['GameClient'].CreateServerInfoFromSettings = function() end
+
+---`Method Private Instance`
+_G['GameClient'].InitiateServerJoin = function() end
+
+---`Method Public Static`
+---@param isPublic System.Boolean
+_G['GameClient'].SetLobbyPublic = function(isPublic) end
+
+---`Method Private Instance`
+---@return Barotrauma.Networking.ClientPeer
+_G['GameClient'].CreateNetPeer = function() end
+
+---`Method Public Instance`
+_G['GameClient'].CreateServerCrashMessage = function() end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['GameClient'].ReturnToPreviousMenu = function(button, obj) end
+
+---`Method Private Instance`
+_G['GameClient'].CancelConnect = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameClient'].WaitForStartingInfo = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['GameClient'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadDataMessage = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadStartGameFinalize = function(inc) end
+
+---`Method Private Instance`
+_G['GameClient'].ApplyDisembarkPerk = function() end
+
+---`Method Private Instance`
+---@param disconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['GameClient'].OnClientPeerDisconnect = function(disconnectPacket) end
+
+---`Method Private Instance`
+---@param headerText Barotrauma.LocalizedString
+---@param bodyText Barotrauma.LocalizedString
+_G['GameClient'].CreateReconnectBox = function(headerText, bodyText) end
+
+---`Method Private Instance`
+_G['GameClient'].CloseReconnectBox = function() end
+
+---`Method Private Instance`
+_G['GameClient'].AskToWaitInQueue = function() end
+
+---`Method Private Instance`
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['GameClient'].AttemptReconnect = function(peerDisconnectPacket) end
+
+---`Method Private Instance`
+---@param connectCommand System.String
+_G['GameClient'].UpdatePresence = function(connectCommand) end
+
+---`Method Private Instance`
+_G['GameClient'].OnConnectionInitializationComplete = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameClient'].WaitInServerQueue = function() end
+
+---`Method Private Static`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadAchievement = function(inc) end
+
+---`Method Private Static`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadAchievementStat = function(inc) end
+
+---`Method Private Static`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadCircuitBoxMessage = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadPermissions = function(inc) end
+
+---`Method Private Instance`
+---@param newPermissions Barotrauma.Networking.ClientPermissions
+---@param permittedConsoleCommands (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['GameClient'].SetMyPermissions = function(newPermissions, permittedConsoleCommands) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameClient'].StartGame = function(inc) end
+
+---`Method Public Instance`
+---@param endMessage System.String
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+---@param traitorResults? System.Nullable*1Barotrauma*TraitorManager*TraitorResults
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameClient'].EndGame = function(endMessage, transitionType, traitorResults) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadInitialUpdate = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadClientList = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadLobbyUpdate = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameClient'].ReadIngameUpdate = function(inc) end
+
+---`Method Private Instance`
+_G['GameClient'].SendLobbyUpdate = function() end
+
+---`Method Private Instance`
+_G['GameClient'].SendIngameUpdate = function() end
+
+---`Method Public Instance`
+---@overload fun(msg:Barotrauma.Networking.ChatMessage)
+---@param message System.String
+---@param type? Barotrauma.Networking.ChatMessageType
+_G['GameClient'].SendChatMessage = function(message, type) end
+
+---`Method Public Instance`
+---@param waitForNextRoundRespawn System.Boolean
+_G['GameClient'].SendRespawnPromptResponse = function(waitForNextRoundRespawn) end
+
+---`Method Public Instance`
+---@param bot Barotrauma.CharacterInfo
+_G['GameClient'].SendTakeOverBotRequest = function(bot) end
+
+---`Method Public Instance`
+---@param fileType Barotrauma.Networking.FileTransferType
+---@param file System.String
+---@param fileHash System.String
+_G['GameClient'].RequestFile = function(fileType, file, fileHash) end
+
+---`Method Public Instance`
+---@overload fun(transfer:Barotrauma.Networking.FileReceiver.FileTransferIn)
+---@param id System.Int32
+_G['GameClient'].CancelFileTransfer = function(id) end
+
+---`Method Public Instance`
+---@param transfer Barotrauma.Networking.FileReceiver.FileTransferIn
+---@param expecting System.Int32
+---@param lastSeen System.Int32
+---@param reliable? System.Boolean
+_G['GameClient'].UpdateFileTransfer = function(transfer, expecting, lastSeen, reliable) end
+
+---`Method Private Instance`
+---@param transfer Barotrauma.Networking.FileReceiver.FileTransferIn
+_G['GameClient'].OnFileReceived = function(transfer) end
+
+---`Method Private Instance`
+---@param transfer Barotrauma.Networking.FileReceiver.FileTransferIn
+_G['GameClient'].OnTransferFailed = function(transfer) end
+
+---`Method Public Instance Virtual`
+---@param entity Barotrauma.Networking.INetSerializable
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['GameClient'].CreateEntityEvent = function(entity, extraData) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Networking.INetSerializable
+---@param extraData Barotrauma.Networking.NetEntityEvent.IData
+---@param requireControlledCharacter System.Boolean
+_G['GameClient'].CreateEntityEvent = function(entity, extraData, requireControlledCharacter) end
+
+---`Method Public Instance`
+---@param permission Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['GameClient'].HasPermission = function(permission) end
+
+---`Method Public Instance`
+---@param commandName Barotrauma.Identifier
+---@return System.Boolean
+_G['GameClient'].HasConsoleCommandPermission = function(commandName) end
+
+---`Method Public Instance`
+_G['GameClient'].Quit = function() end
+
+---`Method Public Instance`
+---@param newName? System.String
+_G['GameClient'].SendCharacterInfo = function(newName) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param newName? System.String
+_G['GameClient'].WriteCharacterInfo = function(msg, newName) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@param data System.Object
+_G['GameClient'].Vote = function(voteType, data) end
+
+---`Method Public Instance`
+---@param votedClient Barotrauma.Networking.Client
+_G['GameClient'].VoteForKick = function(votedClient) end
+
+---`Method Public Instance`
+---@param sub Barotrauma.SubmarineInfo
+---@param transferItems System.Boolean
+---@param voteType Barotrauma.Networking.VoteType
+_G['GameClient'].InitiateSubmarineChange = function(sub, transferItems, voteType) end
+
+---`Method Public Instance`
+---@param starter Barotrauma.Networking.Client
+---@param info Barotrauma.SubmarineInfo
+---@param type Barotrauma.Networking.VoteType
+---@param transferItems System.Boolean
+---@param timeOut System.Single
+_G['GameClient'].ShowSubmarineChangeVoteInterface = function(starter, info, type, transferItems, timeOut) end
+
+---`Method Public Instance`
+---@param starter Barotrauma.Networking.Client
+---@param from Barotrauma.Networking.Client
+---@param amount System.Int32
+---@param to Barotrauma.Networking.Client
+---@param timeOut System.Single
+_G['GameClient'].ShowMoneyTransferVoteInterface = function(starter, from, amount, to, timeOut) end
+
+---`Method Public Instance Virtual`
+---@param message Barotrauma.Networking.ChatMessage
+_G['GameClient'].AddChatMessage = function(message) end
+
+---`Method Public Instance Virtual`
+---@param kickedName System.String
+---@param reason System.String
+_G['GameClient'].KickPlayer = function(kickedName, reason) end
+
+---`Method Public Instance Virtual`
+---@param kickedName System.String
+---@param reason System.String
+---@param duration? System.Nullable*1System*TimeSpan
+_G['GameClient'].BanPlayer = function(kickedName, reason, duration) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.GameClient
+---@overload fun(newName:System.String, endpoint:Barotrauma.Networking.Endpoint, serverName:System.String, ownerKey:Barotrauma.Option*1System*Int32):Barotrauma.Networking.GameClient
+---@param newName System.String
+---@param endpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---@param serverName System.String
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.GameClient
+_G['GameClient'] = function(newName, endpoints, serverName, ownerKey) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.GameClient
+---@overload fun(newName:System.String, endpoint:Barotrauma.Networking.Endpoint, serverName:System.String, ownerKey:Barotrauma.Option*1System*Int32):Barotrauma.Networking.GameClient
+---@param newName System.String
+---@param endpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---@param serverName System.String
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.GameClient
+_G['GameClient'].__new = function(newName, endpoints, serverName, ownerKey) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.GameClient
+---@overload fun(newName:System.String, endpoint:Barotrauma.Networking.Endpoint, serverName:System.String, ownerKey:Barotrauma.Option*1System*Int32):Barotrauma.Networking.GameClient
+---@param newName System.String
+---@param endpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---@param serverName System.String
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.GameClient
+_G['GameClient'] = function(newName, endpoints, serverName, ownerKey) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.GameClient
+---@overload fun(newName:System.String, endpoint:Barotrauma.Networking.Endpoint, serverName:System.String, ownerKey:Barotrauma.Option*1System*Int32):Barotrauma.Networking.GameClient
+---@param newName System.String
+---@param endpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---@param serverName System.String
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.GameClient
+_G['GameClient'].__new = function(newName, endpoints, serverName, ownerKey) end
+
diff --git a/Meta/Types/client/_00007FFD97EBE090.lua b/Meta/Types/client/_00007FFD97EBE090.lua
new file mode 100644
index 0000000..236b5f6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EBE090.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.Networking.ClientPeer : System.Object
+---`Field Public Instance`
+---@field AutomaticallyAttemptedPassword System.String
+---`Field NonPublic Instance`
+---@field callbacks Barotrauma.Networking.ClientPeer.Callbacks
+---`Field Public Instance`
+---@field ServerEndpoint Barotrauma.Networking.Endpoint
+---`Field Public Instance`
+---@field AllServerEndpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---`Field NonPublic Instance`
+---@field ownerKey Barotrauma.Option*1System*Int32
+---`Field NonPublic Instance`
+---@field isActive System.Boolean
+---`Field NonPublic Instance`
+---@field initializationStep Barotrauma.Networking.ConnectionInitialization
+---`Field NonPublic Instance`
+---@field passwordSalt System.Int32
+---`Field NonPublic Instance`
+---@field authTicket Barotrauma.Option*1Barotrauma*Networking*AuthenticationTicket
+---`Field Private Instance`
+---@field passwordMsgBox Barotrauma.GUIMessageBox
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ServerContentPackages (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*ServerContentPackage)|(Barotrauma.Networking.ServerContentPackage[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowModDownloads System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ServerConnection Barotrauma.Networking.NetworkConnection
+---`Getter NonPublic Instance`
+---@field IsOwner System.Boolean
+---`Getter Public Instance`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContentPackageOrderReceived System.Boolean
+---`Getter Public Instance`
+---@field WaitingForPassword System.Boolean
+_G['ClientPeer'] = {}
+
+---`Method Public Instance Abstract Virtual`
+_G['ClientPeer'].Start = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['ClientPeer'].Close = function(peerDisconnectPacket) end
+
+---`Method Public Instance Abstract Virtual`
+---@param deltaTime System.Single
+_G['ClientPeer'].Update = function(deltaTime) end
+
+---`Method Public Instance Abstract Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@param compressPastThreshold? System.Boolean
+_G['ClientPeer'].Send = function(msg, deliveryMethod, compressPastThreshold) end
+
+---`Method Public Instance Abstract Virtual`
+---@param password System.String
+_G['ClientPeer'].SendPassword = function(password) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param headers Barotrauma.Networking.PeerPacketHeaders
+---@param body Barotrauma.INetSerializableStruct
+_G['ClientPeer'].SendMsgInternal = function(headers, body) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Networking*AccountId
+_G['ClientPeer'].GetAccountId = function() end
+
+---`Method NonPublic Instance`
+_G['ClientPeer'].OnInitializationComplete = function() end
+
+---`Method NonPublic Instance`
+---@param inc Barotrauma.Networking.ClientPeer.IncomingInitializationMessage
+_G['ClientPeer'].ReadConnectionInitializationStep = function(inc) end
+
+---`Method Public Instance Abstract Virtual`
+_G['ClientPeer'].ForceTimeOut = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ClientPeer'].DebugSendRawMessage = function(msg) end
+
+---`Constructor NonPublic Instance`
+---@param serverEndpoint Barotrauma.Networking.Endpoint
+---@param allServerEndpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---@param callbacks Barotrauma.Networking.ClientPeer.Callbacks
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.ClientPeer
+_G['ClientPeer'] = function(serverEndpoint, allServerEndpoints, callbacks, ownerKey) end
+
+---`Constructor NonPublic Instance`
+---@param serverEndpoint Barotrauma.Networking.Endpoint
+---@param allServerEndpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---@param callbacks Barotrauma.Networking.ClientPeer.Callbacks
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.ClientPeer
+_G['ClientPeer'].__new = function(serverEndpoint, allServerEndpoints, callbacks, ownerKey) end
+
diff --git a/Meta/Types/client/_00007FFD97EBF428.lua b/Meta/Types/client/_00007FFD97EBF428.lua
new file mode 100644
index 0000000..69f87f5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EBF428.lua
@@ -0,0 +1,75 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenClientPeer : Barotrauma.Networking.ClientPeer*1Barotrauma*Networking*LidgrenEndpoint
+---`Field Private Instance`
+---@field netClient Lidgren.Network.NetClient
+---`Field Private Instance`
+---@field netPeerConfiguration Lidgren.Network.NetPeerConfiguration
+---`Field Private Instance`
+---@field incomingLidgrenMessages (System.Collections.Generic.List*1Lidgren*Network*NetIncomingMessage)|(Lidgren.Network.NetIncomingMessage[])
+_G['LidgrenClientPeer'] = {}
+
+---`Method Public Instance Virtual`
+_G['LidgrenClientPeer'].Start = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['LidgrenClientPeer'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param lidgrenMsg Lidgren.Network.NetIncomingMessage
+_G['LidgrenClientPeer'].HandleDataMessage = function(lidgrenMsg) end
+
+---`Method Private Instance`
+---@param inc Lidgren.Network.NetIncomingMessage
+_G['LidgrenClientPeer'].HandleStatusChanged = function(inc) end
+
+---`Method Public Instance Virtual`
+---@param password System.String
+_G['LidgrenClientPeer'].SendPassword = function(password) end
+
+---`Method Public Instance Virtual`
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['LidgrenClientPeer'].Close = function(peerDisconnectPacket) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@param compressPastThreshold? System.Boolean
+_G['LidgrenClientPeer'].Send = function(msg, deliveryMethod, compressPastThreshold) end
+
+---`Method NonPublic Instance Virtual`
+---@param headers Barotrauma.Networking.PeerPacketHeaders
+---@param body Barotrauma.INetSerializableStruct
+_G['LidgrenClientPeer'].SendMsgInternal = function(headers, body) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@return Lidgren.Network.NetSendResult
+_G['LidgrenClientPeer'].ForwardToLidgren = function(msg, deliveryMethod) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Networking*AccountId
+_G['LidgrenClientPeer'].GetAccountId = function() end
+
+---`Method Public Instance Virtual`
+_G['LidgrenClientPeer'].ForceTimeOut = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['LidgrenClientPeer'].DebugSendRawMessage = function(msg) end
+
+---`Constructor Public Instance`
+---@param endpoint Barotrauma.Networking.LidgrenEndpoint
+---@param callbacks Barotrauma.Networking.ClientPeer.Callbacks
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.LidgrenClientPeer
+_G['LidgrenClientPeer'] = function(endpoint, callbacks, ownerKey) end
+
+---`Constructor Public Instance`
+---@param endpoint Barotrauma.Networking.LidgrenEndpoint
+---@param callbacks Barotrauma.Networking.ClientPeer.Callbacks
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@return Barotrauma.Networking.LidgrenClientPeer
+_G['LidgrenClientPeer'].__new = function(endpoint, callbacks, ownerKey) end
+
diff --git a/Meta/Types/client/_00007FFD97EBF8C0.lua b/Meta/Types/client/_00007FFD97EBF8C0.lua
new file mode 100644
index 0000000..6009ed7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EBF8C0.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.Key : System.Object
+---`Field Private Instance`
+---@field hit System.Boolean
+---`Field Private Instance`
+---@field hitQueue System.Boolean
+---`Field Private Instance`
+---@field held System.Boolean
+---`Field Private Instance`
+---@field heldQueue System.Boolean
+---`Field Private Instance`
+---@field inputType Barotrauma.InputType
+---`Getter Private Instance`
+---@field binding Barotrauma.KeyOrMouse
+---`Getter Public Instance`
+---@field State Barotrauma.KeyOrMouse
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hit System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Held System.Boolean
+---`Getter Public Instance`
+---@field GetHeldQueue System.Boolean
+---`Getter Public Instance`
+---@field GetHitQueue System.Boolean
+_G['Key'] = {}
+
+---`Method Private Static`
+---@param input Barotrauma.InputType
+---@return System.Boolean
+_G['Key'].AllowOnGUI = function(input) end
+
+---`Method Public Instance`
+---@overload fun()
+---@param hit System.Boolean
+---@param held System.Boolean
+_G['Key'].SetState = function(hit, held) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Key'].DequeueHit = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Key'].DequeueHeld = function() end
+
+---`Method Public Instance`
+_G['Key'].Reset = function() end
+
+---`Method Public Instance`
+_G['Key'].ResetHit = function() end
+
+---`Method Public Instance`
+_G['Key'].ResetHeld = function() end
+
+---`Constructor Public Instance`
+---@param inputType Barotrauma.InputType
+---@return Barotrauma.Key
+_G['Key'] = function(inputType) end
+
+---`Constructor Public Instance`
+---@param inputType Barotrauma.InputType
+---@return Barotrauma.Key
+_G['Key'].__new = function(inputType) end
+
diff --git a/Meta/Types/client/_00007FFD97EBFA88.lua b/Meta/Types/client/_00007FFD97EBFA88.lua
new file mode 100644
index 0000000..c5d4994
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EBFA88.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class EventInput.KeyboardDispatcher : System.Object
+---`Field Private Instance`
+---@field _subscriber EventInput.IKeyboardSubscriber
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Subscriber EventInput.IKeyboardSubscriber
+_G['EventInput']['KeyboardDispatcher'] = {}
+
+---`Method Public Instance`
+---@param sender System.Object
+---@param e Microsoft.Xna.Framework.TextEditingEventArgs
+_G['EventInput']['KeyboardDispatcher'].EventInput_TextEditing = function(sender, e) end
+
+---`Method Public Instance`
+---@param sender System.Object
+---@param e EventInput.KeyEventArgs
+_G['EventInput']['KeyboardDispatcher'].EventInput_KeyDown = function(sender, e) end
+
+---`Method Private Instance`
+---@param sender System.Object
+---@param e EventInput.CharacterEventArgs
+_G['EventInput']['KeyboardDispatcher'].EventInput_CharEntered = function(sender, e) end
+
+---`Constructor Public Instance`
+---@param window Microsoft.Xna.Framework.GameWindow
+---@return EventInput.KeyboardDispatcher
+_G['EventInput']['KeyboardDispatcher'] = function(window) end
+
+---`Constructor Public Instance`
+---@param window Microsoft.Xna.Framework.GameWindow
+---@return EventInput.KeyboardDispatcher
+_G['EventInput']['KeyboardDispatcher'].__new = function(window) end
+
diff --git a/Meta/Types/client/_00007FFD97EBFD30.lua b/Meta/Types/client/_00007FFD97EBFD30.lua
new file mode 100644
index 0000000..b179a05
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EBFD30.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class EventInput.KeyEventArgs : System.ValueType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KeyCode Microsoft.Xna.Framework.Input.Keys
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Character System.Char
+_G['EventInput']['KeyEventArgs'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['EventInput']['KeyEventArgs'].ToString = function() end
+
+---`Method Private Instance`
+---@param builder System.Text.StringBuilder
+---@return System.Boolean
+_G['EventInput']['KeyEventArgs'].PrintMembers = function(builder) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['EventInput']['KeyEventArgs'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other EventInput.KeyEventArgs
+---@return System.Boolean
+_G['EventInput']['KeyEventArgs'].Equals = function(other) end
+
+---`Method Public Instance`
+---@param KeyCode Microsoft.Xna.Framework.Input.Keys-ref
+---@param Character System.Char-ref
+_G['EventInput']['KeyEventArgs'].Deconstruct = function(KeyCode, Character) end
+
+---`Constructor Public Instance`
+---@param KeyCode Microsoft.Xna.Framework.Input.Keys
+---@param Character System.Char
+---@return EventInput.KeyEventArgs
+_G['EventInput']['KeyEventArgs'] = function(KeyCode, Character) end
+
+---`Constructor Public Instance`
+---@param KeyCode Microsoft.Xna.Framework.Input.Keys
+---@param Character System.Char
+---@return EventInput.KeyEventArgs
+_G['EventInput']['KeyEventArgs'].__new = function(KeyCode, Character) end
+
diff --git a/Meta/Types/client/_00007FFD97ED0200.lua b/Meta/Types/client/_00007FFD97ED0200.lua
new file mode 100644
index 0000000..20af377
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED0200.lua
@@ -0,0 +1,92 @@
+---@meta
+---@class Barotrauma.Particles.ParticleManager : System.Object
+---`Field Private Instance`
+---@field particleCount System.Int32
+---`Field Private Instance`
+---@field maxParticles System.Int32
+---`Field Private Instance`
+---@field particles (Barotrauma.Particles.Particle-arr)|(Barotrauma.Particles.Particle[])
+---`Field Private Instance`
+---@field particlesInCreationOrder (System.Collections.Generic.LinkedList*1Barotrauma*Particles*Particle)|(fun():(Barotrauma.Particles.Particle))
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Static`
+---@field MaxOutOfViewDist System.Int32
+---`Getter Public Instance`
+---@field ParticleCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxParticles System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Camera Barotrauma.Camera
+_G['ParticleManager'] = {}
+
+---`Method Public Instance`
+---@overload fun(prefabName:System.String, position:Microsoft.Xna.Framework.Vector2, angle:System.Single, speed:System.Single, hullGuess?:Barotrauma.Hull, collisionIgnoreTimer?:System.Single, tracerPoints?:System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2):(Barotrauma.Particles.Particle)
+---@overload fun(prefabName:System.String, position:Microsoft.Xna.Framework.Vector2, velocity:Microsoft.Xna.Framework.Vector2, rotation?:System.Single, hullGuess?:Barotrauma.Hull, collisionIgnoreTimer?:System.Single, tracerPoints?:System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2):(Barotrauma.Particles.Particle)
+---@param prefab Barotrauma.Particles.ParticlePrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param hullGuess? Barotrauma.Hull
+---@param drawOrder? Barotrauma.Particles.ParticleDrawOrder
+---@param collisionIgnoreTimer? System.Single
+---@param lifeTimeMultiplier? System.Single
+---@param tracerPoints? System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.Particles.Particle
+_G['ParticleManager'].CreateParticle = function(prefab, position, velocity, rotation, hullGuess, drawOrder, collisionIgnoreTimer, lifeTimeMultiplier, tracerPoints) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.List*1Barotrauma*Particles*ParticlePrefab)|(Barotrauma.Particles.ParticlePrefab[])
+_G['ParticleManager'].GetPrefabList = function() end
+
+---`Method Public Static`
+---@param prefabName System.String
+---@return Barotrauma.Particles.ParticlePrefab
+_G['ParticleManager'].FindPrefab = function(prefabName) end
+
+---`Method Private Instance`
+---@param index System.Int32
+_G['ParticleManager'].RemoveParticle = function(index) end
+
+---`Method Public Instance`
+---@param particle Barotrauma.Particles.Particle
+_G['ParticleManager'].RemoveParticle = function(particle) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['ParticleManager'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+_G['ParticleManager'].UpdateTransforms = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Particles*ParticlePrefab*1System*Int32)|({[Barotrauma.Particles.ParticlePrefab]:(System.Int32)})
+_G['ParticleManager'].CountActiveParticles = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param inWater System.Boolean
+---@param inSub System.Nullable*1System*Boolean
+---@param blendState Barotrauma.Particles.ParticleBlendState
+---@param background? System.Nullable*1System*Boolean
+_G['ParticleManager'].Draw = function(spriteBatch, inWater, inSub, blendState, background) end
+
+---`Method Public Instance`
+_G['ParticleManager'].ClearParticles = function() end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+_G['ParticleManager'].RemoveByPrefab = function(prefab) end
+
+---`Constructor Public Instance`
+---@param cam Barotrauma.Camera
+---@return Barotrauma.Particles.ParticleManager
+_G['ParticleManager'] = function(cam) end
+
+---`Constructor Public Instance`
+---@param cam Barotrauma.Camera
+---@return Barotrauma.Particles.ParticleManager
+_G['ParticleManager'].__new = function(cam) end
+
diff --git a/Meta/Types/client/_00007FFD97ED0778.lua b/Meta/Types/client/_00007FFD97ED0778.lua
new file mode 100644
index 0000000..5c08c6e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED0778.lua
@@ -0,0 +1,150 @@
+---@meta
+---@class Barotrauma.Particles.Particle : System.Object
+---`Field Private Instance`
+---@field prefab Barotrauma.Particles.ParticlePrefab
+---`Field Private Instance`
+---@field debugName System.String
+---`Field Public Instance`
+---@field OnChangeHull (Barotrauma.Particles.Particle.OnChangeHullHandler)|(fun(position:Microsoft.Xna.Framework.Vector2, currentHull:Barotrauma.Hull))
+---`Field Public Instance`
+---@field OnCollision (Barotrauma.Particles.Particle.OnChangeHullHandler)|(fun(position:Microsoft.Xna.Framework.Vector2, currentHull:Barotrauma.Hull))
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field prevPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field velocity Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field rotation System.Single
+---`Field Private Instance`
+---@field prevRotation System.Single
+---`Field Private Instance`
+---@field angularVelocity System.Single
+---`Field Private Instance`
+---@field collisionIgnoreTimer System.Single
+---`Field Private Instance`
+---@field size Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field sizeChange Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field color Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field changeColor System.Boolean
+---`Field Private Instance`
+---@field UseMiddleColor System.Boolean
+---`Field Private Instance`
+---@field spriteIndex System.Int32
+---`Field Private Instance`
+---@field totalLifeTime System.Single
+---`Field Private Instance`
+---@field lifeTime System.Single
+---`Field Private Instance`
+---@field startDelay System.Single
+---`Field Private Instance`
+---@field velocityChange Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field velocityChangeWater Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field drawPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field drawRotation System.Single
+---`Field Private Instance`
+---@field colliderRadius Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field currentHull Barotrauma.Hull
+---`Field Private Instance`
+---@field hullGaps (System.Collections.Generic.List*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Private Instance`
+---@field hasSubEmitters System.Boolean
+---`Field Private Instance`
+---@field subEmitters (System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter)|(Barotrauma.Particles.ParticleEmitter[])
+---`Field Private Instance`
+---@field animState System.Single
+---`Field Private Instance`
+---@field animFrame System.Int32
+---`Field Private Instance`
+---@field collisionUpdateTimer System.Single
+---`Field Private Instance`
+---@field changesSize System.Boolean
+---`Field Public Instance`
+---@field HighQualityCollisionDetection System.Boolean
+---`Field Public Instance`
+---@field ColorMultiplier Microsoft.Xna.Framework.Vector4
+---`Field Public Instance`
+---@field VelocityChangeMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DrawOrder Barotrauma.Particles.ParticleDrawOrder
+---`Getter Public Instance`
+---@field DrawTarget Barotrauma.Particles.ParticlePrefab.DrawTargetType
+---`Getter Public Instance`
+---@field BlendState Barotrauma.Particles.ParticleBlendState
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StartDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Getter Public Instance`
+---@field Prefab Barotrauma.Particles.ParticlePrefab
+_G['Particle'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Particle'].ToString = function() end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param speed Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param hullGuess? Barotrauma.Hull
+---@param drawOrder? Barotrauma.Particles.ParticleDrawOrder
+---@param collisionIgnoreTimer? System.Single
+---@param lifeTimeMultiplier? System.Single
+---@param tracerPoints? System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2
+_G['Particle'].Init = function(prefab, position, speed, rotation, hullGuess, drawOrder, collisionIgnoreTimer, lifeTimeMultiplier, tracerPoints) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@return Barotrauma.Particles.Particle.UpdateResult
+_G['Particle'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@return Barotrauma.Particles.Particle.UpdateResult
+_G['Particle'].CollisionUpdate = function() end
+
+---`Method Private Instance`
+_G['Particle'].RefreshColliderSize = function() end
+
+---`Method Private Instance`
+---@param dragCoefficient System.Single
+---@param deltaTime System.Single
+_G['Particle'].ApplyDrag = function(dragCoefficient, deltaTime) end
+
+---`Method Private Instance`
+---@param prevHull Barotrauma.Hull
+---@param collisionNormal Microsoft.Xna.Framework.Vector2
+_G['Particle'].OnWallCollisionInside = function(prevHull, collisionNormal) end
+
+---`Method Private Instance`
+---@param collisionHull Barotrauma.Hull
+_G['Particle'].OnWallCollisionOutside = function(collisionHull) end
+
+---`Method Public Instance`
+_G['Particle'].UpdateDrawPos = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['Particle'].Draw = function(spriteBatch) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Particles.Particle
+_G['Particle'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Particles.Particle
+_G['Particle'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97ED0F78.lua b/Meta/Types/client/_00007FFD97ED0F78.lua
new file mode 100644
index 0000000..6dad124
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED0F78.lua
@@ -0,0 +1,107 @@
+---@meta
+---@class Barotrauma.Particles.ParticleEmitterProperties : System.Object
+---`Field Private Instance`
+---@field angleMin System.Single
+---`Field Private Instance`
+---@field angleMax System.Single
+---`Field Private Static`
+---@field MinValue System.Single
+---`Field Private Static`
+---@field MaxValue System.Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngleMinRad System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngleMaxRad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AngleMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AngleMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VelocityMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VelocityMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScaleMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScaleMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScaleMultiplier Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EmitInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ParticleAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ParticlesPerSecond System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EmitAcrossRayInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InitialDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HighQualityCollisionDetection System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CopyEntityAngle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CopyEntityDir System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CopyTargetAngle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CopyParentParticleScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ColorMultiplier Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LifeTimeMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawOrder Barotrauma.Particles.ParticleDrawOrder
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Angle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Distance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Velocity System.Single
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['ParticleEmitterProperties'] = {}
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Particles.ParticleEmitterProperties
+_G['ParticleEmitterProperties'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Particles.ParticleEmitterProperties
+_G['ParticleEmitterProperties'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97ED1178.lua b/Meta/Types/client/_00007FFD97ED1178.lua
new file mode 100644
index 0000000..42c71fb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED1178.lua
@@ -0,0 +1,57 @@
+---@meta
+---@class Barotrauma.Particles.ParticleEmitter : System.Object
+---`Field Private Instance`
+---@field emitTimer System.Single
+---`Field Private Instance`
+---@field burstEmitTimer System.Single
+---`Field Private Instance`
+---@field initialDelay System.Single
+---`Field Public Instance`
+---@field Prefab Barotrauma.Particles.ParticleEmitterPrefab
+_G['ParticleEmitter'] = {}
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param position Microsoft.Xna.Framework.Vector2
+---@param hullGuess? Barotrauma.Hull
+---@param angle? System.Single
+---@param particleRotation? System.Single
+---@param velocityMultiplier? System.Single
+---@param sizeMultiplier? System.Single
+---@param amountMultiplier? System.Single
+---@param colorMultiplier? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param overrideParticle? Barotrauma.Particles.ParticlePrefab
+---@param mirrorAngle? System.Boolean
+---@param tracerPoints? System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2
+_G['ParticleEmitter'].Emit = function(deltaTime, position, hullGuess, angle, particleRotation, velocityMultiplier, sizeMultiplier, amountMultiplier, colorMultiplier, overrideParticle, mirrorAngle, tracerPoints) end
+
+---`Method Private Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param hullGuess Barotrauma.Hull
+---@param angle System.Single
+---@param particleRotation System.Single
+---@param velocityMultiplier System.Single
+---@param sizeMultiplier System.Single
+---@param colorMultiplier? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param overrideParticle? Barotrauma.Particles.ParticlePrefab
+---@param mirrorAngle? System.Boolean
+---@param tracerPoints? System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2
+_G['ParticleEmitter'].Emit = function(position, hullGuess, angle, particleRotation, velocityMultiplier, sizeMultiplier, colorMultiplier, overrideParticle, mirrorAngle, tracerPoints) end
+
+---`Method Public Instance`
+---@param startPosition Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Rectangle
+_G['ParticleEmitter'].CalculateParticleBounds = function(startPosition) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement):Barotrauma.Particles.ParticleEmitter
+---@param prefab Barotrauma.Particles.ParticleEmitterPrefab
+---@return Barotrauma.Particles.ParticleEmitter
+_G['ParticleEmitter'] = function(prefab) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement):Barotrauma.Particles.ParticleEmitter
+---@param prefab Barotrauma.Particles.ParticleEmitterPrefab
+---@return Barotrauma.Particles.ParticleEmitter
+_G['ParticleEmitter'].__new = function(prefab) end
+
diff --git a/Meta/Types/client/_00007FFD97ED12F0.lua b/Meta/Types/client/_00007FFD97ED12F0.lua
new file mode 100644
index 0000000..b6f8b0b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED12F0.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.NumberType : System.Enum
+---`Field Public Static`
+---@field Int Barotrauma.NumberType
+---`Field Public Static`
+---@field Float Barotrauma.NumberType
+_G['NumberType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97ED1930.lua b/Meta/Types/client/_00007FFD97ED1930.lua
new file mode 100644
index 0000000..a4bfbd1
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED1930.lua
@@ -0,0 +1,191 @@
+---@meta
+---@class Barotrauma.ScalableFont : System.Object
+---`Field Private Instance`
+---@field rwl System.Threading.ReaderWriterLockSlim
+---`Field Private Instance`
+---@field filename System.String
+---`Field Private Instance`
+---@field face SharpFont.Face
+---`Field Private Instance`
+---@field size System.UInt32
+---`Field Private Instance`
+---@field baseHeight System.Int32
+---`Field Private Instance`
+---@field texCoords (System.Collections.Generic.Dictionary*1System*UInt32*1Barotrauma*ScalableFont*GlyphData)|({[System.UInt32]:(Barotrauma.ScalableFont.GlyphData)})
+---`Field Private Instance`
+---@field textures (System.Collections.Generic.List*1Microsoft*Xna*Framework*Graphics*Texture2D)|(Microsoft.Xna.Framework.Graphics.Texture2D[])
+---`Field Private Instance`
+---@field graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---`Field Private Instance`
+---@field currentDynamicAtlasCoords Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field currentDynamicAtlasNextY System.Int32
+---`Field Private Instance`
+---@field currentDynamicPixelBuffer (System.UInt32-arr)|(System.UInt32[])
+---`Field Public Instance`
+---@field ForceUpperCase System.Boolean
+---`Field Private Instance`
+---@field charRanges (System.UInt32-arr)|(System.UInt32[])
+---`Field Private Instance`
+---@field texDims System.Int32
+---`Field Private Instance`
+---@field baseChar System.UInt32
+---`Field Private Static`
+---@field FontList (System.Collections.Generic.List*1Barotrauma*ScalableFont)|(Barotrauma.ScalableFont[])
+---`Field Private Static`
+---@field Lib SharpFont.Library
+---`Field Private Static`
+---@field globalMutex System.Object
+---`Field Private Static`
+---@field quadVertices (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DynamicLoading System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciallyHandledCharCategory Barotrauma.TextManager.SpeciallyHandledCharCategory
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Size System.UInt32
+---`Getter Public Instance`
+---@field LineHeight System.Single
+_G['ScalableFont'] = {}
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.TextManager.SpeciallyHandledCharCategory
+_G['ScalableFont'].ExtractShccFromXElement = function(element) end
+
+---`Method Private Instance`
+---@param gd Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param charRanges? (System.UInt32-arr)|(System.UInt32[])
+---@param texDims? System.Int32
+---@param baseChar? System.UInt32
+_G['ScalableFont'].RenderAtlas = function(gd, charRanges, texDims, baseChar) end
+
+---`Method Private Instance`
+---@overload fun(gd:Microsoft.Xna.Framework.Graphics.GraphicsDevice, character:System.UInt32, texDims?:System.Int32, baseChar?:System.UInt32)
+---@overload fun(gd:Microsoft.Xna.Framework.Graphics.GraphicsDevice, str:System.String, texDims?:System.Int32, baseChar?:System.UInt32)
+---@param gd Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param characters (System.Collections.Generic.IEnumerable*1System*UInt32)|(fun():(System.UInt32))
+---@param texDims? System.Int32
+---@param baseChar? System.UInt32
+_G['ScalableFont'].DynamicRenderAtlas = function(gd, characters, texDims, baseChar) end
+
+---`Method Private Instance`
+---@param text System.String
+---@param advanceUnit Microsoft.Xna.Framework.Vector2-ref
+---@param position Microsoft.Xna.Framework.Vector2-ref
+---@param scale Microsoft.Xna.Framework.Vector2-ref
+---@param alignment Barotrauma.Alignment
+---@param i System.Int32
+---@param lineWidth System.Single-ref
+---@param currentLineOffset Microsoft.Xna.Framework.Vector2-ref
+---@param lineNum System.Int32-ref
+---@param currentPos Microsoft.Xna.Framework.Vector2-ref
+---@param charIndex System.UInt32-ref
+---@param shouldContinue System.Boolean-ref
+_G['ScalableFont'].HandleNewLineAndAlignment = function(text, advanceUnit, position, scale, alignment, i, lineWidth, currentLineOffset, lineNum, currentPos, charIndex, shouldContinue) end
+
+---`Method Private Instance`
+---@param charIndex System.UInt32
+---@return Barotrauma.ScalableFont.GlyphData
+_G['ScalableFont'].GetGlyphData = function(charIndex) end
+
+---`Method Public Instance`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:Microsoft.Xna.Framework.Vector2, se:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single, alignment?:Barotrauma.Alignment, forceUpperCase?:Barotrauma.ForceUpperCase)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:System.Single, se:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single, alignment?:Barotrauma.Alignment, forceUpperCase?:Barotrauma.ForceUpperCase)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param text System.String
+---@param position Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param forceUpperCase? Barotrauma.ForceUpperCase
+---@param italics? System.Boolean
+_G['ScalableFont'].DrawString = function(sb, text, position, color, forceUpperCase, italics) end
+
+---`Method Private Instance`
+---@param text System.String
+---@param forceUpperCase Barotrauma.ForceUpperCase
+---@return System.String
+_G['ScalableFont'].ApplyUpperCase = function(text, forceUpperCase) end
+
+---`Method Public Instance`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:System.Single, se:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single, richTextData:System.Nullable, rtdOffset?:System.Int32, alignment?:Barotrauma.Alignment, forceUpperCase?:Barotrauma.ForceUpperCase)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param text System.String
+---@param position Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param rotation System.Single
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param se Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param layerDepth System.Single
+---@param richTextData System.Nullable
+---@param rtdOffset? System.Int32
+---@param alignment? Barotrauma.Alignment
+---@param forceUpperCase? Barotrauma.ForceUpperCase
+_G['ScalableFont'].DrawStringWithColors = function(sb, text, position, color, rotation, origin, scale, se, layerDepth, richTextData, rtdOffset, alignment, forceUpperCase) end
+
+---`Method Public Instance`
+---@overload fun(text:System.String, width:System.Single):(System.String)
+---@overload fun(text:System.String, width:System.Single, requestCharPos:System.Int32, requestedCharPos:Microsoft.Xna.Framework.Vector2-ref):(System.String)
+---@param text System.String
+---@param width System.Single
+---@param allCharPositions Microsoft.Xna.Framework.Vector2-arr-ref
+---@return System.String
+_G['ScalableFont'].WrapText = function(text, width, allCharPositions) end
+
+---`Method Private Instance`
+---@param text System.String
+---@param width System.Single
+---@param requestCharPos System.Int32
+---@param requestedCharPos Microsoft.Xna.Framework.Vector2-ref
+---@param returnAllCharPositions System.Boolean
+---@param allCharPositions Microsoft.Xna.Framework.Vector2-arr-ref
+---@return System.String
+_G['ScalableFont'].WrapText = function(text, width, requestCharPos, requestedCharPos, returnAllCharPositions, allCharPositions) end
+
+---`Method Public Instance`
+---@overload fun(str:Barotrauma.LocalizedString, removeExtraSpacing?:System.Boolean):(Microsoft.Xna.Framework.Vector2)
+---@param text System.String
+---@param removeExtraSpacing? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['ScalableFont'].MeasureString = function(text, removeExtraSpacing) end
+
+---`Method Public Instance`
+---@param c System.Char
+---@return Microsoft.Xna.Framework.Vector2
+_G['ScalableFont'].MeasureChar = function(c) end
+
+---`Method Public Instance`
+---@param c System.Char
+---@return System.ValueTuple*1Barotrauma*ScalableFont*GlyphData*1Microsoft*Xna*Framework*Graphics*Texture2D
+_G['ScalableFont'].GetGlyphDataAndTextureForChar = function(c) end
+
+---`Method Public Instance Virtual`
+_G['ScalableFont'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, defaultSize?:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.ScalableFont
+---@overload fun(filename:System.String, size:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice, dynamicLoading?:System.Boolean, speciallyHandledCharCategory?:Barotrauma.TextManager.SpeciallyHandledCharCategory):Barotrauma.ScalableFont
+---@return Barotrauma.ScalableFont
+_G['ScalableFont'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, defaultSize?:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.ScalableFont
+---@overload fun(filename:System.String, size:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice, dynamicLoading?:System.Boolean, speciallyHandledCharCategory?:Barotrauma.TextManager.SpeciallyHandledCharCategory):Barotrauma.ScalableFont
+---@return Barotrauma.ScalableFont
+_G['ScalableFont'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, defaultSize?:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.ScalableFont
+---@overload fun(filename:System.String, size:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice, dynamicLoading?:System.Boolean, speciallyHandledCharCategory?:Barotrauma.TextManager.SpeciallyHandledCharCategory):Barotrauma.ScalableFont
+---@return Barotrauma.ScalableFont
+_G['ScalableFont'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, defaultSize?:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.ScalableFont
+---@overload fun(filename:System.String, size:System.UInt32, gd?:Microsoft.Xna.Framework.Graphics.GraphicsDevice, dynamicLoading?:System.Boolean, speciallyHandledCharCategory?:Barotrauma.TextManager.SpeciallyHandledCharCategory):Barotrauma.ScalableFont
+---@return Barotrauma.ScalableFont
+_G['ScalableFont'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97ED1A50.lua b/Meta/Types/client/_00007FFD97ED1A50.lua
new file mode 100644
index 0000000..924a630
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED1A50.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Anchor : System.Enum
+---`Field Public Static`
+---@field TopLeft Barotrauma.Anchor
+---`Field Public Static`
+---@field TopCenter Barotrauma.Anchor
+---`Field Public Static`
+---@field TopRight Barotrauma.Anchor
+---`Field Public Static`
+---@field CenterLeft Barotrauma.Anchor
+---`Field Public Static`
+---@field Center Barotrauma.Anchor
+---`Field Public Static`
+---@field CenterRight Barotrauma.Anchor
+---`Field Public Static`
+---@field BottomLeft Barotrauma.Anchor
+---`Field Public Static`
+---@field BottomCenter Barotrauma.Anchor
+---`Field Public Static`
+---@field BottomRight Barotrauma.Anchor
+_G['GUI']['Anchor'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97ED1BF8.lua b/Meta/Types/client/_00007FFD97ED1BF8.lua
new file mode 100644
index 0000000..37a7f61
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED1BF8.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Pivot : System.Enum
+---`Field Public Static`
+---@field TopLeft Barotrauma.Pivot
+---`Field Public Static`
+---@field TopCenter Barotrauma.Pivot
+---`Field Public Static`
+---@field TopRight Barotrauma.Pivot
+---`Field Public Static`
+---@field CenterLeft Barotrauma.Pivot
+---`Field Public Static`
+---@field Center Barotrauma.Pivot
+---`Field Public Static`
+---@field CenterRight Barotrauma.Pivot
+---`Field Public Static`
+---@field BottomLeft Barotrauma.Pivot
+---`Field Public Static`
+---@field BottomCenter Barotrauma.Pivot
+---`Field Public Static`
+---@field BottomRight Barotrauma.Pivot
+_G['GUI']['Pivot'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97ED1DA0.lua b/Meta/Types/client/_00007FFD97ED1DA0.lua
new file mode 100644
index 0000000..dc5b954
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED1DA0.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.ScaleBasis : System.Enum
+---`Field Public Static`
+---@field Normal Barotrauma.ScaleBasis
+---`Field Public Static`
+---@field BothWidth Barotrauma.ScaleBasis
+---`Field Public Static`
+---@field BothHeight Barotrauma.ScaleBasis
+---`Field Public Static`
+---@field Smallest Barotrauma.ScaleBasis
+---`Field Public Static`
+---@field Largest Barotrauma.ScaleBasis
+_G['ScaleBasis'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97ED2430.lua b/Meta/Types/client/_00007FFD97ED2430.lua
new file mode 100644
index 0000000..608735b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED2430.lua
@@ -0,0 +1,133 @@
+---@meta
+---@class Barotrauma.ChatBox : System.Object
+---`Field Private Instance`
+---@field chatBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field screenResolution Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field ChatManager Barotrauma.ChatManager
+---`Field Private Instance`
+---@field _toggleOpen System.Boolean
+---`Field Private Instance`
+---@field openState System.Single
+---`Field Public Instance`
+---@field CloseAfterMessageSent System.Boolean
+---`Field Private Instance`
+---@field prevUIScale System.Single
+---`Field Private Instance`
+---@field channelSettingsFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field radioJammedWarning Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field channelText Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field channelPickerContent Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field memButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field prevRadio Barotrauma.Items.Components.WifiComponent
+---`Field Private Instance`
+---@field channelMemPending System.Boolean
+---`Field Private Instance`
+---@field popupMessages (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Instance`
+---@field toggleButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field showNewMessagesButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field hideableElements Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field popupMessageOffset System.Int32
+---`Field Public Static`
+---@field PreferChatBoxOpen System.Boolean
+---`Field Public Static`
+---@field RadioChatString System.String
+---`Field Private Static`
+---@field PopupMessageDuration System.Single
+---`Field Public Static`
+---@field ToggleButtonWidthRaw System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsSinglePlayer System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ToggleOpen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnEnterMessage (Barotrauma.GUITextBox.OnEnterHandler)|(fun(textBox:Barotrauma.GUITextBox, text:System.String):(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GUIFrame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InputBox Barotrauma.GUITextBox
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ToggleButton Barotrauma.GUIButton
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ChatModeDropDown Barotrauma.GUIDropDown
+_G['ChatBox'] = {}
+
+---`Method Public Instance`
+_G['ChatBox'].Toggle = function() end
+
+---`Method Public Instance`
+---@param textBox Barotrauma.GUITextBox
+---@param text System.String
+---@return System.Boolean
+_G['ChatBox'].TypingChatMessage = function(textBox, text) end
+
+---`Method Public Instance`
+---@param message Barotrauma.Networking.ChatMessage
+_G['ChatBox'].AddMessage = function(message) end
+
+---`Method Public Instance`
+---@param visible System.Boolean
+_G['ChatBox'].SetVisibility = function(visible) end
+
+---`Method Private Instance`
+---@param message Barotrauma.GUIComponent
+---@param animDuration System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['ChatBox'].UpdateMessageAnimation = function(message, animDuration) end
+
+---`Method Private Instance`
+_G['ChatBox'].SetUILayout = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['ChatBox'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param channel System.Int32
+---@param setText System.Boolean
+_G['ChatBox'].SetChannel = function(channel, setText) end
+
+---`Method Public Instance`
+---@overload fun()
+---@param inputBox Barotrauma.GUITextBox
+---@param selectInputBox System.Boolean
+---@param chatKeyStates Barotrauma.ChatBox.ChatKeyStates
+_G['ChatBox'].ApplySelectionInputs = function(inputBox, selectInputBox, chatKeyStates) end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.GUIComponent, isSinglePlayer:System.Boolean):Barotrauma.ChatBox
+---@return Barotrauma.ChatBox
+_G['ChatBox'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.GUIComponent, isSinglePlayer:System.Boolean):Barotrauma.ChatBox
+---@return Barotrauma.ChatBox
+_G['ChatBox'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.GUIComponent, isSinglePlayer:System.Boolean):Barotrauma.ChatBox
+---@return Barotrauma.ChatBox
+_G['ChatBox'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.GUIComponent, isSinglePlayer:System.Boolean):Barotrauma.ChatBox
+---@return Barotrauma.ChatBox
+_G['ChatBox'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97ED27C0.lua b/Meta/Types/client/_00007FFD97ED27C0.lua
new file mode 100644
index 0000000..e1c1218
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED27C0.lua
@@ -0,0 +1,90 @@
+---@meta
+---@class Barotrauma.FileSelection : System.Object
+---`Field Private Static`
+---@field open System.Boolean
+---`Field Private Static`
+---@field backgroundFrame Barotrauma.GUIFrame
+---`Field Private Static`
+---@field window Barotrauma.GUIFrame
+---`Field Private Static`
+---@field sidebar Barotrauma.GUIListBox
+---`Field Private Static`
+---@field fileList Barotrauma.GUIListBox
+---`Field Private Static`
+---@field directoryBox Barotrauma.GUITextBox
+---`Field Private Static`
+---@field filterBox Barotrauma.GUITextBox
+---`Field Private Static`
+---@field fileBox Barotrauma.GUITextBox
+---`Field Private Static`
+---@field fileTypeDropdown Barotrauma.GUIDropDown
+---`Field Private Static`
+---@field openButton Barotrauma.GUIButton
+---`Field Private Static`
+---@field fileSystemWatcher System.IO.FileSystemWatcher
+---`Field Private Static`
+---@field currentFileTypePattern System.String
+---`Field Private Static`
+---@field ignoredDrivePrefixes (System.String-arr)|(System.String[])
+---`Field Private Static`
+---@field currentDirectory System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Open System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CurrentDirectory System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field OnFileSelected (System.Action*1System*String)|(fun(obj:System.String))
+_G['FileSelection'] = {}
+
+---`Method Private Static`
+---@param sender System.Object
+---@param e System.IO.FileSystemEventArgs
+_G['FileSelection'].OnFileSystemChanges = function(sender, e) end
+
+---`Method Private Static`
+---@param r1 Barotrauma.RectTransform
+---@param r2 Barotrauma.RectTransform
+---@return System.Int32
+_G['FileSelection'].SortFiles = function(r1, r2) end
+
+---`Method Private Static`
+_G['FileSelection'].InitIfNecessary = function() end
+
+---`Method Public Static`
+_G['FileSelection'].Init = function() end
+
+---`Method Public Static`
+_G['FileSelection'].ClearFileTypeFilters = function() end
+
+---`Method Public Static`
+---@param name System.String
+---@param pattern System.String
+_G['FileSelection'].AddFileTypeFilter = function(name, pattern) end
+
+---`Method Public Static`
+---@param pattern System.String
+_G['FileSelection'].SelectFileTypeFilter = function(pattern) end
+
+---`Method Public Static`
+_G['FileSelection'].RefreshFileList = function() end
+
+---`Method Public Static`
+---@param button Barotrauma.GUIButton
+---@param userdata System.Object
+---@return System.Boolean
+_G['FileSelection'].MoveToParentDirectory = function(button, userdata) end
+
+---`Method Public Static`
+_G['FileSelection'].AddToGUIUpdateList = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.FileSelection
+_G['FileSelection'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.FileSelection
+_G['FileSelection'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97ED28F8.lua b/Meta/Types/client/_00007FFD97ED28F8.lua
new file mode 100644
index 0000000..be21f23
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED28F8.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.Graph : System.Object
+---`Field Private Instance`
+---@field values (System.Single-arr)|(System.Single[])
+_G['Graph'] = {}
+
+---`Method Public Instance`
+---@return System.Single
+_G['Graph'].LargestValue = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Graph'].Average = function() end
+
+---`Method Public Instance`
+---@param newValue System.Single
+_G['Graph'].Update = function(newValue) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param maxValue? System.Nullable*1System*Single
+---@param xOffset? System.Single
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param doForEachValue? (Barotrauma.Graph.GraphDelegate)|(fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, value:System.Single, order:System.Int32, position:Microsoft.Xna.Framework.Vector2))
+_G['Graph'].Draw = function(spriteBatch, rect, maxValue, xOffset, color, doForEachValue) end
+
+---`Constructor Public Instance`
+---@param arraySize? System.Int32
+---@return Barotrauma.Graph
+_G['Graph'] = function(arraySize) end
+
+---`Constructor Public Instance`
+---@param arraySize? System.Int32
+---@return Barotrauma.Graph
+_G['Graph'].__new = function(arraySize) end
+
diff --git a/Meta/Types/client/_00007FFD97ED3278.lua b/Meta/Types/client/_00007FFD97ED3278.lua
new file mode 100644
index 0000000..e4affb5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED3278.lua
@@ -0,0 +1,179 @@
+---@meta
+---@class Barotrauma.HRManagerUI : System.Object
+---`Field Private Instance`
+---@field campaignUI Barotrauma.CampaignUI
+---`Field Private Instance`
+---@field parentComponent Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field pendingAndCrewPanel Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field hireableList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field pendingList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field crewList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field characterPreviewFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field sortingDropDown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field totalBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field validateHiresButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field clearAllButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field playerBalanceElement System.Nullable*1Barotrauma*CampaignUI*PlayerBalanceElement
+---`Field Private Instance`
+---@field wasReplacingPermanentlyDeadCharacter System.Boolean
+---`Field Private Instance`
+---@field hadPermissionToHire System.Boolean
+---`Field Private Instance`
+---@field resolutionWhenCreated Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field needsHireableRefresh System.Boolean
+---`Getter Private Instance`
+---@field campaign Barotrauma.CampaignMode
+---`Getter Private Instance`
+---@field PendingHires (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---`Getter Private Static`
+---@field ReplacingPermanentlyDeadCharacter System.Boolean
+---`Getter Private Static`
+---@field HasPermissionToHire System.Boolean
+_G['HRManagerUI'] = {}
+
+---`Method Public Instance`
+_G['HRManagerUI'].RefreshUI = function() end
+
+---`Method Private Instance`
+---@param listBox Barotrauma.GUIListBox
+_G['HRManagerUI'].RefreshCrewFrames = function(listBox) end
+
+---`Method Private Instance`
+_G['HRManagerUI'].CreateUI = function() end
+
+---`Method Private Instance`
+---@param location Barotrauma.Location
+---@param removePending System.Boolean
+---@param prevLocation? Barotrauma.Location
+_G['HRManagerUI'].UpdateLocationView = function(location, removePending, prevLocation) end
+
+---`Method Public Instance`
+_G['HRManagerUI'].UpdateHireables = function() end
+
+---`Method Private Instance`
+---@param location Barotrauma.Location
+_G['HRManagerUI'].UpdateHireables = function(location) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param availableHires (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+_G['HRManagerUI'].SetHireables = function(location, availableHires) end
+
+---`Method Public Instance`
+_G['HRManagerUI'].UpdateCrew = function() end
+
+---`Method Private Instance`
+---@param list Barotrauma.GUIListBox
+---@param sortingMethod Barotrauma.HRManagerUI.SortingMethod
+_G['HRManagerUI'].SortCharacters = function(list, sortingMethod) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param listBox Barotrauma.GUIListBox
+---@param hideSalary? System.Boolean
+---@return Barotrauma.GUIComponent
+_G['HRManagerUI'].CreateCharacterFrame = function(characterInfo, listBox, hideSalary) end
+
+---`Method Private Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@return System.Boolean
+_G['HRManagerUI'].EnoughReputationToHire = function(characterInfo) end
+
+---`Method Private Instance`
+---@param listBox Barotrauma.GUIListBox
+---@param characterFrame Barotrauma.GUIFrame
+---@param characterInfo Barotrauma.CharacterInfo
+_G['HRManagerUI'].CreateCharacterPreviewFrame = function(listBox, characterFrame, characterInfo) end
+
+---`Method Private Instance`
+---@param listBox Barotrauma.GUIListBox
+---@param characterFrame Barotrauma.GUIFrame
+---@param characterInfo Barotrauma.CharacterInfo
+---@return System.Boolean
+_G['HRManagerUI'].SelectCharacter = function(listBox, characterFrame, characterInfo) end
+
+---`Method Private Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param createNetworkMessage? System.Boolean
+---@return System.Boolean
+_G['HRManagerUI'].AddPendingHire = function(characterInfo, createNetworkMessage) end
+
+---`Method Private Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param setTotalHireCost? System.Boolean
+---@param createNetworkMessage? System.Boolean
+---@return System.Boolean
+_G['HRManagerUI'].RemovePendingHire = function(characterInfo, setTotalHireCost, createNetworkMessage) end
+
+---`Method Private Instance`
+---@param createNetworkMessage? System.Boolean
+---@return System.Boolean
+_G['HRManagerUI'].RemoveAllPendingHires = function(createNetworkMessage) end
+
+---`Method Private Instance`
+_G['HRManagerUI'].SetTotalHireCost = function() end
+
+---`Method Public Instance`
+---@param hires (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---@param takeMoney? System.Boolean
+---@param createNetworkEvent? System.Boolean
+---@param createNotification? System.Boolean
+---@return System.Boolean
+_G['HRManagerUI'].ValidateHires = function(hires, takeMoney, createNetworkEvent, createNotification) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['HRManagerUI'].CreateRenamingComponent = function(button, userData) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param newName System.String
+---@return System.Boolean
+_G['HRManagerUI'].RenameCharacter = function(characterInfo, newName) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param selection System.Object
+---@return System.Boolean
+_G['HRManagerUI'].FireCharacter = function(button, selection) end
+
+---`Method Public Instance`
+_G['HRManagerUI'].Update = function() end
+
+---`Method Public Instance`
+---@param characterInfos (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---@param location Barotrauma.Location
+_G['HRManagerUI'].SetPendingHires = function(characterInfos, location) end
+
+---`Method Public Instance`
+---@param updatePending System.Boolean
+---@param renameCharacter? System.ValueTuple*1Barotrauma*CharacterInfo*1System*String
+---@param firedCharacter? Barotrauma.CharacterInfo
+---@param validateHires? System.Boolean
+_G['HRManagerUI'].SendCrewState = function(updatePending, renameCharacter, firedCharacter, validateHires) end
+
+---`Constructor Public Instance`
+---@param campaignUI Barotrauma.CampaignUI
+---@param parentComponent Barotrauma.GUIComponent
+---@return Barotrauma.HRManagerUI
+_G['HRManagerUI'] = function(campaignUI, parentComponent) end
+
+---`Constructor Public Instance`
+---@param campaignUI Barotrauma.CampaignUI
+---@param parentComponent Barotrauma.GUIComponent
+---@return Barotrauma.HRManagerUI
+_G['HRManagerUI'].__new = function(campaignUI, parentComponent) end
+
diff --git a/Meta/Types/client/_00007FFD97ED6070.lua b/Meta/Types/client/_00007FFD97ED6070.lua
new file mode 100644
index 0000000..d7f4a9b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED6070.lua
@@ -0,0 +1,646 @@
+---@meta
+---@class Barotrauma.GUI : System.Object
+---`Field Public Static`
+---@field MouseCursor Barotrauma.CursorState
+---`Field Public Static`
+---@field SamplerState Microsoft.Xna.Framework.Graphics.SamplerState
+---`Field Public Static`
+---@field SamplerStateClamp Microsoft.Xna.Framework.Graphics.SamplerState
+---`Field Public Static`
+---@field VectorComponentLabels (System.String-arr)|(System.String[])
+---`Field Public Static`
+---@field RectComponentLabels (System.String-arr)|(System.String[])
+---`Field Public Static`
+---@field ColorComponentLabels (System.String-arr)|(System.String[])
+---`Field Private Static`
+---@field mutex System.Object
+---`Field Public Static`
+---@field ReferenceResolution Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field solidWhiteTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Static`
+---@field debugDrawSounds System.Boolean
+---`Field Private Static`
+---@field debugDrawEvents System.Boolean
+---`Field Private Static`
+---@field debugDrawMetaData Barotrauma.GUI.DebugDrawMetaData
+---`Field Private Static`
+---@field messages (System.Collections.Generic.List*1Barotrauma*GUIMessage)|(Barotrauma.GUIMessage[])
+---`Field Public Static`
+---@field HideCursor System.Boolean
+---`Field Public Static`
+---@field ScreenChanged System.Boolean
+---`Field Private Static`
+---@field settingsMenuOpen System.Boolean
+---`Field Public Static`
+---@field PreventPauseMenuToggle System.Boolean
+---`Field Public Static`
+---@field DisableHUD System.Boolean
+---`Field Public Static`
+---@field DisableUpperHUD System.Boolean
+---`Field Public Static`
+---@field DisableItemHighlights System.Boolean
+---`Field Public Static`
+---@field DisableCharacterNames System.Boolean
+---`Field Private Static`
+---@field isSavingIndicatorEnabled System.Boolean
+---`Field Private Static`
+---@field savingIndicatorColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field savingIndicatorSpriteIndex System.Single
+---`Field Private Static`
+---@field savingIndicatorColorLerpAmount System.Single
+---`Field Private Static`
+---@field savingIndicatorState Barotrauma.GUI.SavingIndicatorState
+---`Field Private Static`
+---@field timeUntilSavingIndicatorDisabled System.Nullable*1System*Single
+---`Field Private Static`
+---@field loadedSpritesText System.String
+---`Field Private Static`
+---@field loadedSpritesUpdateTime System.DateTime
+---`Field Private Static`
+---@field updateList (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Static`
+---@field updateListSet (System.Collections.Generic.HashSet*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Static`
+---@field removals (System.Collections.Generic.Queue*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+---`Field Private Static`
+---@field additions (System.Collections.Generic.Queue*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+---`Field Private Static`
+---@field firstAdditions (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Static`
+---@field lastAdditions (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Static`
+---@field usedIndicatorAngles (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Private Static`
+---@field canonicalCircle (System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Static`
+---@field donutVerts (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---`Field Private Static`
+---@field DonutSegments System.Int32
+---`Getter Public Static`
+---@field Canvas Barotrauma.GUICanvas
+---`Getter Public Static`
+---@field Scale System.Single
+---`Getter Public Static`
+---@field xScale System.Single
+---`Getter Public Static`
+---@field yScale System.Single
+---`Getter Public Static`
+---@field HorizontalAspectRatio System.Single
+---`Getter Public Static`
+---@field VerticalAspectRatio System.Single
+---`Getter Public Static`
+---@field RelativeHorizontalAspectRatio System.Single
+---`Getter Public Static`
+---@field RelativeVerticalAspectRatio System.Single
+---`Getter Public Static`
+---@field AspectRatioAdjustment System.Single
+---`Getter Public Static`
+---@field IsUltrawide System.Boolean
+---`Getter Public Static`
+---@field UIWidth System.Int32
+---`Getter Public Static`
+---@field SlicedSpriteScale System.Single
+---`Getter Public Static`
+---@field WhiteTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Getter Private Static`
+---@field MouseCursorSprites Barotrauma.GUICursor
+---`Getter Public Static`
+---@field GraphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PauseMenu Barotrauma.GUIFrame
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SettingsMenuContainer Barotrauma.GUIFrame
+---`Getter Public Static`
+---@field Arrow Barotrauma.Sprite
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field KeyboardDispatcher EventInput.KeyboardDispatcher
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field SettingsMenuOpen System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PauseMenuOpen System.Boolean
+---`Getter Public Static`
+---@field InputBlockingMenuOpen System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field ScreenOverlayColor Microsoft.Xna.Framework.Color
+---`Getter Private Static`
+---@field IsSavingIndicatorVisible System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MouseOn Barotrauma.GUIComponent
+_G['GUI']['GUI'] = {}
+
+---`Method Public Static`
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param length System.Single
+---@param radius System.Single
+---@param rotation System.Single
+---@param clr Microsoft.Xna.Framework.Color
+---@param depth? System.Single
+---@param thickness? System.Single
+_G['GUI']['GUI'].DrawCapsule = function(sb, origin, length, radius, rotation, clr, depth, thickness) end
+
+---`Method Public Static`
+---@param radius System.Int32
+---@param filled? System.Boolean
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['GUI']['GUI'].CreateCircle = function(radius, filled) end
+
+---`Method Public Static`
+---@param radius System.Int32
+---@param height System.Int32
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['GUI']['GUI'].CreateCapsule = function(radius, height) end
+
+---`Method Public Static`
+---@param width System.Int32
+---@param height System.Int32
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['GUI']['GUI'].CreateRectangle = function(width, height) end
+
+---`Method Private Static`
+---@param data (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---@param index System.Int32
+---@param value Microsoft.Xna.Framework.Color
+---@return System.Boolean
+_G['GUI']['GUI'].TrySetArray = function(data, index, value) end
+
+---`Method Public Static`
+---@overload fun(count:System.Int32, relativeSize:Microsoft.Xna.Framework.Vector2, parent:Barotrauma.RectTransform, anchor?:Barotrauma.Anchor, pivot?:System.Nullable*1Barotrauma*Pivot, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, maxSize?:System.Nullable*1Microsoft*Xna*Framework*Point, absoluteSpacing?:System.Int32, relativeSpacing?:System.Single, extraSpacing?:(System.Func*1System*Int32*1System*Int32)|(fun(arg:System.Int32):(System.Int32)), startOffsetAbsolute?:System.Int32, startOffsetRelative?:System.Single, isHorizontal?:System.Boolean, textAlignment?:Barotrauma.Alignment, style?:System.String):((System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[]))
+---@param count System.Int32
+---@param absoluteSize Microsoft.Xna.Framework.Point
+---@param parent Barotrauma.RectTransform
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+---@param absoluteSpacing? System.Int32
+---@param relativeSpacing? System.Single
+---@param extraSpacing? (System.Func*1System*Int32*1System*Int32)|(fun(arg:System.Int32):(System.Int32))
+---@param startOffsetAbsolute? System.Int32
+---@param startOffsetRelative? System.Single
+---@param isHorizontal? System.Boolean
+---@param textAlignment? Barotrauma.Alignment
+---@param style? System.String
+---@return (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+_G['GUI']['GUI'].CreateButtons = function(count, absoluteSize, parent, anchor, pivot, absoluteSpacing, relativeSpacing, extraSpacing, startOffsetAbsolute, startOffsetRelative, isHorizontal, textAlignment, style) end
+
+---`Method Public Static`
+---@overload fun(count:System.Int32, relativeSize:Microsoft.Xna.Framework.Vector2, parent:Barotrauma.RectTransform, constructor:(System.Func*1Barotrauma*RectTransform*1Barotrauma*GUI*T)|(fun(arg:Barotrauma.RectTransform):(Barotrauma.GUI.T)), anchor?:Barotrauma.Anchor, pivot?:System.Nullable*1Barotrauma*Pivot, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, maxSize?:System.Nullable*1Microsoft*Xna*Framework*Point, absoluteSpacing?:System.Int32, relativeSpacing?:System.Single, extraSpacing?:(System.Func*1System*Int32*1System*Int32)|(fun(arg:System.Int32):(System.Int32)), startOffsetAbsolute?:System.Int32, startOffsetRelative?:System.Single, isHorizontal?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*GUI*T)|(Barotrauma.GUI.T[]))
+---@param count System.Int32
+---@param absoluteSize Microsoft.Xna.Framework.Point
+---@param parent Barotrauma.RectTransform
+---@param constructor (System.Func*1Barotrauma*RectTransform*1Barotrauma*GUI*T)|(fun(arg:Barotrauma.RectTransform):(Barotrauma.GUI.T))
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+---@param absoluteSpacing? System.Int32
+---@param relativeSpacing? System.Single
+---@param extraSpacing? (System.Func*1System*Int32*1System*Int32)|(fun(arg:System.Int32):(System.Int32))
+---@param startOffsetAbsolute? System.Int32
+---@param startOffsetRelative? System.Single
+---@param isHorizontal? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*GUI*T)|(Barotrauma.GUI.T[])
+_G['GUI']['GUI'].CreateElements = function(count, absoluteSize, parent, constructor, anchor, pivot, absoluteSpacing, relativeSpacing, extraSpacing, startOffsetAbsolute, startOffsetRelative, isHorizontal) end
+
+---`Method Private Static`
+---@param count System.Int32
+---@param parent Barotrauma.RectTransform
+---@param constructor (System.Func*1Barotrauma*RectTransform*1Barotrauma*GUI*T)|(fun(arg:Barotrauma.RectTransform):(Barotrauma.GUI.T))
+---@param relativeSize? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param absoluteSize? System.Nullable*1Microsoft*Xna*Framework*Point
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+---@param minSize? System.Nullable*1Microsoft*Xna*Framework*Point
+---@param maxSize? System.Nullable*1Microsoft*Xna*Framework*Point
+---@param absoluteSpacing? System.Int32
+---@param relativeSpacing? System.Single
+---@param extraSpacing? (System.Func*1System*Int32*1System*Int32)|(fun(arg:System.Int32):(System.Int32))
+---@param startOffsetAbsolute? System.Int32
+---@param startOffsetRelative? System.Single
+---@param isHorizontal? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*GUI*T)|(Barotrauma.GUI.T[])
+_G['GUI']['GUI'].CreateElements = function(count, parent, constructor, relativeSize, absoluteSize, anchor, pivot, minSize, maxSize, absoluteSpacing, relativeSpacing, extraSpacing, startOffsetAbsolute, startOffsetRelative, isHorizontal) end
+
+---`Method Public Static`
+---@param value System.Enum
+---@param elementHeight System.Int32
+---@param name Barotrauma.LocalizedString
+---@param parent Barotrauma.RectTransform
+---@param toolTip? System.String
+---@param font? Barotrauma.GUIFont
+---@return Barotrauma.GUIComponent
+_G['GUI']['GUI'].CreateEnumField = function(value, elementHeight, name, parent, toolTip, font) end
+
+---`Method Public Static`
+---@param value Microsoft.Xna.Framework.Rectangle
+---@param elementHeight System.Int32
+---@param name Barotrauma.LocalizedString
+---@param parent Barotrauma.RectTransform
+---@param toolTip? Barotrauma.LocalizedString
+---@param font? Barotrauma.GUIFont
+---@return Barotrauma.GUIComponent
+_G['GUI']['GUI'].CreateRectangleField = function(value, elementHeight, name, parent, toolTip, font) end
+
+---`Method Public Static`
+---@param value Microsoft.Xna.Framework.Point
+---@param elementHeight System.Int32
+---@param displayName Barotrauma.LocalizedString
+---@param parent Barotrauma.RectTransform
+---@param toolTip? Barotrauma.LocalizedString
+---@return Barotrauma.GUIComponent
+_G['GUI']['GUI'].CreatePointField = function(value, elementHeight, displayName, parent, toolTip) end
+
+---`Method Public Static`
+---@param value Microsoft.Xna.Framework.Vector2
+---@param elementHeight System.Int32
+---@param name Barotrauma.LocalizedString
+---@param parent Barotrauma.RectTransform
+---@param toolTip? Barotrauma.LocalizedString
+---@param font? Barotrauma.GUIFont
+---@param decimalsToDisplay? System.Int32
+---@return Barotrauma.GUIComponent
+_G['GUI']['GUI'].CreateVector2Field = function(value, elementHeight, name, parent, toolTip, font, decimalsToDisplay) end
+
+---`Method Public Static`
+---@param rectT Barotrauma.RectTransform
+---@param text System.String
+---@param placeholder Barotrauma.LocalizedString
+---@return Barotrauma.GUITextBox
+_G['GUI']['GUI'].CreateTextBoxWithPlaceholder = function(rectT, text, placeholder) end
+
+---`Method Public Static`
+---@param header Barotrauma.LocalizedString
+---@param body Barotrauma.LocalizedString
+_G['GUI']['GUI'].NotifyPrompt = function(header, body) end
+
+---`Method Public Static`
+---@param header Barotrauma.LocalizedString
+---@param body Barotrauma.LocalizedString
+---@param onConfirm (System.Action)|(fun())
+---@param onDeny? (System.Action)|(fun())
+---@param relativeSize? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param minSize? System.Nullable*1Microsoft*Xna*Framework*Point
+---@return Barotrauma.GUIMessageBox
+_G['GUI']['GUI'].AskForConfirmation = function(header, body, onConfirm, onDeny, relativeSize, minSize) end
+
+---`Method Public Static`
+---@param header Barotrauma.LocalizedString
+---@param body System.String
+---@param onConfirm (System.Action*1System*String)|(fun(obj:System.String))
+---@return Barotrauma.GUIMessageBox
+_G['GUI']['GUI'].PromptTextInput = function(header, body, onConfirm) end
+
+---`Method Private Static`
+---@overload fun(relativeSize:Microsoft.Xna.Framework.Vector2, startOffsetRelative:System.Single, startOffsetAbsolute:System.Int32, relativeSpacing:System.Single, absoluteSpacing:System.Int32, counter:System.Int32, extra:System.Int32, isHorizontal:System.Boolean):(System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Point)
+---@param absoluteSize Microsoft.Xna.Framework.Point
+---@param startOffsetRelative System.Single
+---@param startOffsetAbsolute System.Int32
+---@param relativeSpacing System.Single
+---@param absoluteSpacing System.Int32
+---@param counter System.Int32
+---@param extra System.Int32
+---@param isHorizontal System.Boolean
+---@return System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Point
+_G['GUI']['GUI'].CalculateOffsets = function(absoluteSize, startOffsetRelative, startOffsetAbsolute, relativeSpacing, absoluteSpacing, counter, extra, isHorizontal) end
+
+---`Method Private Static`
+---@overload fun(startOffset:System.Single, spacing:System.Single, size:System.Single, counter:System.Int32):(System.Single)
+---@param startOffset System.Single
+---@param spacing System.Single
+---@param counter System.Int32
+---@return System.Single
+_G['GUI']['GUI'].CalculateRelativeOffset = function(startOffset, spacing, counter) end
+
+---`Method Private Static`
+---@overload fun(startOffset:System.Int32, spacing:System.Int32, counter:System.Int32, extra:System.Int32):(System.Int32)
+---@param startOffset System.Int32
+---@param spacing System.Int32
+---@param size System.Int32
+---@param counter System.Int32
+---@param extra System.Int32
+---@return System.Int32
+_G['GUI']['GUI'].CalculateAbsoluteOffset = function(startOffset, spacing, size, counter, extra) end
+
+---`Method Public Static`
+---@param elements (System.Collections.Generic.IList*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---@param disallowedAreas? (System.Collections.Generic.IList*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param clampArea? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+_G['GUI']['GUI'].PreventElementOverlap = function(elements, disallowedAreas, clampArea) end
+
+---`Method Private Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param clampTo Microsoft.Xna.Framework.Rectangle
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['GUI']['GUI'].ClampMoveAmount = function(rect, clampTo, moveAmount) end
+
+---`Method Public Static`
+_G['GUI']['GUI'].TogglePauseMenu = function() end
+
+---`Method Private Static`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['GUI']['GUI'].TogglePauseMenu = function(button, obj) end
+
+---`Method Public Static`
+---@overload fun(message:Barotrauma.LocalizedString, color:Microsoft.Xna.Framework.Color, lifeTime?:System.Nullable*1System*Single, playSound?:System.Boolean, font?:Barotrauma.GUIFont)
+---@overload fun(message:Barotrauma.LocalizedString, color:Microsoft.Xna.Framework.Color, pos:Microsoft.Xna.Framework.Vector2, velocity:Microsoft.Xna.Framework.Vector2, lifeTime?:System.Single, playSound?:System.Boolean, soundType?:Barotrauma.GUISoundType, subId?:System.Int32)
+---@overload fun(message:System.String, color:Microsoft.Xna.Framework.Color, lifeTime?:System.Nullable*1System*Single, playSound?:System.Boolean, font?:Barotrauma.GUIFont)
+---@param message System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+---@param lifeTime? System.Single
+---@param playSound? System.Boolean
+---@param soundType? Barotrauma.GUISoundType
+---@param subId? System.Int32
+_G['GUI']['GUI'].AddMessage = function(message, color, pos, velocity, lifeTime, playSound, soundType, subId) end
+
+---`Method Public Static`
+_G['GUI']['GUI'].ClearMessages = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['GUI']['GUI'].IsFourByThree = function() end
+
+---`Method Public Static`
+---@param enabled System.Boolean
+_G['GUI']['GUI'].SetSavingIndicatorState = function(enabled) end
+
+---`Method Public Static`
+---@param delay? System.Single
+_G['GUI']['GUI'].DisableSavingIndicatorDelayed = function(delay) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Int32
+_G['GUI']['GUI'].IntScale = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Int32
+_G['GUI']['GUI'].IntScaleFloor = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Int32
+_G['GUI']['GUI'].IntScaleCeiling = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Single
+_G['GUI']['GUI'].AdjustForTextScale = function(f) end
+
+---`Method Public Static`
+_G['GUI']['GUI'].Init = function() end
+
+---`Method Public Static`
+---@param cam Barotrauma.Camera
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['GUI'].Draw = function(cam, spriteBatch) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['GUI'].DrawMessageBoxesOnly = function(spriteBatch) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['GUI'].DrawCursor = function(spriteBatch) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param backgroundSprite Barotrauma.Sprite
+---@param color Microsoft.Xna.Framework.Color
+---@param drawArea? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['GUI']['GUI'].DrawBackgroundSprite = function(spriteBatch, backgroundSprite, color, drawArea, spriteEffects) end
+
+---`Method Public Static`
+---@param component Barotrauma.GUIComponent
+_G['GUI']['GUI'].AddToUpdateList = function(component) end
+
+---`Method Public Static`
+---@param component Barotrauma.GUIComponent
+---@param alsoChildren? System.Boolean
+_G['GUI']['GUI'].RemoveFromUpdateList = function(component, alsoChildren) end
+
+---`Method Public Static`
+_G['GUI']['GUI'].ClearUpdateList = function() end
+
+---`Method Private Static`
+_G['GUI']['GUI'].RefreshUpdateList = function() end
+
+---`Method Private Static`
+_G['GUI']['GUI'].ProcessAdditions = function() end
+
+---`Method Private Static`
+_G['GUI']['GUI'].ProcessRemovals = function() end
+
+---`Method Private Static`
+---@param list (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+_G['GUI']['GUI'].ProcessHelperList = function(list) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['GUI']['GUI'].HandlePersistingElements = function(deltaTime) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+_G['GUI']['GUI'].GetAdditions = function() end
+
+---`Method Public Static`
+---@param target Barotrauma.GUIComponent
+---@return System.Boolean
+_G['GUI']['GUI'].IsMouseOn = function(target) end
+
+---`Method Public Static`
+---@param c Barotrauma.GUIComponent
+_G['GUI']['GUI'].ForceMouseOn = function(c) end
+
+---`Method Public Static`
+---@return Barotrauma.GUIComponent
+_G['GUI']['GUI'].UpdateMouseOn = function() end
+
+---`Method Private Static`
+---@param c Barotrauma.GUIComponent
+---@return Barotrauma.CursorState
+_G['GUI']['GUI'].UpdateMouseCursorState = function(c) end
+
+---`Method Public Static`
+---@param waitSeconds? System.Int32
+---@param endCondition? (System.Func*1System*Boolean)|(fun():(System.Boolean))
+_G['GUI']['GUI'].SetCursorWaiting = function(waitSeconds, endCondition) end
+
+---`Method Public Static`
+_G['GUI']['GUI'].ClearCursorWait = function() end
+
+---`Method Public Static`
+---@param referenceResolution Microsoft.Xna.Framework.Point
+---@param referenceUIScale System.Single
+---@param referenceHUDScale System.Single
+---@return System.Boolean
+_G['GUI']['GUI'].HasSizeChanged = function(referenceResolution, referenceUIScale, referenceHUDScale) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['GUI']['GUI'].Update = function(deltaTime) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['GUI']['GUI'].UpdateGUIMessageBoxesOnly = function(deltaTime) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['GUI']['GUI'].UpdateMessages = function(deltaTime) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['GUI']['GUI'].UpdateSavingIndicator = function(deltaTime) end
+
+---`Method Public Static`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, worldPosition:Microsoft.Xna.Framework.Vector2-ref, cam:Barotrauma.Camera, visibleRange:Barotrauma.Range, sprite:Barotrauma.Sprite, color:Microsoft.Xna.Framework.Color-ref, createOffset?:System.Boolean, scaleMultiplier?:System.Single, overrideAlpha?:System.Nullable*1System*Single, label?:Barotrauma.LocalizedString)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param cam Barotrauma.Camera
+---@param hideDist System.Single
+---@param sprite Barotrauma.Sprite
+---@param color Microsoft.Xna.Framework.Color
+---@param createOffset? System.Boolean
+---@param scaleMultiplier? System.Single
+---@param overrideAlpha? System.Nullable*1System*Single
+_G['GUI']['GUI'].DrawIndicator = function(spriteBatch, worldPosition, cam, hideDist, sprite, color, createOffset, scaleMultiplier, overrideAlpha) end
+
+---`Method Public Static`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, start:Microsoft.Xna.Framework.Vector2, luaKey__end:Microsoft.Xna.Framework.Vector2, clr:Microsoft.Xna.Framework.Color, depth?:System.Single, width?:System.Single)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, sprite:Barotrauma.Sprite, start:Microsoft.Xna.Framework.Vector2, luaKey__end:Microsoft.Xna.Framework.Vector2, clr:Microsoft.Xna.Framework.Color, depth?:System.Single, width?:System.Int32)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param texture Microsoft.Xna.Framework.Graphics.Texture2D
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param clr Microsoft.Xna.Framework.Color
+---@param depth? System.Single
+---@param width? System.Int32
+_G['GUI']['GUI'].DrawLine = function(sb, texture, start, luaKey__end, clr, depth, width) end
+
+---`Method Public Static`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, pos:Microsoft.Xna.Framework.Vector2, text:Barotrauma.LocalizedString, color:Microsoft.Xna.Framework.Color, backgroundColor?:System.Nullable*1Microsoft*Xna*Framework*Color, backgroundPadding?:System.Int32, font?:Barotrauma.GUIFont, forceUpperCase?:Barotrauma.ForceUpperCase)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param text System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param backgroundColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param backgroundPadding? System.Int32
+---@param font? Barotrauma.GUIFont
+---@param forceUpperCase? Barotrauma.ForceUpperCase
+_G['GUI']['GUI'].DrawString = function(sb, pos, text, color, backgroundColor, backgroundPadding, font, forceUpperCase) end
+
+---`Method Public Static`
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param text System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param richTextData System.Nullable
+---@param backgroundColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param backgroundPadding? System.Int32
+---@param font? Barotrauma.GUIFont
+---@param depth? System.Single
+_G['GUI']['GUI'].DrawStringWithColors = function(sb, pos, text, color, richTextData, backgroundColor, backgroundPadding, font, depth) end
+
+---`Method Public Static`
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param center Microsoft.Xna.Framework.Vector2
+---@param radii Barotrauma.Range*1System*Single
+---@param sectionRad System.Single
+---@param clr Microsoft.Xna.Framework.Color
+---@param depth? System.Single
+---@param rotationRad? System.Single
+_G['GUI']['GUI'].DrawDonutSection = function(sb, center, radii, sectionRad, clr, depth, rotationRad) end
+
+---`Method Public Static`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, start:Microsoft.Xna.Framework.Vector2, size:Microsoft.Xna.Framework.Vector2, clr:Microsoft.Xna.Framework.Color, isFilled?:System.Boolean, depth?:System.Single, thickness?:System.Single)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, rect:Microsoft.Xna.Framework.Rectangle, clr:Microsoft.Xna.Framework.Color, isFilled?:System.Boolean, depth?:System.Single, thickness?:System.Single)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, position:Microsoft.Xna.Framework.Vector2, size:Microsoft.Xna.Framework.Vector2, origin:Microsoft.Xna.Framework.Vector2, rotation:System.Single, clr:Microsoft.Xna.Framework.Color, depth?:System.Single, thickness?:System.Single, outlinePos?:Barotrauma.GUI.OutlinePosition)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, center:Microsoft.Xna.Framework.Vector2, width:System.Single, height:System.Single, rotation:System.Single, clr:Microsoft.Xna.Framework.Color, depth?:System.Single, thickness?:System.Single)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param corners (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param clr Microsoft.Xna.Framework.Color
+---@param depth? System.Single
+---@param thickness? System.Single
+_G['GUI']['GUI'].DrawRectangle = function(sb, corners, clr, depth, thickness) end
+
+---`Method Public Static`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, position:Microsoft.Xna.Framework.Vector2, size:Microsoft.Xna.Framework.Vector2, pivot:Microsoft.Xna.Framework.Vector2, rotation:System.Single, clr:Microsoft.Xna.Framework.Color, depth?:System.Single)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, rect:Microsoft.Xna.Framework.RectangleF, clr:Microsoft.Xna.Framework.Color, depth?:System.Single)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param start Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@param clr Microsoft.Xna.Framework.Color
+---@param depth? System.Single
+_G['GUI']['GUI'].DrawFilledRectangle = function(sb, start, size, clr, depth) end
+
+---`Method Public Static`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, start:Microsoft.Xna.Framework.Vector2, size:Microsoft.Xna.Framework.Vector2, progress:System.Single, clr:Microsoft.Xna.Framework.Color, depth?:System.Single)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param start Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@param progress System.Single
+---@param clr Microsoft.Xna.Framework.Color
+---@param outlineColor Microsoft.Xna.Framework.Color
+---@param depth? System.Single
+_G['GUI']['GUI'].DrawProgressBar = function(sb, start, size, progress, clr, outlineColor, depth) end
+
+---`Method Public Static`
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param text System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param isHoldable? System.Boolean
+---@return System.Boolean
+_G['GUI']['GUI'].DrawButton = function(sb, rect, text, color, isHoldable) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['GUI']['GUI'].DrawMessages = function(spriteBatch, cam) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param control Microsoft.Xna.Framework.Vector2
+---@param pointCount System.Int32
+---@param color Microsoft.Xna.Framework.Color
+---@param dotSize? System.Int32
+_G['GUI']['GUI'].DrawBezierWithDots = function(spriteBatch, start, luaKey__end, control, pointCount, color, dotSize) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param from Microsoft.Xna.Framework.Vector2
+---@param dir Microsoft.Xna.Framework.Vector2
+---@param amplitude System.Single
+---@param length System.Single
+---@param scale System.Single
+---@param pointCount System.Int32
+---@param color Microsoft.Xna.Framework.Color
+---@param dotSize? System.Int32
+_G['GUI']['GUI'].DrawSineWithDots = function(spriteBatch, from, dir, amplitude, length, scale, pointCount, color, dotSize) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['GUI'].DrawSavingIndicator = function(spriteBatch) end
+
+---`Constructor Private Static`
+---@return Barotrauma.GUI
+_G['GUI']['GUI'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.GUI
+_G['GUI']['GUI'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97ED6C08.lua b/Meta/Types/client/_00007FFD97ED6C08.lua
new file mode 100644
index 0000000..1617364
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED6C08.lua
@@ -0,0 +1,97 @@
+---@meta
+---@class Barotrauma.GUIComponentStyle : Barotrauma.GUIPrefab
+---`Field Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field HoverColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field SelectedColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field PressedColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field DisabledColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field HoverTextColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field SelectedTextColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field DisabledTextColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field SpriteCrossFadeTime System.Single
+---`Field Public Instance`
+---@field ColorCrossFadeTime System.Single
+---`Field Public Instance`
+---@field TransitionMode Barotrauma.TransitionMode
+---`Field Public Instance`
+---@field Font Barotrauma.Identifier
+---`Field Public Instance`
+---@field ForceUpperCase System.Boolean
+---`Field Public Instance`
+---@field OutlineColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field Element Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field Sprites (System.Collections.Generic.Dictionary*1Barotrauma*GUIComponent*ComponentState*1System*Collections*Generic*List*2Barotrauma*UISprite)|({[Barotrauma.GUIComponent.ComponentState]:((System.Collections.Generic.List*1Barotrauma*UISprite)|(Barotrauma.UISprite[]))})
+---`Field Public Instance`
+---@field FallBackState Barotrauma.SpriteFallBackState
+---`Field Public Instance`
+---@field ParentStyle Barotrauma.GUIComponentStyle
+---`Field Public Instance`
+---@field ChildStyles (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUIComponentStyle)|({[Barotrauma.Identifier]:(Barotrauma.GUIComponentStyle)})
+---`Field Public Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Width System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Height System.Nullable*1System*Int32
+_G['GUIComponentStyle'] = {}
+
+---`Method Public Static`
+---@param hierarchy (System.Collections.Generic.IReadOnlyList*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@return Barotrauma.GUIComponentStyle
+_G['GUIComponentStyle'].FromHierarchy = function(hierarchy) end
+
+---`Method Public Static`
+---@param style Barotrauma.GUIComponentStyle
+---@return (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+_G['GUIComponentStyle'].ToHierarchy = function(style) end
+
+---`Method Public Instance`
+---@return Barotrauma.Sprite
+_G['GUIComponentStyle'].GetDefaultSprite = function() end
+
+---`Method Public Instance`
+---@param state Barotrauma.GUIComponent.ComponentState
+---@return Barotrauma.Sprite
+_G['GUIComponentStyle'].GetSprite = function(state) end
+
+---`Method Public Instance`
+_G['GUIComponentStyle'].RefreshSize = function() end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['GUIComponentStyle'].GetSize = function(element) end
+
+---`Method Public Instance Virtual`
+_G['GUIComponentStyle'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@param parent? Barotrauma.GUIComponentStyle
+---@return Barotrauma.GUIComponentStyle
+_G['GUIComponentStyle'] = function(element, file, parent) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@param parent? Barotrauma.GUIComponentStyle
+---@return Barotrauma.GUIComponentStyle
+_G['GUIComponentStyle'].__new = function(element, file, parent) end
+
diff --git a/Meta/Types/client/_00007FFD97ED7C20.lua b/Meta/Types/client/_00007FFD97ED7C20.lua
new file mode 100644
index 0000000..3b6c3fc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED7C20.lua
@@ -0,0 +1,204 @@
+---@meta
+---@class Barotrauma.PlayerInput : System.Object
+---`Field Private Static`
+---@field mouseState Microsoft.Xna.Framework.Input.MouseState
+---`Field Private Static`
+---@field oldMouseState Microsoft.Xna.Framework.Input.MouseState
+---`Field Private Static`
+---@field latestMouseState Microsoft.Xna.Framework.Input.MouseState
+---`Field Private Static`
+---@field keyboardState Microsoft.Xna.Framework.Input.KeyboardState
+---`Field Private Static`
+---@field oldKeyboardState Microsoft.Xna.Framework.Input.KeyboardState
+---`Field Private Static`
+---@field timeSincePrimaryClick System.Double
+---`Field Private Static`
+---@field lastPrimaryClickPosition Microsoft.Xna.Framework.Point
+---`Field Private Static`
+---@field timeSinceSecondaryClick System.Double
+---`Field Private Static`
+---@field lastSecondaryClickPosition Microsoft.Xna.Framework.Point
+---`Field Private Static`
+---@field primaryDoubleClicked System.Boolean
+---`Field Private Static`
+---@field secondaryDoubleClicked System.Boolean
+---`Field Private Static`
+---@field allowInput System.Boolean
+---`Field Private Static`
+---@field wasWindowActive System.Boolean
+---`Field Public Static`
+---@field NumberKeys (System.Collections.Generic.List*1Microsoft*Xna*Framework*Input*Keys)|(Microsoft.Xna.Framework.Input.Keys[])
+---`Field Public Static`
+---@field PrimaryMouseLabel Barotrauma.LocalizedString
+---`Field Public Static`
+---@field SecondaryMouseLabel Barotrauma.LocalizedString
+---`Field Private Static`
+---@field DoubleClickDelay System.Single
+---`Field Private Static`
+---@field SM_SWAPBUTTON System.Int32
+---`Getter Public Static`
+---@field MaxDoubleClickDistance System.Single
+---`Getter Public Static`
+---@field MousePosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field LatestMousePosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field MouseInsideWindow System.Boolean
+---`Getter Public Static`
+---@field MouseSpeed Microsoft.Xna.Framework.Vector2
+---`Getter Private Static`
+---@field AllowInput System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MouseSpeedPerSecond Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field GetKeyboardState Microsoft.Xna.Framework.Input.KeyboardState
+---`Getter Public Static`
+---@field GetOldKeyboardState Microsoft.Xna.Framework.Input.KeyboardState
+---`Getter Public Static`
+---@field ScrollWheelSpeed System.Int32
+_G['PlayerInput'] = {}
+
+---`Method Private Static`
+---@param smIndex System.Int32
+---@return System.Int32
+_G['PlayerInput'].GetSystemMetrics = function(smIndex) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].MouseButtonsSwapped = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].PrimaryMouseButtonHeld = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].PrimaryMouseButtonDown = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].PrimaryMouseButtonReleased = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].PrimaryMouseButtonClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].SecondaryMouseButtonHeld = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].SecondaryMouseButtonDown = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].SecondaryMouseButtonReleased = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].SecondaryMouseButtonClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].MidButtonClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].MidButtonHeld = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].Mouse4ButtonClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].Mouse4ButtonHeld = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].Mouse5ButtonClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].Mouse5ButtonHeld = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].MouseWheelUpClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].MouseWheelDownClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].DoubleClicked = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].SecondaryDoubleClicked = function() end
+
+---`Method Public Static`
+---@overload fun(inputType:Barotrauma.InputType):(System.Boolean)
+---@param button Microsoft.Xna.Framework.Input.Keys
+---@return System.Boolean
+_G['PlayerInput'].KeyHit = function(button) end
+
+---`Method Public Static`
+---@overload fun(inputType:Barotrauma.InputType):(System.Boolean)
+---@param button Microsoft.Xna.Framework.Input.Keys
+---@return System.Boolean
+_G['PlayerInput'].KeyDown = function(button) end
+
+---`Method Public Static`
+---@overload fun(inputType:Barotrauma.InputType):(System.Boolean)
+---@param button Microsoft.Xna.Framework.Input.Keys
+---@return System.Boolean
+_G['PlayerInput'].KeyUp = function(button) end
+
+---`Method Public Static`
+---@param index System.Int32
+---@return System.Boolean
+_G['PlayerInput'].InventoryKeyHit = function(index) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].IsShiftDown = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].IsCtrlDown = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['PlayerInput'].IsAltDown = function() end
+
+---`Method Public Static`
+---@param deltaTime System.Double
+_G['PlayerInput'].Update = function(deltaTime) end
+
+---`Method Public Static`
+_G['PlayerInput'].UpdateVariable = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PlayerInput
+---@return Barotrauma.PlayerInput
+_G['PlayerInput'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PlayerInput
+---@return Barotrauma.PlayerInput
+_G['PlayerInput'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.PlayerInput
+---@return Barotrauma.PlayerInput
+_G['PlayerInput'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.PlayerInput
+---@return Barotrauma.PlayerInput
+_G['PlayerInput'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97ED8188.lua b/Meta/Types/client/_00007FFD97ED8188.lua
new file mode 100644
index 0000000..0db1f83
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED8188.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.GUIFont : Barotrauma.GUISelector*1Barotrauma*GUIFontPrefab
+---`Getter Public Instance`
+---@field HasValue System.Boolean
+---`Getter Public Instance`
+---@field Value Barotrauma.ScalableFont
+---`Getter Public Instance`
+---@field ForceUpperCase System.Boolean
+---`Getter Public Instance`
+---@field Size System.UInt32
+---`Getter Public Instance`
+---@field LineHeight System.Single
+_G['GUIFont'] = {}
+
+---`Method Private Instance`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.ScalableFont
+_G['GUIFont'].GetFontForStr = function(str) end
+
+---`Method Public Instance`
+---@param str System.String
+---@return Barotrauma.ScalableFont
+_G['GUIFont'].GetFontForStr = function(str) end
+
+---`Method Public Instance`
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:Barotrauma.LocalizedString, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:Microsoft.Xna.Framework.Vector2, spriteEffects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:Microsoft.Xna.Framework.Vector2, spriteEffects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:Barotrauma.LocalizedString, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:System.Single, spriteEffects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single, alignment?:Barotrauma.Alignment)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:System.String, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, rotation:System.Single, origin:Microsoft.Xna.Framework.Vector2, scale:System.Single, spriteEffects:Microsoft.Xna.Framework.Graphics.SpriteEffects, layerDepth:System.Single, alignment?:Barotrauma.Alignment, forceUpperCase?:Barotrauma.ForceUpperCase)
+---@overload fun(sb:Microsoft.Xna.Framework.Graphics.SpriteBatch, text:Barotrauma.LocalizedString, position:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, forceUpperCase?:Barotrauma.ForceUpperCase, italics?:System.Boolean)
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param text System.String
+---@param position Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param forceUpperCase? Barotrauma.ForceUpperCase
+---@param italics? System.Boolean
+_G['GUIFont'].DrawString = function(sb, text, position, color, forceUpperCase, italics) end
+
+---`Method Public Instance`
+---@param sb Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param text System.String
+---@param position Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param rotation System.Single
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param scale System.Single
+---@param spriteEffects Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param layerDepth System.Single
+---@param richTextData System.Nullable
+---@param rtdOffset? System.Int32
+---@param alignment? Barotrauma.Alignment
+---@param forceUpperCase? Barotrauma.ForceUpperCase
+_G['GUIFont'].DrawStringWithColors = function(sb, text, position, color, rotation, origin, scale, spriteEffects, layerDepth, richTextData, rtdOffset, alignment, forceUpperCase) end
+
+---`Method Public Instance`
+---@param str Barotrauma.LocalizedString
+---@param removeExtraSpacing? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['GUIFont'].MeasureString = function(str, removeExtraSpacing) end
+
+---`Method Public Instance`
+---@param c System.Char
+---@return Microsoft.Xna.Framework.Vector2
+_G['GUIFont'].MeasureChar = function(c) end
+
+---`Method Public Instance`
+---@overload fun(text:System.String, width:System.Single):(System.String)
+---@overload fun(text:System.String, width:System.Single, requestCharPos:System.Int32, requestedCharPos:Microsoft.Xna.Framework.Vector2-ref):(System.String)
+---@param text System.String
+---@param width System.Single
+---@param allCharPositions Microsoft.Xna.Framework.Vector2-arr-ref
+---@return System.String
+_G['GUIFont'].WrapText = function(text, width, allCharPositions) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUIFont
+_G['GUIFont'] = function(identifier) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUIFont
+_G['GUIFont'].__new = function(identifier) end
+
diff --git a/Meta/Types/client/_00007FFD97ED8418.lua b/Meta/Types/client/_00007FFD97ED8418.lua
new file mode 100644
index 0000000..cfbd1bc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED8418.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.GUIFontPrefab : Barotrauma.GUIPrefab
+---`Field Private Instance`
+---@field element Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field font Barotrauma.ScalableFont
+---`Field Private Instance`
+---@field specialHandlingFonts (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*TextManager*SpeciallyHandledCharCategory*1Barotrauma*ScalableFont)|({[Barotrauma.TextManager.SpeciallyHandledCharCategory]:(Barotrauma.ScalableFont)})
+---`Getter Public Instance`
+---@field Font Barotrauma.ScalableFont
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Language Barotrauma.LanguageIdentifier
+_G['GUIFontPrefab'] = {}
+
+---`Method Public Instance`
+---@param category Barotrauma.TextManager.SpeciallyHandledCharCategory
+---@return Barotrauma.ScalableFont
+_G['GUIFontPrefab'].GetFontForCategory = function(category) end
+
+---`Method Public Instance`
+_G['GUIFontPrefab'].LoadFont = function() end
+
+---`Method Public Instance Virtual`
+_G['GUIFontPrefab'].Dispose = function() end
+
+---`Method Private Instance`
+---@param flag Barotrauma.TextManager.SpeciallyHandledCharCategory
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.ScalableFont
+_G['GUIFontPrefab'].ExtractFont = function(flag, element) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@return System.String
+_G['GUIFontPrefab'].GetFontFilePath = function(element) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param defaultSize? System.UInt32
+---@return System.UInt32
+_G['GUIFontPrefab'].GetFontSize = function(element, defaultSize) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['GUIFontPrefab'].GetFontDynamicLoading = function(element) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.TextManager.SpeciallyHandledCharCategory
+_G['GUIFontPrefab'].GetShcc = function(element) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['GUIFontPrefab'].IsValidOverride = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUIFontPrefab
+_G['GUIFontPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUIFontPrefab
+_G['GUIFontPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97ED8700.lua b/Meta/Types/client/_00007FFD97ED8700.lua
new file mode 100644
index 0000000..e997c27
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED8700.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.GUISprite : Barotrauma.GUISelector*1Barotrauma*GUISpritePrefab
+---`Getter Public Instance`
+---@field Value Barotrauma.UISprite
+_G['GUISprite'] = {}
+
+---`Method Public Instance`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, rect:Microsoft.Xna.Framework.RectangleF, color:Microsoft.Xna.Framework.Color, spriteEffects?:Microsoft.Xna.Framework.Graphics.SpriteEffects)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param color Microsoft.Xna.Framework.Color
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+_G['GUISprite'].Draw = function(spriteBatch, rect, color, spriteEffects) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUISprite
+_G['GUISprite'] = function(identifier) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUISprite
+_G['GUISprite'].__new = function(identifier) end
+
diff --git a/Meta/Types/client/_00007FFD97ED8818.lua b/Meta/Types/client/_00007FFD97ED8818.lua
new file mode 100644
index 0000000..7d59683
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED8818.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.GUISpritePrefab : Barotrauma.GUIPrefab
+---`Field Public Instance`
+---@field Sprite Barotrauma.UISprite
+_G['GUISpritePrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['GUISpritePrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUISpritePrefab
+_G['GUISpritePrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUISpritePrefab
+_G['GUISpritePrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97ED8B48.lua b/Meta/Types/client/_00007FFD97ED8B48.lua
new file mode 100644
index 0000000..dde3aab
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED8B48.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.GUISpriteSheet : Barotrauma.GUISelector*1Barotrauma*GUISpriteSheetPrefab
+---`Getter Public Instance`
+---@field Value Barotrauma.SpriteSheet
+---`Getter Public Instance`
+---@field FrameCount System.Int32
+---`Getter Public Instance`
+---@field FrameSize Microsoft.Xna.Framework.Point
+_G['GUISpriteSheet'] = {}
+
+---`Method Public Instance`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.ISpriteBatch, pos:Microsoft.Xna.Framework.Vector2, rotate?:System.Single, scale?:System.Single, spriteEffects?:Microsoft.Xna.Framework.Graphics.SpriteEffects)
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.ISpriteBatch, pos:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, origin:Microsoft.Xna.Framework.Vector2, rotate?:System.Single, scale?:System.Single, spriteEffects?:Microsoft.Xna.Framework.Graphics.SpriteEffects, depth?:System.Nullable*1System*Single)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@param spriteIndex System.Int32
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param rotate System.Single
+---@param scale Microsoft.Xna.Framework.Vector2
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param depth? System.Nullable*1System*Single
+_G['GUISpriteSheet'].Draw = function(spriteBatch, spriteIndex, pos, color, origin, rotate, scale, spriteEffects, depth) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUISpriteSheet
+_G['GUISpriteSheet'] = function(identifier) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUISpriteSheet
+_G['GUISpriteSheet'].__new = function(identifier) end
+
diff --git a/Meta/Types/client/_00007FFD97ED8C60.lua b/Meta/Types/client/_00007FFD97ED8C60.lua
new file mode 100644
index 0000000..d7bf722
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED8C60.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.GUISpriteSheetPrefab : Barotrauma.GUIPrefab
+---`Field Public Instance`
+---@field SpriteSheet Barotrauma.SpriteSheet
+_G['GUISpriteSheetPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['GUISpriteSheetPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUISpriteSheetPrefab
+_G['GUISpriteSheetPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUISpriteSheetPrefab
+_G['GUISpriteSheetPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97ED8F00.lua b/Meta/Types/client/_00007FFD97ED8F00.lua
new file mode 100644
index 0000000..b2073db
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED8F00.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.GUICursor : Barotrauma.GUISelector*1Barotrauma*GUICursorPrefab, {[Barotrauma.CursorState]:Barotrauma.Sprite}
+_G['GUICursor'] = {}
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUICursor
+_G['GUICursor'] = function(identifier) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@return Barotrauma.GUICursor
+_G['GUICursor'].__new = function(identifier) end
+
diff --git a/Meta/Types/client/_00007FFD97ED9018.lua b/Meta/Types/client/_00007FFD97ED9018.lua
new file mode 100644
index 0000000..968045f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED9018.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.GUICursorPrefab : Barotrauma.GUIPrefab
+---`Field Public Instance`
+---@field Sprites (Barotrauma.Sprite-arr)|(Barotrauma.Sprite[])
+_G['GUICursorPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['GUICursorPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUICursorPrefab
+_G['GUICursorPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUICursorPrefab
+_G['GUICursorPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97ED9EE8.lua b/Meta/Types/client/_00007FFD97ED9EE8.lua
new file mode 100644
index 0000000..0e7f76b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97ED9EE8.lua
@@ -0,0 +1,392 @@
+---@meta
+---@class Barotrauma.RectTransform : System.Object
+---`Field Private Instance`
+---@field parent Barotrauma.RectTransform
+---`Field NonPublic Instance`
+---@field children (System.Collections.Generic.List*1Barotrauma*RectTransform)|(Barotrauma.RectTransform[])
+---`Field Private Instance`
+---@field relativeSize Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field minSize System.Nullable*1Microsoft*Xna*Framework*Point
+---`Field Private Instance`
+---@field maxSize System.Nullable*1Microsoft*Xna*Framework*Point
+---`Field Private Instance`
+---@field nonScaledSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field localScale Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field relativeOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field absoluteOffset Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field screenSpaceOffset Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field recalculateRect System.Boolean
+---`Field Private Instance`
+---@field _rect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field pivot Barotrauma.Pivot
+---`Field Private Instance`
+---@field anchor Barotrauma.Anchor
+---`Field Private Instance`
+---@field _scaleBasis Barotrauma.ScaleBasis
+---`Field Private Instance`
+---@field ParentChanged (System.Action*1Barotrauma*RectTransform)|(fun(obj:Barotrauma.RectTransform))
+---`Field Private Instance`
+---@field ChildrenChanged (System.Action*1Barotrauma*RectTransform)|(fun(obj:Barotrauma.RectTransform))
+---`Field Private Instance`
+---@field ScaleChanged (System.Action)|(fun())
+---`Field Private Instance`
+---@field SizeChanged (System.Action)|(fun())
+---`Field Private Instance`
+---@field animTargetPos System.Nullable*1Microsoft*Xna*Framework*Point
+---`Field Public Static`
+---@field MaxPoint Microsoft.Xna.Framework.Point
+---`Field Public Static`
+---@field globalScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GUIComponent Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Parent Barotrauma.RectTransform
+---`Getter Public Instance`
+---@field Children (System.Collections.Generic.IEnumerable*1Barotrauma*RectTransform)|(fun():(Barotrauma.RectTransform))
+---`Getter Public Instance`
+---@field CountChildren System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RelativeSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonScaledSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field ScaledSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LocalScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Scale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RelativeOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbsoluteOffset Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScreenSpaceOffset Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PivotOffset Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AnchorPoint Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field TopLeft Microsoft.Xna.Framework.Point
+---`Getter NonPublic Instance`
+---@field NonScaledTopLeft Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field ParentRect Microsoft.Xna.Framework.Rectangle
+---`Getter NonPublic Instance`
+---@field NonScaledRect Microsoft.Xna.Framework.Rectangle
+---`Getter NonPublic Instance Virtual`
+---@field NonScaledUIRect Microsoft.Xna.Framework.Rectangle
+---`Getter NonPublic Instance`
+---@field NonScaledParentSize Microsoft.Xna.Framework.Point
+---`Getter NonPublic Instance`
+---@field NonScaledParentRect Microsoft.Xna.Framework.Rectangle
+---`Getter NonPublic Instance`
+---@field NonScaledParentUIRect Microsoft.Xna.Framework.Rectangle
+---`Getter NonPublic Instance`
+---@field UIRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Pivot Barotrauma.Pivot
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Anchor Barotrauma.Anchor
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScaleBasis Barotrauma.ScaleBasis
+---`Getter Public Instance`
+---@field IsLastChild System.Boolean
+---`Getter Public Instance`
+---@field IsFirstChild System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsFixedSize System.Boolean
+---`Getter Public Instance`
+---@field AnimTargetPos Microsoft.Xna.Framework.Point
+_G['GUI']['RectTransform'] = {}
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].SetAsLastChild = function() end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].SetAsFirstChild = function() end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return System.Boolean
+_G['GUI']['RectTransform'].RepositionChildInHierarchy = function(index) end
+
+---`Method Public Instance`
+---@param resize System.Boolean
+---@param scale? System.Boolean
+_G['GUI']['RectTransform'].RecalculateChildren = function(resize, scale) end
+
+---`Method Public Instance`
+---@param ignoreChildren? System.Boolean
+---@param order? System.Int32
+_G['GUI']['RectTransform'].AddChildrenToGUIUpdateList = function(ignoreChildren, order) end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].MatchPivotToAnchor = function() end
+
+---`Method Public Static`
+---@param anchor Barotrauma.Anchor
+---@return Barotrauma.Pivot
+_G['GUI']['RectTransform'].MatchPivotToAnchor = function(anchor) end
+
+---`Method Public Instance`
+---@param targetPos Microsoft.Xna.Framework.Point
+---@param duration System.Single
+---@param onDoneMoving? (System.Action)|(fun())
+_G['GUI']['RectTransform'].MoveOverTime = function(targetPos, duration, onDoneMoving) end
+
+---`Method Public Instance`
+---@param targetSize Microsoft.Xna.Framework.Point
+---@param duration System.Single
+_G['GUI']['RectTransform'].ScaleOverTime = function(targetSize, duration) end
+
+---`Method Private Instance`
+---@param targetPos Microsoft.Xna.Framework.Point
+---@param duration System.Single
+---@param onDoneMoving? (System.Action)|(fun())
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GUI']['RectTransform'].DoMoveAnimation = function(targetPos, duration, onDoneMoving) end
+
+---`Method Private Instance`
+---@param targetSize Microsoft.Xna.Framework.Point
+---@param duration System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GUI']['RectTransform'].DoScaleAnimation = function(targetSize, duration) end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].InheritTotalChildrenMinHeight = function() end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].InheritTotalChildrenHeight = function() end
+
+---`Method Public Static`
+---@param pivot Barotrauma.Pivot
+---@return Barotrauma.Anchor
+_G['GUI']['RectTransform'].MatchAnchorToPivot = function(pivot) end
+
+---`Method Public Static`
+---@param anchor Barotrauma.Anchor
+---@return Barotrauma.Anchor
+_G['GUI']['RectTransform'].MoveAnchorLeft = function(anchor) end
+
+---`Method Public Static`
+---@param anchor Barotrauma.Anchor
+---@return Barotrauma.Anchor
+_G['GUI']['RectTransform'].MoveAnchorRight = function(anchor) end
+
+---`Method Public Static`
+---@param anchor Barotrauma.Anchor
+---@return Barotrauma.Anchor
+_G['GUI']['RectTransform'].MoveAnchorTop = function(anchor) end
+
+---`Method Public Static`
+---@param anchor Barotrauma.Anchor
+---@return Barotrauma.Anchor
+_G['GUI']['RectTransform'].MoveAnchorBottom = function(anchor) end
+
+---`Method Public Static`
+---@param offset Microsoft.Xna.Framework.Point
+---@param anchor Barotrauma.Anchor
+---@return Microsoft.Xna.Framework.Point
+_G['GUI']['RectTransform'].ConvertOffsetRelativeToAnchor = function(offset, anchor) end
+
+---`Method Public Static`
+---@param anchor Barotrauma.Pivot
+---@param size Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['GUI']['RectTransform'].CalculatePivotOffset = function(anchor, size) end
+
+---`Method Public Static`
+---@param anchor Barotrauma.Anchor
+---@param parent Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Point
+_G['GUI']['RectTransform'].CalculateAnchorPoint = function(anchor, parent) end
+
+---`Method Public Static`
+_G['GUI']['RectTransform'].ResetGlobalScale = function() end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].ResetSizeChanged = function() end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.RectTransform
+---@param defaultAnchor? Barotrauma.Anchor
+---@return Barotrauma.RectTransform
+_G['GUI']['RectTransform'].Load = function(element, parent, defaultAnchor) end
+
+---`Method Private Instance`
+---@param parent? Barotrauma.RectTransform
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+_G['GUI']['RectTransform'].Init = function(parent, anchor, pivot) end
+
+---`Method NonPublic Instance`
+_G['GUI']['RectTransform'].RecalculateScale = function() end
+
+---`Method Public Instance`
+---@param withChildren System.Boolean
+_G['GUI']['RectTransform'].RecalculateScale = function(withChildren) end
+
+---`Method NonPublic Instance`
+_G['GUI']['RectTransform'].RecalculatePivotOffset = function() end
+
+---`Method NonPublic Instance`
+_G['GUI']['RectTransform'].RecalculateAnchorPoint = function() end
+
+---`Method NonPublic Instance`
+_G['GUI']['RectTransform'].RecalculateRelativeSize = function() end
+
+---`Method NonPublic Instance`
+_G['GUI']['RectTransform'].RecalculateAbsoluteSize = function() end
+
+---`Method NonPublic Instance`
+---@param resize System.Boolean
+---@param scale? System.Boolean
+---@param withChildren? System.Boolean
+_G['GUI']['RectTransform'].RecalculateAll = function(resize, scale, withChildren) end
+
+---`Method Private Instance`
+---@param displayErrors? System.Boolean
+---@return System.Boolean
+_G['GUI']['RectTransform'].RemoveFromHierarchy = function(displayErrors) end
+
+---`Method Public Instance`
+---@param anchor Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+_G['GUI']['RectTransform'].SetPosition = function(anchor, pivot) end
+
+---`Method Public Instance`
+---@overload fun(absoluteSize:Microsoft.Xna.Framework.Point, resizeChildren?:System.Boolean)
+---@param relativeSize Microsoft.Xna.Framework.Vector2
+---@param resizeChildren? System.Boolean
+_G['GUI']['RectTransform'].Resize = function(relativeSize, resizeChildren) end
+
+---`Method Public Instance`
+---@param newScale Microsoft.Xna.Framework.Vector2
+_G['GUI']['RectTransform'].ChangeScale = function(newScale) end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].ResetScale = function() end
+
+---`Method Public Instance`
+---@param translation Microsoft.Xna.Framework.Point
+_G['GUI']['RectTransform'].Translate = function(translation) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*RectTransform)|(fun():(Barotrauma.RectTransform))
+_G['GUI']['RectTransform'].GetParents = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*RectTransform)|(fun():(Barotrauma.RectTransform))
+_G['GUI']['RectTransform'].GetAllChildren = function() end
+
+---`Method Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@return System.Int32
+_G['GUI']['RectTransform'].GetChildIndex = function(rectT) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return Barotrauma.RectTransform
+_G['GUI']['RectTransform'].GetChild = function(index) end
+
+---`Method Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['GUI']['RectTransform'].IsParentOf = function(rectT, recursive) end
+
+---`Method Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['GUI']['RectTransform'].IsChildOf = function(rectT, recursive) end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].ClearChildren = function() end
+
+---`Method Public Instance`
+---@param comparison (System.Comparison*1Barotrauma*RectTransform)|(fun(x:Barotrauma.RectTransform, y:Barotrauma.RectTransform):(System.Int32))
+_G['GUI']['RectTransform'].SortChildren = function(comparison) end
+
+---`Method Public Instance`
+_G['GUI']['RectTransform'].ReverseChildren = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.RectTransform
+---@overload fun(relativeSize:Microsoft.Xna.Framework.Vector2, parent:Barotrauma.RectTransform, anchor?:Barotrauma.Anchor, pivot?:System.Nullable*1Barotrauma*Pivot, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, maxSize?:System.Nullable*1Microsoft*Xna*Framework*Point, scaleBasis?:Barotrauma.ScaleBasis):Barotrauma.RectTransform
+---@param absoluteSize Microsoft.Xna.Framework.Point
+---@param parent? Barotrauma.RectTransform
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+---@param scaleBasis? Barotrauma.ScaleBasis
+---@param isFixedSize? System.Boolean
+---@return Barotrauma.RectTransform
+_G['GUI']['RectTransform'] = function(absoluteSize, parent, anchor, pivot, scaleBasis, isFixedSize) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.RectTransform
+---@overload fun(relativeSize:Microsoft.Xna.Framework.Vector2, parent:Barotrauma.RectTransform, anchor?:Barotrauma.Anchor, pivot?:System.Nullable*1Barotrauma*Pivot, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, maxSize?:System.Nullable*1Microsoft*Xna*Framework*Point, scaleBasis?:Barotrauma.ScaleBasis):Barotrauma.RectTransform
+---@param absoluteSize Microsoft.Xna.Framework.Point
+---@param parent? Barotrauma.RectTransform
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+---@param scaleBasis? Barotrauma.ScaleBasis
+---@param isFixedSize? System.Boolean
+---@return Barotrauma.RectTransform
+_G['GUI']['RectTransform'].__new = function(absoluteSize, parent, anchor, pivot, scaleBasis, isFixedSize) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.RectTransform
+---@overload fun(relativeSize:Microsoft.Xna.Framework.Vector2, parent:Barotrauma.RectTransform, anchor?:Barotrauma.Anchor, pivot?:System.Nullable*1Barotrauma*Pivot, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, maxSize?:System.Nullable*1Microsoft*Xna*Framework*Point, scaleBasis?:Barotrauma.ScaleBasis):Barotrauma.RectTransform
+---@param absoluteSize Microsoft.Xna.Framework.Point
+---@param parent? Barotrauma.RectTransform
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+---@param scaleBasis? Barotrauma.ScaleBasis
+---@param isFixedSize? System.Boolean
+---@return Barotrauma.RectTransform
+_G['GUI']['RectTransform'] = function(absoluteSize, parent, anchor, pivot, scaleBasis, isFixedSize) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.RectTransform
+---@overload fun(relativeSize:Microsoft.Xna.Framework.Vector2, parent:Barotrauma.RectTransform, anchor?:Barotrauma.Anchor, pivot?:System.Nullable*1Barotrauma*Pivot, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, maxSize?:System.Nullable*1Microsoft*Xna*Framework*Point, scaleBasis?:Barotrauma.ScaleBasis):Barotrauma.RectTransform
+---@param absoluteSize Microsoft.Xna.Framework.Point
+---@param parent? Barotrauma.RectTransform
+---@param anchor? Barotrauma.Anchor
+---@param pivot? System.Nullable*1Barotrauma*Pivot
+---@param scaleBasis? Barotrauma.ScaleBasis
+---@param isFixedSize? System.Boolean
+---@return Barotrauma.RectTransform
+_G['GUI']['RectTransform'].__new = function(absoluteSize, parent, anchor, pivot, scaleBasis, isFixedSize) end
+
diff --git a/Meta/Types/client/_00007FFD97EDA068.lua b/Meta/Types/client/_00007FFD97EDA068.lua
new file mode 100644
index 0000000..ddefa65
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDA068.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.GUICanvas : Barotrauma.RectTransform
+---`Field Private Instance`
+---@field childrenWeakRef (System.Collections.Generic.List*1System*WeakReference*2Barotrauma*RectTransform)|(System.WeakReference*1Barotrauma*RectTransform[])
+---`Field Private Static`
+---@field _instance Barotrauma.GUICanvas
+---`Getter Public Static`
+---@field Instance Barotrauma.GUICanvas
+---`Getter Private Static`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter NonPublic Instance Virtual`
+---@field NonScaledUIRect Microsoft.Xna.Framework.Rectangle
+_G['GUI']['Canvas'] = {}
+
+---`Method Private Static`
+---@param _ Barotrauma.RectTransform
+_G['GUI']['Canvas'].OnChildrenChanged = function(_) end
+
+---`Method Private Static`
+_G['GUI']['Canvas'].RefreshChildren = function() end
+
+---`Method Private Static`
+_G['GUI']['Canvas'].RecalculateSize = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.GUICanvas
+_G['GUI']['Canvas'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.GUICanvas
+_G['GUI']['Canvas'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EDA218.lua b/Meta/Types/client/_00007FFD97EDA218.lua
new file mode 100644
index 0000000..a409f99
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDA218.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.GUIColor : Barotrauma.GUISelector*1Barotrauma*GUIColorPrefab
+---@operator mul(System.Single):Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field fallbackColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field Value Microsoft.Xna.Framework.Color
+_G['GUIColor'] = {}
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@param fallbackColor Microsoft.Xna.Framework.Color
+---@return Barotrauma.GUIColor
+_G['GUIColor'] = function(identifier, fallbackColor) end
+
+---`Constructor Public Instance`
+---@param identifier System.String
+---@param fallbackColor Microsoft.Xna.Framework.Color
+---@return Barotrauma.GUIColor
+_G['GUIColor'].__new = function(identifier, fallbackColor) end
+
diff --git a/Meta/Types/client/_00007FFD97EDA320.lua b/Meta/Types/client/_00007FFD97EDA320.lua
new file mode 100644
index 0000000..3e194e5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDA320.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.GUIColorPrefab : Barotrauma.GUIPrefab
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+_G['GUIColorPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['GUIColorPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUIColorPrefab
+_G['GUIColorPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.UIStyleFile
+---@return Barotrauma.GUIColorPrefab
+_G['GUIColorPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/client/_00007FFD97EDA758.lua b/Meta/Types/client/_00007FFD97EDA758.lua
new file mode 100644
index 0000000..7ad7f85
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDA758.lua
@@ -0,0 +1,89 @@
+---@meta
+---@class Barotrauma.GUIColorPicker : Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field OnColorSelected (Barotrauma.GUIColorPicker.OnColorSelectedHandler)|(fun(component:Barotrauma.GUIColorPicker, color:Microsoft.Xna.Framework.Color):(System.Boolean))
+---`Field Public Instance`
+---@field SelectedHue System.Single
+---`Field Public Instance`
+---@field SelectedSaturation System.Single
+---`Field Public Instance`
+---@field SelectedValue System.Single
+---`Field Public Instance`
+---@field CurrentColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field MainArea Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field HueArea Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field mainTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field hueTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field colorData (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Private Instance`
+---@field selectedRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field mouseHeld System.Boolean
+---`Field Private Instance`
+---@field isInitialized System.Boolean
+---`Field Private Instance`
+---@field transparentWhite Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field transparentBlack Microsoft.Xna.Framework.Color
+_G['GUI']['ColorPicker'] = {}
+
+---`Method Private Instance`
+_G['GUI']['ColorPicker'].Init = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['ColorPicker'].Draw = function(spriteBatch) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['ColorPicker'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['GUI']['ColorPicker'].Dispose = function() end
+
+---`Method Public Instance`
+_G['GUI']['ColorPicker'].RefreshHue = function() end
+
+---`Method Private Instance`
+---@param data (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---@param width System.Int32
+---@param height System.Int32
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['GUI']['ColorPicker'].CreateGradientTexture = function(data, width, height) end
+
+---`Method Private Instance`
+---@param data Microsoft.Xna.Framework.Color-arr-ref
+---@param width System.Int32
+---@param height System.Int32
+---@param algorithm (System.Func*1System*Single*1System*Single*1Microsoft*Xna*Framework*Color)|(fun(arg1:System.Single, arg2:System.Single):(Microsoft.Xna.Framework.Color))
+_G['GUI']['ColorPicker'].GenerateGradient = function(data, width, height, algorithm) end
+
+---`Method Private Instance`
+---@param x System.Single
+---@param y System.Single
+---@return Microsoft.Xna.Framework.Color
+_G['GUI']['ColorPicker'].DrawHVArea = function(x, y) end
+
+---`Method Private Instance`
+---@param x System.Single
+---@param y System.Single
+---@return Microsoft.Xna.Framework.Color
+_G['GUI']['ColorPicker'].DrawHueArea = function(x, y) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param style? System.String
+---@return Barotrauma.GUIColorPicker
+_G['GUI']['ColorPicker'] = function(rectT, style) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param style? System.String
+---@return Barotrauma.GUIColorPicker
+_G['GUI']['ColorPicker'].__new = function(rectT, style) end
+
diff --git a/Meta/Types/client/_00007FFD97EDAAF0.lua b/Meta/Types/client/_00007FFD97EDAAF0.lua
new file mode 100644
index 0000000..b308af2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDAAF0.lua
@@ -0,0 +1,68 @@
+---@meta
+---@class Barotrauma.GUIContextMenu : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field Options (System.Collections.Generic.Dictionary*1Barotrauma*ContextMenuOption*1Barotrauma*GUITextBlock)|({[Barotrauma.ContextMenuOption]:(Barotrauma.GUITextBlock)})
+---`Field Private Instance`
+---@field SubMenu Barotrauma.GUIContextMenu
+---`Field Public Instance`
+---@field HeaderLabel Barotrauma.GUITextBlock
+---`Field Public Instance`
+---@field ParentOption Barotrauma.GUITextBlock
+---`Field Public Static`
+---@field CurrentContextMenu Barotrauma.GUIContextMenu
+_G['GUI']['ContextMenu'] = {}
+
+---`Method Public Static`
+---@overload fun(...:Barotrauma.ContextMenuOption):(Barotrauma.GUIContextMenu)
+---@param pos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param header Barotrauma.LocalizedString
+---@param headerColor System.Nullable*1Microsoft*Xna*Framework*Color
+---@param ... Barotrauma.ContextMenuOption
+---@return Barotrauma.GUIContextMenu
+_G['GUI']['ContextMenu'].CreateContextMenu = function(pos, header, headerColor, ...) end
+
+---`Method Private Instance`
+---@param _ Barotrauma.GUIComponent
+---@param data System.Object
+---@return System.Boolean
+_G['GUI']['ContextMenu'].OnSelected = function(_, data) end
+
+---`Method Private Instance`
+---@param size Microsoft.Xna.Framework.Point-ref
+---@param label Barotrauma.LocalizedString
+---@param font Barotrauma.ScalableFont
+---@return Microsoft.Xna.Framework.Vector2
+_G['GUI']['ContextMenu'].InflateSize = function(size, label, font) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['ContextMenu'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['GUI']['ContextMenu'].IsMouseOver = function() end
+
+---`Method Public Instance Virtual`
+---@param ignoreChildren? System.Boolean
+---@param order? System.Int32
+_G['GUI']['ContextMenu'].AddToGUIUpdateList = function(ignoreChildren, order) end
+
+---`Method Public Static`
+_G['GUI']['ContextMenu'].AddActiveToGUIUpdateList = function() end
+
+---`Constructor Public Instance`
+---@param position System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param header Barotrauma.LocalizedString
+---@param style System.String
+---@param ... Barotrauma.ContextMenuOption
+---@return Barotrauma.GUIContextMenu
+_G['GUI']['ContextMenu'] = function(position, header, style, ...) end
+
+---`Constructor Public Instance`
+---@param position System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param header Barotrauma.LocalizedString
+---@param style System.String
+---@param ... Barotrauma.ContextMenuOption
+---@return Barotrauma.GUIContextMenu
+_G['GUI']['ContextMenu'].__new = function(position, header, style, ...) end
+
diff --git a/Meta/Types/client/_00007FFD97EDAD10.lua b/Meta/Types/client/_00007FFD97EDAD10.lua
new file mode 100644
index 0000000..7730d6d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDAD10.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.ContextMenuOption : System.ValueType
+---`Field Public Instance`
+---@field Label Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field OnSelected (System.Action)|(fun())
+---`Field Public Instance`
+---@field SubOptions (Barotrauma.ContextMenuOption-arr)|(Barotrauma.ContextMenuOption[])
+---`Field Public Instance`
+---@field IsEnabled System.Boolean
+---`Field Public Instance`
+---@field Tooltip Barotrauma.LocalizedString
+_G['GUI']['ContextMenuOption'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(label:System.String, isEnabled:System.Boolean, onSelected:(System.Action)|(fun())):Barotrauma.ContextMenuOption
+---@overload fun(labelTag:Barotrauma.Identifier, isEnabled:System.Boolean, onSelected:(System.Action)|(fun())):Barotrauma.ContextMenuOption
+---@overload fun(label:Barotrauma.LocalizedString, isEnabled:System.Boolean, onSelected:(System.Action)|(fun())):Barotrauma.ContextMenuOption
+---@param label System.String
+---@param isEnabled System.Boolean
+---@param ... Barotrauma.ContextMenuOption
+---@return Barotrauma.ContextMenuOption
+_G['GUI']['ContextMenuOption'] = function(label, isEnabled, ...) end
+
+---`Constructor Public Instance`
+---@overload fun(label:System.String, isEnabled:System.Boolean, onSelected:(System.Action)|(fun())):Barotrauma.ContextMenuOption
+---@overload fun(labelTag:Barotrauma.Identifier, isEnabled:System.Boolean, onSelected:(System.Action)|(fun())):Barotrauma.ContextMenuOption
+---@overload fun(label:Barotrauma.LocalizedString, isEnabled:System.Boolean, onSelected:(System.Action)|(fun())):Barotrauma.ContextMenuOption
+---@param label System.String
+---@param isEnabled System.Boolean
+---@param ... Barotrauma.ContextMenuOption
+---@return Barotrauma.ContextMenuOption
+_G['GUI']['ContextMenuOption'].__new = function(label, isEnabled, ...) end
+
diff --git a/Meta/Types/client/_00007FFD97EDAE90.lua b/Meta/Types/client/_00007FFD97EDAE90.lua
new file mode 100644
index 0000000..0ecacee
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDAE90.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.GUICustomComponent : Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field OnDraw (System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1Barotrauma*GUICustomComponent)|(fun(arg1:Microsoft.Xna.Framework.Graphics.SpriteBatch, arg2:Barotrauma.GUICustomComponent))
+---`Field Public Instance`
+---@field OnUpdate (System.Action*1System*Single*1Barotrauma*GUICustomComponent)|(fun(arg1:System.Single, arg2:Barotrauma.GUICustomComponent))
+---`Field Public Instance`
+---@field HideElementsOutsideFrame System.Boolean
+_G['GUI']['CustomComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['CustomComponent'].Draw = function(spriteBatch) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['CustomComponent'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param onDraw? (System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1Barotrauma*GUICustomComponent)|(fun(arg1:Microsoft.Xna.Framework.Graphics.SpriteBatch, arg2:Barotrauma.GUICustomComponent))
+---@param onUpdate? (System.Action*1System*Single*1Barotrauma*GUICustomComponent)|(fun(arg1:System.Single, arg2:Barotrauma.GUICustomComponent))
+---@return Barotrauma.GUICustomComponent
+_G['GUI']['CustomComponent'] = function(rectT, onDraw, onUpdate) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param onDraw? (System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1Barotrauma*GUICustomComponent)|(fun(arg1:Microsoft.Xna.Framework.Graphics.SpriteBatch, arg2:Barotrauma.GUICustomComponent))
+---@param onUpdate? (System.Action*1System*Single*1Barotrauma*GUICustomComponent)|(fun(arg1:System.Single, arg2:Barotrauma.GUICustomComponent))
+---@return Barotrauma.GUICustomComponent
+_G['GUI']['CustomComponent'].__new = function(rectT, onDraw, onUpdate) end
+
diff --git a/Meta/Types/client/_00007FFD97EDB668.lua b/Meta/Types/client/_00007FFD97EDB668.lua
new file mode 100644
index 0000000..f0da13e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDB668.lua
@@ -0,0 +1,180 @@
+---@meta
+---@class Barotrauma.GUIDropDown : Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field OnSelected (Barotrauma.GUIDropDown.OnSelectedHandler)|(fun(selected:Barotrauma.GUIComponent, obj?:System.Object):(System.Boolean))
+---`Field Public Instance`
+---@field AfterSelected (Barotrauma.GUIDropDown.OnSelectedHandler)|(fun(selected:Barotrauma.GUIComponent, obj?:System.Object):(System.Boolean))
+---`Field Public Instance`
+---@field OnDropped (Barotrauma.GUIDropDown.OnSelectedHandler)|(fun(selected:Barotrauma.GUIComponent, obj?:System.Object):(System.Boolean))
+---`Field Private Instance`
+---@field button Barotrauma.GUIButton
+---`Field Private Instance`
+---@field icon Barotrauma.GUIImage
+---`Field Private Instance`
+---@field listBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field currentHighestParent Barotrauma.RectTransform
+---`Field Private Instance`
+---@field parentHierarchy (System.Collections.Generic.List*1Barotrauma*RectTransform)|(Barotrauma.RectTransform[])
+---`Field Private Instance`
+---@field selectMultiple System.Boolean
+---`Field Private Instance`
+---@field selectedDataMultiple (System.Collections.Generic.List*1System*Object)|(System.Object[])
+---`Field Private Instance`
+---@field selectedIndexMultiple (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Field Public Instance`
+---@field MustSelectAtLeastOne System.Boolean
+---`Field Private Instance`
+---@field wasOpened System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Dropped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowNonText System.Boolean
+---`Getter Public Instance`
+---@field SelectedItemData System.Object
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ButtonEnabled System.Boolean
+---`Getter Public Instance`
+---@field SelectedComponent Barotrauma.GUIComponent
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Selected System.Boolean
+---`Getter Public Instance`
+---@field ListBox Barotrauma.GUIListBox
+---`Getter Public Instance`
+---@field SelectedData System.Object
+---`Getter Public Instance`
+---@field SelectedIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ButtonTextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance`
+---@field SelectedDataMultiple (System.Collections.Generic.IEnumerable*1System*Object)|(fun():(System.Object))
+---`Getter Public Instance`
+---@field SelectedIndexMultiple (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Text Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ToolTip Barotrauma.RichString
+---`Getter Public Instance`
+---@field DropDownIcon Barotrauma.GUIImage
+---`Getter Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+_G['GUI']['DropDown'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(inputChar:System.Char)
+---@param text System.String
+_G['GUI']['DropDown'].ReceiveTextInput = function(text) end
+
+---`Method Public Instance Virtual`
+---@param command System.Char
+_G['GUI']['DropDown'].ReceiveCommandInput = function(command) end
+
+---`Method Public Instance Virtual`
+---@param text System.String
+---@param start System.Int32
+---@param length System.Int32
+_G['GUI']['DropDown'].ReceiveEditingInput = function(text, start, length) end
+
+---`Method Public Instance Virtual`
+---@param key Microsoft.Xna.Framework.Input.Keys
+_G['GUI']['DropDown'].ReceiveSpecialInput = function(key) end
+
+---`Method Private Instance`
+---@return Barotrauma.RectTransform
+_G['GUI']['DropDown'].FindHighestParent = function() end
+
+---`Method Public Instance`
+---@param text Barotrauma.LocalizedString
+---@param userData? System.Object
+---@param toolTip? Barotrauma.LocalizedString
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.GUIComponent
+_G['GUI']['DropDown'].AddItem = function(text, userData, toolTip, color, textColor) end
+
+---`Method Public Instance Virtual`
+_G['GUI']['DropDown'].ClearChildren = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent))
+_G['GUI']['DropDown'].GetChildren = function() end
+
+---`Method Private Instance`
+---@param component Barotrauma.GUIComponent
+---@param obj System.Object
+---@return System.Boolean
+_G['GUI']['DropDown'].SelectItem = function(component, obj) end
+
+---`Method Public Instance`
+---@param userData System.Object
+_G['GUI']['DropDown'].SelectItem = function(userData) end
+
+---`Method Public Instance`
+---@param index System.Int32
+_G['GUI']['DropDown'].Select = function(index) end
+
+---`Method Private Instance`
+---@param component Barotrauma.GUIComponent
+---@param obj System.Object
+---@return System.Boolean
+_G['GUI']['DropDown'].OnClicked = function(component, obj) end
+
+---`Method Public Instance`
+_G['GUI']['DropDown'].RefreshListBoxParent = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['GUI']['DropDown'].AddListBoxToGUIUpdateList = function(parent) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+_G['GUI']['DropDown'].DrawManually = function(spriteBatch, alsoChildren, recursive) end
+
+---`Method Public Instance Virtual`
+---@param ignoreChildren? System.Boolean
+---@param order? System.Int32
+_G['GUI']['DropDown'].AddToGUIUpdateList = function(ignoreChildren, order) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['DropDown'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param text? Barotrauma.LocalizedString
+---@param elementCount? System.Int32
+---@param style? System.String
+---@param selectMultiple? System.Boolean
+---@param dropAbove? System.Boolean
+---@param textAlignment? Barotrauma.Alignment
+---@param listBoxScale? System.Single
+---@return Barotrauma.GUIDropDown
+_G['GUI']['DropDown'] = function(rectT, text, elementCount, style, selectMultiple, dropAbove, textAlignment, listBoxScale) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param text? Barotrauma.LocalizedString
+---@param elementCount? System.Int32
+---@param style? System.String
+---@param selectMultiple? System.Boolean
+---@param dropAbove? System.Boolean
+---@param textAlignment? Barotrauma.Alignment
+---@param listBoxScale? System.Single
+---@return Barotrauma.GUIDropDown
+_G['GUI']['DropDown'].__new = function(rectT, text, elementCount, style, selectMultiple, dropAbove, textAlignment, listBoxScale) end
+
diff --git a/Meta/Types/client/_00007FFD97EDB950.lua b/Meta/Types/client/_00007FFD97EDB950.lua
new file mode 100644
index 0000000..1bee45a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDB950.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.GUIFrame : Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutlineThickness System.Single
+_G['GUI']['Frame'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['Frame'].Draw = function(spriteBatch) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.GUIFrame
+_G['GUI']['Frame'] = function(rectT, style, color) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.GUIFrame
+_G['GUI']['Frame'].__new = function(rectT, style, color) end
+
diff --git a/Meta/Types/client/_00007FFD97EDBF28.lua b/Meta/Types/client/_00007FFD97EDBF28.lua
new file mode 100644
index 0000000..e88c464
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDBF28.lua
@@ -0,0 +1,101 @@
+---@meta
+---@class Barotrauma.GUIImage : Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field Rotation System.Single
+---`Field Private Instance`
+---@field sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field sourceRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field crop System.Boolean
+---`Field Private Instance`
+---@field scaleToFit System.Boolean
+---`Field Private Instance`
+---@field lazyLoaded System.Boolean
+---`Field Private Instance`
+---@field loading System.Boolean
+---`Field Public Instance`
+---@field LoadAsynchronously System.Boolean
+---`Field Private Instance`
+---@field origin Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field BlendState Microsoft.Xna.Framework.Graphics.BlendState
+---`Field Public Instance`
+---@field OverrideState System.Nullable*1Barotrauma*GUIComponent*ComponentState
+---`Field Private Static`
+---@field activeTextureLoads (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Private Static`
+---@field loadingTextures System.Boolean
+---`Getter Public Static`
+---@field LoadingTextures System.Boolean
+---`Getter Public Instance`
+---@field Crop System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourceRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Sprite Barotrauma.Sprite
+_G['GUI']['Image'] = {}
+
+---`Method Public Instance`
+---@param state System.Boolean
+---@param center? System.Boolean
+_G['GUI']['Image'].SetCrop = function(state, center) end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['Image'].Draw = function(spriteBatch) end
+
+---`Method Private Instance`
+_G['GUI']['Image'].RecalculateScale = function() end
+
+---`Method Private Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['GUI']['Image'].LoadTextureAsync = function() end
+
+---`Constructor Public Instance`
+---@overload fun(rectT:Barotrauma.RectTransform, style:System.String, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit:System.Boolean, style:System.String):Barotrauma.GUIImage
+---@return Barotrauma.GUIImage
+_G['GUI']['Image'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(rectT:Barotrauma.RectTransform, style:System.String, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit:System.Boolean, style:System.String):Barotrauma.GUIImage
+---@return Barotrauma.GUIImage
+_G['GUI']['Image'].__new = function() end
+
+---`Constructor Private Instance`
+---@overload fun(rectT:Barotrauma.RectTransform, style:System.String, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit:System.Boolean, style:System.String):Barotrauma.GUIImage
+---@return Barotrauma.GUIImage
+_G['GUI']['Image'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(rectT:Barotrauma.RectTransform, style:System.String, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit:System.Boolean, style:System.String):Barotrauma.GUIImage
+---@return Barotrauma.GUIImage
+_G['GUI']['Image'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectT:Barotrauma.RectTransform, style:System.String, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit:System.Boolean, style:System.String):Barotrauma.GUIImage
+---@return Barotrauma.GUIImage
+_G['GUI']['Image'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectT:Barotrauma.RectTransform, style:System.String, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit?:System.Boolean):Barotrauma.GUIImage
+---@overload fun(rectT:Barotrauma.RectTransform, sprite:Barotrauma.Sprite, sourceRect:System.Nullable*1Microsoft*Xna*Framework*Rectangle, scaleToFit:System.Boolean, style:System.String):Barotrauma.GUIImage
+---@return Barotrauma.GUIImage
+_G['GUI']['Image'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EDC2B0.lua b/Meta/Types/client/_00007FFD97EDC2B0.lua
new file mode 100644
index 0000000..e86c94e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDC2B0.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.GUILayoutGroup : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field isHorizontal System.Boolean
+---`Field Private Instance`
+---@field stretch System.Boolean
+---`Field Private Instance`
+---@field absoluteSpacing System.Int32
+---`Field Private Instance`
+---@field relativeSpacing System.Single
+---`Field Private Instance`
+---@field childAnchor Barotrauma.Anchor
+---`Field Private Instance`
+---@field needsToRecalculate System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stretch System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbsoluteSpacing System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RelativeSpacing System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ChildAnchor Barotrauma.Anchor
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsToRecalculate System.Boolean
+_G['GUI']['LayoutGroup'] = {}
+
+---`Method Public Instance`
+_G['GUI']['LayoutGroup'].Recalculate = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['LayoutGroup'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['GUI']['LayoutGroup'].ForceLayoutRecalculation = function() end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param isHorizontal? System.Boolean
+---@param childAnchor? Barotrauma.Anchor
+---@return Barotrauma.GUILayoutGroup
+_G['GUI']['LayoutGroup'] = function(rectT, isHorizontal, childAnchor) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param isHorizontal? System.Boolean
+---@param childAnchor? Barotrauma.Anchor
+---@return Barotrauma.GUILayoutGroup
+_G['GUI']['LayoutGroup'].__new = function(rectT, isHorizontal, childAnchor) end
+
diff --git a/Meta/Types/client/_00007FFD97EDD830.lua b/Meta/Types/client/_00007FFD97EDD830.lua
new file mode 100644
index 0000000..845f31a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDD830.lua
@@ -0,0 +1,326 @@
+---@meta
+---@class Barotrauma.GUIListBox : Barotrauma.GUIComponent
+---`Field NonPublic Instance`
+---@field selected (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Public Instance`
+---@field OnSelected (Barotrauma.GUIListBox.OnSelectedHandler)|(fun(component:Barotrauma.GUIComponent, obj:System.Object):(System.Boolean))
+---`Field Public Instance`
+---@field AfterSelected (Barotrauma.GUIListBox.OnSelectedHandler)|(fun(component:Barotrauma.GUIComponent, obj:System.Object):(System.Boolean))
+---`Field Public Instance`
+---@field CheckSelected (Barotrauma.GUIListBox.CheckSelectedHandler)|(fun():(System.Object))
+---`Field Public Instance`
+---@field OnRearranged (Barotrauma.GUIListBox.OnRearrangedHandler)|(fun(listBox:Barotrauma.GUIListBox, obj:System.Object))
+---`Field Private Instance`
+---@field childVisible (System.Collections.Generic.Dictionary*1Barotrauma*GUIComponent*1System*Boolean)|({[Barotrauma.GUIComponent]:(System.Boolean)})
+---`Field Private Instance`
+---@field totalSize System.Int32
+---`Field Private Instance`
+---@field childrenNeedsRecalculation System.Boolean
+---`Field Private Instance`
+---@field scrollBarNeedsRecalculation System.Boolean
+---`Field Private Instance`
+---@field dimensionsNeedsRecalculation System.Boolean
+---`Field Public Instance`
+---@field CurrentSelectMode Barotrauma.GUIListBox.SelectMode
+---`Field Public Instance`
+---@field HideChildrenOutsideFrame System.Boolean
+---`Field Public Instance`
+---@field ResizeContentToMakeSpaceForScrollBar System.Boolean
+---`Field Private Instance`
+---@field useGridLayout System.Boolean
+---`Field Private Instance`
+---@field scrollToElement Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field useMouseDownToSelect System.Boolean
+---`Field Private Instance`
+---@field overridePadding System.Nullable*1Microsoft*Xna*Framework*Vector4
+---`Field Private Instance`
+---@field currentDragMode Barotrauma.GUIListBox.DragMode
+---`Field Private Instance`
+---@field draggedElement Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field dragMousePosRelativeToTopLeftCorner Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field HideDraggedElement System.Boolean
+---`Field Private Instance`
+---@field isHorizontal System.Boolean
+---`Field Private Instance`
+---@field lastDragStartTime System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContentBackground Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Content Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScrollBar Barotrauma.GUIScrollBar
+---`Getter Private Instance`
+---@field ScrollBarSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectMultiple System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowMouseWheelScroll System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowArrowKeyScroll System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SmoothScroll System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClampScrollToElements System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FadeElements System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PadBottom System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectTop System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseGridLayout System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance`
+---@field SelectedComponent Barotrauma.GUIComponent
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Selected System.Boolean
+---`Getter Public Instance`
+---@field AllSelected (System.Collections.Generic.IReadOnlyList*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Getter Public Instance`
+---@field SelectedData System.Object
+---`Getter Public Instance`
+---@field SelectedIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarScroll System.Single
+---`Getter Public Instance`
+---@field BarSize System.Single
+---`Getter Public Instance`
+---@field TotalSize System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spacing System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScrollBarEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KeepSpaceForScrollBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanTakeKeyBoardFocus System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScrollBarVisible System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoHideScrollBar System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field IsScrollBarOnDefaultSide System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentDragMode Barotrauma.GUIListBox.DragMode
+---`Getter Private Instance`
+---@field isDraggingElement System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasDraggedElementIndexChanged System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DraggedElement Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanInteractWhenUnfocusable System.Boolean
+---`Getter Public Instance Virtual`
+---@field MouseRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PlaySoundOnSelect System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlaySoundOnDragStop System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundOnDragStart System.Nullable*1Barotrauma*GUISoundType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundOnDragStop System.Nullable*1Barotrauma*GUISoundType
+_G['GUI']['ListBox'] = {}
+
+---`Method Private Instance`
+---@param child Barotrauma.GUIComponent
+_G['GUI']['ListBox'].ClampChildMouseRects = function(child) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['ListBox'].Update = function(deltaTime) end
+
+---`Method Private Static`
+---@param target Barotrauma.GUIComponent
+---@return Barotrauma.GUIListBox
+_G['GUI']['ListBox'].FindScrollableParentListBox = function(target) end
+
+---`Method Public Instance`
+---@param force? Barotrauma.GUIListBox.Force
+---@param autoScroll? Barotrauma.GUIListBox.AutoScroll
+---@param takeKeyBoardFocus? Barotrauma.GUIListBox.TakeKeyBoardFocus
+---@param playSelectSound? Barotrauma.GUIListBox.PlaySelectSound
+_G['GUI']['ListBox'].SelectNext = function(force, autoScroll, takeKeyBoardFocus, playSelectSound) end
+
+---`Method Public Instance`
+---@param force? Barotrauma.GUIListBox.Force
+---@param autoScroll? Barotrauma.GUIListBox.AutoScroll
+---@param takeKeyBoardFocus? Barotrauma.GUIListBox.TakeKeyBoardFocus
+---@param playSelectSound? Barotrauma.GUIListBox.PlaySelectSound
+_G['GUI']['ListBox'].SelectPrevious = function(force, autoScroll, takeKeyBoardFocus, playSelectSound) end
+
+---`Method Public Instance`
+---@overload fun(childIndex:System.Int32, force?:Barotrauma.GUIListBox.Force, autoScroll?:Barotrauma.GUIListBox.AutoScroll, takeKeyBoardFocus?:Barotrauma.GUIListBox.TakeKeyBoardFocus, playSelectSound?:Barotrauma.GUIListBox.PlaySelectSound)
+---@overload fun(children:(System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent)|(fun():(Barotrauma.GUIComponent)))
+---@param userData System.Object
+---@param force? Barotrauma.GUIListBox.Force
+---@param autoScroll? Barotrauma.GUIListBox.AutoScroll
+_G['GUI']['ListBox'].Select = function(userData, force, autoScroll) end
+
+---`Method Public Instance`
+_G['GUI']['ListBox'].Deselect = function() end
+
+---`Method Public Instance`
+---@param child Barotrauma.GUIComponent
+_G['GUI']['ListBox'].DeselectElement = function(child) end
+
+---`Method Public Instance`
+_G['GUI']['ListBox'].UpdateScrollBarSize = function() end
+
+---`Method Public Instance Virtual`
+_G['GUI']['ListBox'].ClearChildren = function() end
+
+---`Method Public Instance Virtual`
+---@param child Barotrauma.GUIComponent
+_G['GUI']['ListBox'].RemoveChild = function(child) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param recursive System.Boolean
+_G['GUI']['ListBox'].DrawChildren = function(spriteBatch, recursive) end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['ListBox'].Draw = function(spriteBatch) end
+
+---`Method Private Instance`
+---@param child Barotrauma.GUIComponent
+---@return System.Boolean
+_G['GUI']['ListBox'].IsChildInsideFrame = function(child) end
+
+---`Method Public Instance Virtual`
+---@overload fun(inputChar:System.Char)
+---@param text System.String
+_G['GUI']['ListBox'].ReceiveTextInput = function(text) end
+
+---`Method Public Instance Virtual`
+---@param command System.Char
+_G['GUI']['ListBox'].ReceiveCommandInput = function(command) end
+
+---`Method Public Instance Virtual`
+---@param text System.String
+---@param start System.Int32
+---@param length System.Int32
+_G['GUI']['ListBox'].ReceiveEditingInput = function(text, start, length) end
+
+---`Method Public Instance Virtual`
+---@param key Microsoft.Xna.Framework.Input.Keys
+_G['GUI']['ListBox'].ReceiveSpecialInput = function(key) end
+
+---`Method Private Instance`
+---@param b System.Boolean
+---@return Barotrauma.GUIListBox.AutoScroll
+_G['GUI']['ListBox'].GetAutoScroll = function(b) end
+
+---`Method Private Instance`
+---@param rectT Barotrauma.RectTransform
+_G['GUI']['ListBox'].CheckForChildren = function(rectT) end
+
+---`Method Public Instance`
+_G['GUI']['ListBox'].UpdateDimensions = function() end
+
+---`Method Private Instance`
+---@param isHorizontal System.Boolean
+---@param scrollBarSize System.Int32
+---@return Microsoft.Xna.Framework.Point
+_G['GUI']['ListBox'].CalculateFrameSize = function(isHorizontal, scrollBarSize) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['GUI']['ListBox'].CalculateTopOffset = function() end
+
+---`Method Private Instance`
+---@param callback (System.Action*1System*Int32*1Microsoft*Xna*Framework*Point)|(fun(arg1:System.Int32, arg2:Microsoft.Xna.Framework.Point))
+_G['GUI']['ListBox'].CalculateChildrenOffsets = function(callback) end
+
+---`Method Private Instance`
+_G['GUI']['ListBox'].RepositionChildren = function() end
+
+---`Method Public Instance`
+---@param component Barotrauma.GUIComponent
+---@param playSelectSound? Barotrauma.GUIListBox.PlaySelectSound
+_G['GUI']['ListBox'].ScrollToElement = function(component, playSelectSound) end
+
+---`Method Public Instance`
+---@param duration System.Single
+_G['GUI']['ListBox'].ScrollToEnd = function(duration) end
+
+---`Method Private Instance`
+---@param child Barotrauma.GUIComponent
+_G['GUI']['ListBox'].StartDraggingElement = function(child) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['GUI']['ListBox'].UpdateDragging = function() end
+
+---`Method Private Instance`
+_G['GUI']['ListBox'].UpdateChildrenRect = function() end
+
+---`Method Public Instance Virtual`
+---@param ignoreChildren? System.Boolean
+---@param order? System.Int32
+_G['GUI']['ListBox'].AddToGUIUpdateList = function(ignoreChildren, order) end
+
+---`Method Public Instance Virtual`
+_G['GUI']['ListBox'].ForceLayoutRecalculation = function() end
+
+---`Method Public Instance`
+_G['GUI']['ListBox'].RecalculateChildren = function() end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param isHorizontal? System.Boolean
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param style? System.String
+---@param isScrollBarOnDefaultSide? System.Boolean
+---@param useMouseDownToSelect? System.Boolean
+---@return Barotrauma.GUIListBox
+_G['GUI']['ListBox'] = function(rectT, isHorizontal, color, style, isScrollBarOnDefaultSide, useMouseDownToSelect) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param isHorizontal? System.Boolean
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param style? System.String
+---@param isScrollBarOnDefaultSide? System.Boolean
+---@param useMouseDownToSelect? System.Boolean
+---@return Barotrauma.GUIListBox
+_G['GUI']['ListBox'].__new = function(rectT, isHorizontal, color, style, isScrollBarOnDefaultSide, useMouseDownToSelect) end
+
diff --git a/Meta/Types/client/_00007FFD97EDDE20.lua b/Meta/Types/client/_00007FFD97EDDE20.lua
new file mode 100644
index 0000000..d8bb155
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDDE20.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.GUIMessage : System.Object
+---`Field Private Instance`
+---@field coloredText Barotrauma.ColoredText
+---`Field Private Instance`
+---@field pos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lifeTime System.Single
+---`Field Private Instance`
+---@field size Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field WorldSpace System.Boolean
+---`Field Public Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Timer System.Single
+---`Getter Public Instance`
+---@field Text System.String
+---`Getter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Pos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Velocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field LifeTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---@field DrawPos Microsoft.Xna.Framework.Vector2
+_G['GUIMessage'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(text:System.String, color:Microsoft.Xna.Framework.Color, lifeTime:System.Single, font?:Barotrauma.GUIFont):Barotrauma.GUIMessage
+---@param text System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param position Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+---@param lifeTime System.Single
+---@param textAlignment? Barotrauma.Alignment
+---@param font? Barotrauma.GUIFont
+---@param sub? Barotrauma.Submarine
+---@return Barotrauma.GUIMessage
+_G['GUIMessage'] = function(text, color, position, velocity, lifeTime, textAlignment, font, sub) end
+
+---`Constructor Public Instance`
+---@overload fun(text:System.String, color:Microsoft.Xna.Framework.Color, lifeTime:System.Single, font?:Barotrauma.GUIFont):Barotrauma.GUIMessage
+---@param text System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param position Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+---@param lifeTime System.Single
+---@param textAlignment? Barotrauma.Alignment
+---@param font? Barotrauma.GUIFont
+---@param sub? Barotrauma.Submarine
+---@return Barotrauma.GUIMessage
+_G['GUIMessage'].__new = function(text, color, position, velocity, lifeTime, textAlignment, font, sub) end
+
diff --git a/Meta/Types/client/_00007FFD97EDE698.lua b/Meta/Types/client/_00007FFD97EDE698.lua
new file mode 100644
index 0000000..44dbacf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDE698.lua
@@ -0,0 +1,148 @@
+---@meta
+---@class Barotrauma.GUIMessageBox : Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field inGameCloseTimer System.Single
+---`Field Public Instance`
+---@field DisplayInLoadingScreens System.Boolean
+---`Field Public Instance`
+---@field DraggingPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field newBackgroundIcon Barotrauma.GUIImage
+---`Field Public Instance`
+---@field AutoClose System.Boolean
+---`Field Private Instance`
+---@field openState System.Single
+---`Field Private Instance`
+---@field iconState System.Single
+---`Field Private Instance`
+---@field iconSwitching System.Boolean
+---`Field Private Instance`
+---@field closing System.Boolean
+---`Field Private Instance`
+---@field type Barotrauma.GUIMessageBox.Type
+---`Field Private Instance`
+---@field autoCloseCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Field Public Instance`
+---@field DrawOnTop System.Boolean
+---`Field Public Static`
+---@field MessageBoxes (System.Collections.Generic.List*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---`Field Private Static`
+---@field messageBoxTypes (Barotrauma.Type-arr)|(Barotrauma.GUIMessageBox.Type[])
+---`Field Private Static`
+---@field inGameCloseTime System.Single
+---`Getter Private Static`
+---@field DefaultWidth System.Int32
+---`Getter Private Instance`
+---@field IsAnimated System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Buttons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Content Barotrauma.GUILayoutGroup
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InnerFrame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Header Barotrauma.GUITextBlock
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Text Barotrauma.GUITextBlock
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tag Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Closed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Icon Barotrauma.GUIImage
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IconColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Draggable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundIcon Barotrauma.GUIImage
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlashOnAutoCloseCondition System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnEnterPressed (System.Action)|(fun())
+---`Getter Public Instance`
+---@field MessageBoxType Barotrauma.GUIMessageBox.Type
+---`Getter Public Static`
+---@field VisibleBox Barotrauma.GUIComponent
+_G['GUI']['MessageBox'] = {}
+
+---`Method Public Static`
+_G['GUI']['MessageBox'].AddActiveToGUIUpdateList = function() end
+
+---`Method Public Instance`
+---@param icon Barotrauma.Sprite
+_G['GUI']['MessageBox'].SetBackgroundIcon = function(icon) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['MessageBox'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@overload fun()
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['GUI']['MessageBox'].Close = function(button, obj) end
+
+---`Method Public Static`
+---@overload fun(tag:Barotrauma.Identifier)
+---@param tag System.String
+_G['GUI']['MessageBox'].Close = function(tag) end
+
+---`Method Public Static`
+_G['GUI']['MessageBox'].CloseAll = function() end
+
+---`Method Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param text System.String
+---@param onClick (Barotrauma.GUIButton.OnClickedHandler)|(fun(button:Barotrauma.GUIButton, obj:System.Object):(System.Boolean))
+_G['GUI']['MessageBox'].AddButton = function(rectT, text, onClick) end
+
+---`Method Public Static`
+---@param text Barotrauma.LocalizedString
+---@param buttons? (System.ValueTuple)|(System.ValueTuple*1Barotrauma*LocalizedString*1System*Action*2Barotrauma*GUIMessageBox[])
+---@param relativeSize? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.GUIMessageBox
+_G['GUI']['MessageBox'].CreateLoadingBox = function(text, buttons, relativeSize) end
+
+---`Constructor Public Instance`
+---@overload fun(headerText:Barotrauma.LocalizedString, text:Barotrauma.LocalizedString, relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, type?:Barotrauma.GUIMessageBox.Type):Barotrauma.GUIMessageBox
+---@overload fun(headerText:Barotrauma.RichString, text:Barotrauma.RichString, buttons:(Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[]), relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, textAlignment?:Barotrauma.Alignment, type?:Barotrauma.GUIMessageBox.Type, tag?:System.String, icon?:Barotrauma.Sprite, iconStyle?:System.String, backgroundIcon?:Barotrauma.Sprite, autoCloseCondition?:(System.Func*1System*Boolean)|(fun():(System.Boolean)), hideCloseButton?:System.Boolean):Barotrauma.GUIMessageBox
+---@overload fun(hintIdentifier:Barotrauma.Identifier, text:Barotrauma.LocalizedString, icon:Barotrauma.Sprite):Barotrauma.GUIMessageBox
+---@return Barotrauma.GUIMessageBox
+_G['GUI']['MessageBox'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(headerText:Barotrauma.LocalizedString, text:Barotrauma.LocalizedString, relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, type?:Barotrauma.GUIMessageBox.Type):Barotrauma.GUIMessageBox
+---@overload fun(headerText:Barotrauma.RichString, text:Barotrauma.RichString, buttons:(Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[]), relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, textAlignment?:Barotrauma.Alignment, type?:Barotrauma.GUIMessageBox.Type, tag?:System.String, icon?:Barotrauma.Sprite, iconStyle?:System.String, backgroundIcon?:Barotrauma.Sprite, autoCloseCondition?:(System.Func*1System*Boolean)|(fun():(System.Boolean)), hideCloseButton?:System.Boolean):Barotrauma.GUIMessageBox
+---@overload fun(hintIdentifier:Barotrauma.Identifier, text:Barotrauma.LocalizedString, icon:Barotrauma.Sprite):Barotrauma.GUIMessageBox
+---@return Barotrauma.GUIMessageBox
+_G['GUI']['MessageBox'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(headerText:Barotrauma.LocalizedString, text:Barotrauma.LocalizedString, relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, type?:Barotrauma.GUIMessageBox.Type):Barotrauma.GUIMessageBox
+---@overload fun(headerText:Barotrauma.RichString, text:Barotrauma.RichString, buttons:(Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[]), relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, textAlignment?:Barotrauma.Alignment, type?:Barotrauma.GUIMessageBox.Type, tag?:System.String, icon?:Barotrauma.Sprite, iconStyle?:System.String, backgroundIcon?:Barotrauma.Sprite, autoCloseCondition?:(System.Func*1System*Boolean)|(fun():(System.Boolean)), hideCloseButton?:System.Boolean):Barotrauma.GUIMessageBox
+---@overload fun(hintIdentifier:Barotrauma.Identifier, text:Barotrauma.LocalizedString, icon:Barotrauma.Sprite):Barotrauma.GUIMessageBox
+---@return Barotrauma.GUIMessageBox
+_G['GUI']['MessageBox'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(headerText:Barotrauma.LocalizedString, text:Barotrauma.LocalizedString, relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, type?:Barotrauma.GUIMessageBox.Type):Barotrauma.GUIMessageBox
+---@overload fun(headerText:Barotrauma.RichString, text:Barotrauma.RichString, buttons:(Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[]), relativeSize?:System.Nullable*1Microsoft*Xna*Framework*Vector2, minSize?:System.Nullable*1Microsoft*Xna*Framework*Point, textAlignment?:Barotrauma.Alignment, type?:Barotrauma.GUIMessageBox.Type, tag?:System.String, icon?:Barotrauma.Sprite, iconStyle?:System.String, backgroundIcon?:Barotrauma.Sprite, autoCloseCondition?:(System.Func*1System*Boolean)|(fun():(System.Boolean)), hideCloseButton?:System.Boolean):Barotrauma.GUIMessageBox
+---@overload fun(hintIdentifier:Barotrauma.Identifier, text:Barotrauma.LocalizedString, icon:Barotrauma.Sprite):Barotrauma.GUIMessageBox
+---@return Barotrauma.GUIMessageBox
+_G['GUI']['MessageBox'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EDEEC8.lua b/Meta/Types/client/_00007FFD97EDEEC8.lua
new file mode 100644
index 0000000..68492cf
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDEEC8.lua
@@ -0,0 +1,147 @@
+---@meta
+---@class Barotrauma.GUINumberInput : Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field OnValueEntered (Barotrauma.GUINumberInput.OnValueEnteredHandler)|(fun(numberInput:Barotrauma.GUINumberInput))
+---`Field Public Instance`
+---@field OnValueChanged (Barotrauma.GUINumberInput.OnValueChangedHandler)|(fun(numberInput:Barotrauma.GUINumberInput))
+---`Field Private Instance`
+---@field _plusMinusButtonVisibility Barotrauma.GUINumberInput.ButtonVisibility
+---`Field Private Instance`
+---@field inputType Barotrauma.NumberType
+---`Field Private Instance`
+---@field minValueFloat System.Nullable*1System*Single
+---`Field Private Instance`
+---@field maxValueFloat System.Nullable*1System*Single
+---`Field Private Instance`
+---@field floatValue System.Single
+---`Field Private Instance`
+---@field decimalsToDisplay System.Int32
+---`Field Private Instance`
+---@field minValueInt System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field maxValueInt System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field intValue System.Int32
+---`Field Public Instance`
+---@field WrapAround System.Boolean
+---`Field Public Instance`
+---@field ValueStep System.Single
+---`Field Private Instance`
+---@field pressedTimer System.Single
+---`Field Private Instance`
+---@field pressedDelay System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TextBox Barotrauma.GUITextBox
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ToolTip Barotrauma.RichString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PlusButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinusButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlusMinusButtonVisibility Barotrauma.GUINumberInput.ButtonVisibility
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InputType Barotrauma.NumberType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinValueFloat System.Nullable*1System*Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxValueFloat System.Nullable*1System*Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FloatValue System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DecimalsToDisplay System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinValueInt System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxValueInt System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IntValue System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Readonly System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LayoutGroup Barotrauma.GUILayoutGroup
+---`Getter Private Instance`
+---@field IsPressedTimerRunning System.Boolean
+_G['GUI']['NumberInput'] = {}
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].UpdatePlusMinusButtonVisibility = function() end
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].HidePlusMinusButtons = function() end
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].ShowPlusMinusButtons = function() end
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].ReduceValue = function() end
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].IncreaseValue = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['GUI']['NumberInput'].Round = function() end
+
+---`Method Private Instance`
+---@param textBox Barotrauma.GUITextBox
+---@param text System.String
+---@return System.Boolean
+_G['GUI']['NumberInput'].TextChanged = function(textBox, text) end
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].ClampFloatValue = function() end
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].ClampIntValue = function() end
+
+---`Method Private Instance`
+_G['GUI']['NumberInput'].UpdateText = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['NumberInput'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param inputType Barotrauma.NumberType
+---@param style? System.String
+---@param textAlignment? Barotrauma.Alignment
+---@param relativeButtonAreaWidth? System.Nullable*1System*Single
+---@param buttonVisibility? Barotrauma.GUINumberInput.ButtonVisibility
+---@param customPlusMinusButtons? System.Nullable*1System*ValueTuple*2Barotrauma*GUIButton*2Barotrauma*GUIButton
+---@return Barotrauma.GUINumberInput
+_G['GUI']['NumberInput'] = function(rectT, inputType, style, textAlignment, relativeButtonAreaWidth, buttonVisibility, customPlusMinusButtons) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param inputType Barotrauma.NumberType
+---@param style? System.String
+---@param textAlignment? Barotrauma.Alignment
+---@param relativeButtonAreaWidth? System.Nullable*1System*Single
+---@param buttonVisibility? Barotrauma.GUINumberInput.ButtonVisibility
+---@param customPlusMinusButtons? System.Nullable*1System*ValueTuple*2Barotrauma*GUIButton*2Barotrauma*GUIButton
+---@return Barotrauma.GUINumberInput
+_G['GUI']['NumberInput'].__new = function(rectT, inputType, style, textAlignment, relativeButtonAreaWidth, buttonVisibility, customPlusMinusButtons) end
+
diff --git a/Meta/Types/client/_00007FFD97EDF1C8.lua b/Meta/Types/client/_00007FFD97EDF1C8.lua
new file mode 100644
index 0000000..c77b64a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDF1C8.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.GUIProgressBar : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field isHorizontal System.Boolean
+---`Field Private Instance`
+---@field frame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field slider Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field barSize System.Single
+---`Field Private Instance`
+---@field showFrame System.Boolean
+---`Field Public Instance`
+---@field ProgressGetter (Barotrauma.GUIProgressBar.ProgressGetterHandler)|(fun():(System.Single))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarSize System.Single
+_G['GUI']['ProgressBar'] = {}
+
+---`Method Public Instance`
+---@param fillAmount System.Single
+---@return Microsoft.Xna.Framework.Rectangle
+_G['GUI']['ProgressBar'].GetSliderRect = function(fillAmount) end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['ProgressBar'].Draw = function(spriteBatch) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param barSize System.Single
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param style? System.String
+---@param showFrame? System.Boolean
+---@return Barotrauma.GUIProgressBar
+_G['GUI']['ProgressBar'] = function(rectT, barSize, color, style, showFrame) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param barSize System.Single
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param style? System.String
+---@param showFrame? System.Boolean
+---@return Barotrauma.GUIProgressBar
+_G['GUI']['ProgressBar'].__new = function(rectT, barSize, color, style, showFrame) end
+
diff --git a/Meta/Types/client/_00007FFD97EDF420.lua b/Meta/Types/client/_00007FFD97EDF420.lua
new file mode 100644
index 0000000..4d4715f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDF420.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.GUIRadioButtonGroup : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field radioButtons (System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*GUITickBox)|({[System.Int32]:(Barotrauma.GUITickBox)})
+---`Field Public Instance`
+---@field OnSelect (Barotrauma.GUIRadioButtonGroup.RadioButtonGroupDelegate)|(fun(rbg:Barotrauma.GUIRadioButtonGroup, val:System.Nullable*1System*Int32))
+---`Field Private Instance`
+---@field selected System.Nullable*1System*Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Selected System.Nullable*1System*Int32
+---`Getter Public Instance`
+---@field SelectedRadioButton Barotrauma.GUITickBox
+_G['GUI']['RadioButtonGroup'] = {}
+
+---`Method Public Instance`
+---@param key System.Int32
+---@param radioButton Barotrauma.GUITickBox
+_G['GUI']['RadioButtonGroup'].AddRadioButton = function(key, radioButton) end
+
+---`Method Public Instance`
+---@param radioButton Barotrauma.GUITickBox
+_G['GUI']['RadioButtonGroup'].SelectRadioButton = function(radioButton) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.GUIRadioButtonGroup
+_G['GUI']['RadioButtonGroup'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.GUIRadioButtonGroup
+_G['GUI']['RadioButtonGroup'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EDF640.lua b/Meta/Types/client/_00007FFD97EDF640.lua
new file mode 100644
index 0000000..ef6862c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDF640.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.GUIDragHandle : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field elementToMove Barotrauma.RectTransform
+---`Field Private Instance`
+---@field originalOffset Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field dragStart Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field dragStarted System.Boolean
+---`Field Public Instance`
+---@field DragArea Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field ValidatePosition (System.Func*1Barotrauma*RectTransform*1System*Boolean)|(fun(arg:Barotrauma.RectTransform):(System.Boolean))
+---`Getter Public Instance`
+---@field Dragging System.Boolean
+_G['GUI']['DragHandle'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['DragHandle'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param elementToMove Barotrauma.RectTransform
+---@param style? System.String
+---@return Barotrauma.GUIDragHandle
+_G['GUI']['DragHandle'] = function(rectT, elementToMove, style) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param elementToMove Barotrauma.RectTransform
+---@param style? System.String
+---@return Barotrauma.GUIDragHandle
+_G['GUI']['DragHandle'].__new = function(rectT, elementToMove, style) end
+
diff --git a/Meta/Types/client/_00007FFD97EDF858.lua b/Meta/Types/client/_00007FFD97EDF858.lua
new file mode 100644
index 0000000..88ad2fa
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDF858.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.GUIScissorComponent : Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field Content Barotrauma.GUIComponent
+_G['GUI']['ScissorComponent'] = {}
+
+---`Method Private Instance`
+---@param rectT Barotrauma.RectTransform
+_G['GUI']['ScissorComponent'].CheckForChildren = function(rectT) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param recursive System.Boolean
+_G['GUI']['ScissorComponent'].DrawChildren = function(spriteBatch, recursive) end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['ScissorComponent'].Draw = function(spriteBatch) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['ScissorComponent'].Update = function(deltaTime) end
+
+---`Method Private Static`
+---@param child Barotrauma.GUIComponent
+_G['GUI']['ScissorComponent'].ClampChildMouseRects = function(child) end
+
+---`Method Public Instance Virtual`
+---@param ignoreChildren? System.Boolean
+---@param order? System.Int32
+_G['GUI']['ScissorComponent'].AddToGUIUpdateList = function(ignoreChildren, order) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@return Barotrauma.GUIScissorComponent
+_G['GUI']['ScissorComponent'] = function(rectT) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@return Barotrauma.GUIScissorComponent
+_G['GUI']['ScissorComponent'].__new = function(rectT) end
+
diff --git a/Meta/Types/client/_00007FFD97EDFDF0.lua b/Meta/Types/client/_00007FFD97EDFDF0.lua
new file mode 100644
index 0000000..8c949ff
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EDFDF0.lua
@@ -0,0 +1,108 @@
+---@meta
+---@class Barotrauma.GUIScrollBar : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field isHorizontal System.Boolean
+---`Field Private Instance`
+---@field barSize System.Single
+---`Field Private Instance`
+---@field barScroll System.Single
+---`Field Private Instance`
+---@field step System.Single
+---`Field Private Instance`
+---@field dragStartPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field OnMoved (Barotrauma.GUIScrollBar.OnMovedHandler)|(fun(scrollBar:Barotrauma.GUIScrollBar, barScroll:System.Single):(System.Boolean))
+---`Field Public Instance`
+---@field OnReleased (Barotrauma.GUIScrollBar.OnMovedHandler)|(fun(scrollBar:Barotrauma.GUIScrollBar, barScroll:System.Single):(System.Boolean))
+---`Field Public Instance`
+---@field IsBooleanSwitch System.Boolean
+---`Field Private Instance`
+---@field minValue System.Single
+---`Field Private Instance`
+---@field maxValue System.Single
+---`Field Private Instance`
+---@field range Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ScrollToValue (Barotrauma.GUIScrollBar.ScrollConversion)|(fun(scrollBar:Barotrauma.GUIScrollBar, f:System.Single):(System.Single))
+---`Field Public Instance`
+---@field ValueToScroll (Barotrauma.GUIScrollBar.ScrollConversion)|(fun(scrollBar:Barotrauma.GUIScrollBar, f:System.Single):(System.Single))
+---`Field Public Instance`
+---@field UnclampedBarSize System.Single
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DraggingBar Barotrauma.GUIScrollBar
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Frame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Bar Barotrauma.GUIButton
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ToolTip Barotrauma.RichString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinValue System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxValue System.Single
+---`Getter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarScrollValue System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarScroll System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Step System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepValue System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarSize System.Single
+_G['GUI']['ScrollBar'] = {}
+
+---`Method Private Instance`
+_G['GUI']['ScrollBar'].UpdateRect = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['ScrollBar'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['GUI']['ScrollBar'].SelectBar = function() end
+
+---`Method Public Instance`
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+_G['GUI']['ScrollBar'].MoveButton = function(moveAmount) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param barSize? System.Single
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param style? System.String
+---@param isHorizontal? System.Nullable*1System*Boolean
+---@return Barotrauma.GUIScrollBar
+_G['GUI']['ScrollBar'] = function(rectT, barSize, color, style, isHorizontal) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param barSize? System.Single
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param style? System.String
+---@param isHorizontal? System.Nullable*1System*Boolean
+---@return Barotrauma.GUIScrollBar
+_G['GUI']['ScrollBar'].__new = function(rectT, barSize, color, style, isHorizontal) end
+
diff --git a/Meta/Types/client/_00007FFD97EE0698.lua b/Meta/Types/client/_00007FFD97EE0698.lua
new file mode 100644
index 0000000..9d374e6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE0698.lua
@@ -0,0 +1,213 @@
+---@meta
+---@class Barotrauma.GUIStyle : System.Object
+---`Field Public Static`
+---@field Fonts (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUIFont)|({[Barotrauma.Identifier]:(Barotrauma.GUIFont)})
+---`Field Public Static`
+---@field Sprites (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUISprite)|({[Barotrauma.Identifier]:(Barotrauma.GUISprite)})
+---`Field Public Static`
+---@field SpriteSheets (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUISpriteSheet)|({[Barotrauma.Identifier]:(Barotrauma.GUISpriteSheet)})
+---`Field Public Static`
+---@field Colors (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUIColor)|({[Barotrauma.Identifier]:(Barotrauma.GUIColor)})
+---`Field Public Static`
+---@field ComponentStyles (Barotrauma.PrefabCollection*1Barotrauma*GUIComponentStyle)|(fun():(Barotrauma.GUIComponentStyle))
+---`Field Public Static`
+---@field Font Barotrauma.GUIFont
+---`Field Public Static`
+---@field UnscaledSmallFont Barotrauma.GUIFont
+---`Field Public Static`
+---@field SmallFont Barotrauma.GUIFont
+---`Field Public Static`
+---@field LargeFont Barotrauma.GUIFont
+---`Field Public Static`
+---@field SubHeadingFont Barotrauma.GUIFont
+---`Field Public Static`
+---@field DigitalFont Barotrauma.GUIFont
+---`Field Public Static`
+---@field HotkeyFont Barotrauma.GUIFont
+---`Field Public Static`
+---@field MonospacedFont Barotrauma.GUIFont
+---`Field Public Static`
+---@field CursorSprite Barotrauma.GUICursor
+---`Field Public Static`
+---@field SubmarineLocationIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field Arrow Barotrauma.GUISprite
+---`Field Public Static`
+---@field SpeechBubbleIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field SpeechBubbleIconSliced Barotrauma.GUISprite
+---`Field Public Static`
+---@field InteractionLabelBackground Barotrauma.GUISprite
+---`Field Public Static`
+---@field BrokenIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field YouAreHereCircle Barotrauma.GUISprite
+---`Field Public Static`
+---@field SubLocationIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field ShuttleIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field WreckIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field CaveIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field OutpostIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field RuinIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field EnemyIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field CorpseIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field BeaconIcon Barotrauma.GUISprite
+---`Field Public Static`
+---@field Radiation Barotrauma.GUISprite
+---`Field Public Static`
+---@field RadiationAnimSpriteSheet Barotrauma.GUISpriteSheet
+---`Field Public Static`
+---@field SavingIndicator Barotrauma.GUISpriteSheet
+---`Field Public Static`
+---@field GenericThrobber Barotrauma.GUISpriteSheet
+---`Field Public Static`
+---@field UIGlow Barotrauma.GUISprite
+---`Field Public Static`
+---@field TalentGlow Barotrauma.GUISprite
+---`Field Public Static`
+---@field PingCircle Barotrauma.GUISprite
+---`Field Public Static`
+---@field UIGlowCircular Barotrauma.GUISprite
+---`Field Public Static`
+---@field UIGlowSolidCircular Barotrauma.GUISprite
+---`Field Public Static`
+---@field UIThermalGlow Barotrauma.GUISprite
+---`Field Public Static`
+---@field ButtonPulse Barotrauma.GUISprite
+---`Field Public Static`
+---@field WalletPortraitBG Barotrauma.GUISprite
+---`Field Public Static`
+---@field CrewWalletIconSmall Barotrauma.GUISprite
+---`Field Public Static`
+---@field EndRoundButtonPulse Barotrauma.GUISprite
+---`Field Public Static`
+---@field FocusIndicator Barotrauma.GUISpriteSheet
+---`Field Public Static`
+---@field IconOverflowIndicator Barotrauma.GUISprite
+---`Field Public Static`
+---@field Green Barotrauma.GUIColor
+---`Field Public Static`
+---@field Orange Barotrauma.GUIColor
+---`Field Public Static`
+---@field Red Barotrauma.GUIColor
+---`Field Public Static`
+---@field Blue Barotrauma.GUIColor
+---`Field Public Static`
+---@field Yellow Barotrauma.GUIColor
+---`Field Public Static`
+---@field ModdedServerColor Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorInventoryEmpty Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorInventoryHalf Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorInventoryFull Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorInventoryBackground Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorInventoryEmptyOverlay Barotrauma.GUIColor
+---`Field Public Static`
+---@field TextColorNormal Barotrauma.GUIColor
+---`Field Public Static`
+---@field TextColorBright Barotrauma.GUIColor
+---`Field Public Static`
+---@field TextColorDark Barotrauma.GUIColor
+---`Field Public Static`
+---@field TextColorDim Barotrauma.GUIColor
+---`Field Public Static`
+---@field ItemQualityColorPoor Barotrauma.GUIColor
+---`Field Public Static`
+---@field ItemQualityColorNormal Barotrauma.GUIColor
+---`Field Public Static`
+---@field ItemQualityColorGood Barotrauma.GUIColor
+---`Field Public Static`
+---@field ItemQualityColorExcellent Barotrauma.GUIColor
+---`Field Public Static`
+---@field ItemQualityColorMasterwork Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorReputationVeryLow Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorReputationLow Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorReputationNeutral Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorReputationHigh Barotrauma.GUIColor
+---`Field Public Static`
+---@field ColorReputationVeryHigh Barotrauma.GUIColor
+---`Field Public Static`
+---@field InteractionLabelColor Barotrauma.GUIColor
+---`Field Public Static`
+---@field InteractionLabelHoverColor Barotrauma.GUIColor
+---`Field Public Static`
+---@field EquipmentSlotIconColor Barotrauma.GUIColor
+---`Field Public Static`
+---@field BuffColorLow Barotrauma.GUIColor
+---`Field Public Static`
+---@field BuffColorMedium Barotrauma.GUIColor
+---`Field Public Static`
+---@field BuffColorHigh Barotrauma.GUIColor
+---`Field Public Static`
+---@field DebuffColorLow Barotrauma.GUIColor
+---`Field Public Static`
+---@field DebuffColorMedium Barotrauma.GUIColor
+---`Field Public Static`
+---@field DebuffColorHigh Barotrauma.GUIColor
+---`Field Public Static`
+---@field HealthBarColorLow Barotrauma.GUIColor
+---`Field Public Static`
+---@field HealthBarColorMedium Barotrauma.GUIColor
+---`Field Public Static`
+---@field HealthBarColorHigh Barotrauma.GUIColor
+---`Field Public Static`
+---@field HealthBarColorPoisoned Barotrauma.GUIColor
+---`Field Private Static`
+---@field defaultItemFrameMargin Microsoft.Xna.Framework.Point
+---`Getter Public Static`
+---@field ItemFrameMargin Microsoft.Xna.Framework.Point
+---`Getter Public Static`
+---@field ItemFrameTopBarHeight System.Int32
+---`Getter Public Static`
+---@field ItemFrameOffset Microsoft.Xna.Framework.Point
+_G['GUI']['GUIStyle'] = {}
+_G['GUI']['Style'] = _G['GUI']['GUIStyle']
+
+---`Method Public Static`
+---@overload fun(styleName:System.String):(Barotrauma.GUIComponentStyle)
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.GUIComponentStyle
+_G['GUI']['GUIStyle'].GetComponentStyle = function(identifier) end
+
+---`Method Public Static`
+---@overload fun(targetComponent:Barotrauma.GUIComponent, styleName?:System.String, parent?:Barotrauma.GUIComponent)
+---@param targetComponent Barotrauma.GUIComponent
+---@param styleName Barotrauma.Identifier
+---@param parent? Barotrauma.GUIComponent
+_G['GUI']['GUIStyle'].Apply = function(targetComponent, styleName, parent) end
+
+---`Method Public Static`
+---@param quality System.Int32
+---@return Barotrauma.GUIColor
+_G['GUI']['GUIStyle'].GetQualityColor = function(quality) end
+
+---`Method Public Static`
+_G['GUI']['GUIStyle'].RecalculateFonts = function() end
+
+---`Method Public Static`
+_G['GUI']['GUIStyle'].RecalculateSizeRestrictions = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.GUIStyle
+_G['GUI']['GUIStyle'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.GUIStyle
+_G['GUI']['GUIStyle'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EE1048.lua b/Meta/Types/client/_00007FFD97EE1048.lua
new file mode 100644
index 0000000..b2791a2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE1048.lua
@@ -0,0 +1,211 @@
+---@meta
+---@class Barotrauma.GUITextBlock : Barotrauma.GUIComponent
+---`Field NonPublic Instance`
+---@field text Barotrauma.RichString
+---`Field NonPublic Instance`
+---@field textAlignment Barotrauma.Alignment
+---`Field Private Instance`
+---@field textScale System.Single
+---`Field NonPublic Instance`
+---@field textPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field origin Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field textColor Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field disabledTextColor Microsoft.Xna.Framework.Color
+---`Field NonPublic Instance`
+---@field selectedTextColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field wrappedText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field censoredText System.String
+---`Field Public Instance`
+---@field TextGetter (Barotrauma.GUITextBlock.TextGetterHandler)|(fun():(Barotrauma.LocalizedString))
+---`Field Public Instance`
+---@field Wrap System.Boolean
+---`Field Public Instance`
+---@field RoundToNearestPixel System.Boolean
+---`Field Private Instance`
+---@field overflowClipActive System.Boolean
+---`Field Public Instance`
+---@field OverflowClip System.Boolean
+---`Field Private Instance`
+---@field textDepth System.Single
+---`Field Private Instance`
+---@field padding Microsoft.Xna.Framework.Vector4
+---`Field Private Instance`
+---@field autoScaleHorizontal System.Boolean
+---`Field Private Instance`
+---@field autoScaleVertical System.Boolean
+---`Field Private Instance`
+---@field forceUpperCase Barotrauma.ForceUpperCase
+---`Field Private Instance`
+---@field hoverTextColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Public Instance`
+---@field Strikethrough Barotrauma.GUITextBlock.StrikethroughSettings
+---`Field Public Instance`
+---@field OverrideRichTextDataAlpha System.Boolean
+---`Field Private Instance`
+---@field cachedCaretPositions (System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field cachedCaretPositionsText System.String
+---`Getter Public Instance`
+---@field OverflowClipActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Text Barotrauma.RichString
+---`Getter Public Instance`
+---@field WrappedText Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoScaleHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoScaleVertical System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceUpperCase Barotrauma.ForceUpperCase
+---`Getter Public Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TextSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisabledTextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoverTextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedTextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextAlignment Barotrauma.Alignment
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Censor System.Boolean
+---`Getter Public Instance`
+---@field CensoredText System.String
+---`Getter Public Instance`
+---@field RichTextData System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*RichTextData
+---`Getter Public Instance`
+---@field HasColorHighlight System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClickableAreas (System.Collections.Generic.List*1Barotrauma*GUITextBlock*ClickableArea)|(Barotrauma.GUITextBlock.ClickableArea[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Shadow System.Boolean
+_G['GUI']['TextBlock'] = {}
+
+---`Method Public Instance`
+---@param padding? System.Int32
+---@param removeExtraSpacing? System.Boolean
+_G['GUI']['TextBlock'].CalculateHeightFromText = function(padding, removeExtraSpacing) end
+
+---`Method Public Instance`
+---@param richText Barotrauma.LocalizedString
+_G['GUI']['TextBlock'].SetRichText = function(richText) end
+
+---`Method Public Instance Virtual`
+---@param componentStyle Barotrauma.GUIComponentStyle
+_G['GUI']['TextBlock'].ApplyStyle = function(componentStyle) end
+
+---`Method Public Instance`
+_G['GUI']['TextBlock'].ClearCaretPositions = function() end
+
+---`Method Public Instance`
+_G['GUI']['TextBlock'].SetTextPos = function() end
+
+---`Method Private Instance`
+---@overload fun(text:Barotrauma.LocalizedString):(Microsoft.Xna.Framework.Vector2)
+---@param text System.String
+---@return Microsoft.Xna.Framework.Vector2
+_G['GUI']['TextBlock'].MeasureText = function(text) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Single
+_G['GUI']['TextBlock'].SetAlpha = function(a) end
+
+---`Method Public Instance`
+---@param color Microsoft.Xna.Framework.Color
+_G['GUI']['TextBlock'].OverrideTextColor = function(color) end
+
+---`Method Public Instance`
+---@return (System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['GUI']['TextBlock'].GetAllCaretPositions = function() end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2-ref
+---@return System.Int32
+_G['GUI']['TextBlock'].GetCaretIndexFromScreenPos = function(pos) end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2-ref
+---@return System.Int32
+_G['GUI']['TextBlock'].GetCaretIndexFromLocalPos = function(pos) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['TextBlock'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['TextBlock'].Draw = function(spriteBatch) end
+
+---`Method Public Static`
+---@overload fun(...:Barotrauma.GUITextBlock)
+---@overload fun(scaleHorizontal?:System.Boolean, scaleVertical?:System.Boolean, ...:Barotrauma.GUITextBlock)
+---@param textBlocks (System.Collections.Generic.IEnumerable*1Barotrauma*GUITextBlock)|(fun():(Barotrauma.GUITextBlock))
+---@param scaleHorizontal? System.Boolean
+---@param scaleVertical? System.Boolean
+---@param defaultScale? System.Nullable*1System*Single
+_G['GUI']['TextBlock'].AutoScaleAndNormalize = function(textBlocks, scaleHorizontal, scaleVertical, defaultScale) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param text Barotrauma.RichString
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param font? Barotrauma.GUIFont
+---@param textAlignment? Barotrauma.Alignment
+---@param wrap? System.Boolean
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.GUITextBlock
+_G['GUI']['TextBlock'] = function(rectT, text, textColor, font, textAlignment, wrap, style, color) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param text Barotrauma.RichString
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param font? Barotrauma.GUIFont
+---@param textAlignment? Barotrauma.Alignment
+---@param wrap? System.Boolean
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.GUITextBlock
+_G['GUI']['TextBlock'].__new = function(rectT, text, textColor, font, textAlignment, wrap, style, color) end
+
diff --git a/Meta/Types/client/_00007FFD97EE1C08.lua b/Meta/Types/client/_00007FFD97EE1C08.lua
new file mode 100644
index 0000000..914ceca
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE1C08.lua
@@ -0,0 +1,253 @@
+---@meta
+---@class Barotrauma.GUITextBox : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field OnSelected (Barotrauma.TextBoxEvent)|(fun(sender:Barotrauma.GUITextBox, key:Microsoft.Xna.Framework.Input.Keys))
+---`Field Private Instance`
+---@field OnDeselected (Barotrauma.TextBoxEvent)|(fun(sender:Barotrauma.GUITextBox, key:Microsoft.Xna.Framework.Input.Keys))
+---`Field Private Instance`
+---@field caretVisible System.Boolean
+---`Field Private Instance`
+---@field caretTimer System.Single
+---`Field Private Instance`
+---@field frame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field textBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field icon Barotrauma.GUIImage
+---`Field Public Instance`
+---@field textFilterFunction (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---`Field Public Instance`
+---@field OnEnterPressed (Barotrauma.GUITextBox.OnEnterHandler)|(fun(textBox:Barotrauma.GUITextBox, text:System.String):(System.Boolean))
+---`Field Private Instance`
+---@field OnKeyHit (Barotrauma.TextBoxEvent)|(fun(sender:Barotrauma.GUITextBox, key:Microsoft.Xna.Framework.Input.Keys))
+---`Field Private Instance`
+---@field OnTextChanged (Barotrauma.GUITextBox.OnTextChangedHandler)|(fun(textBox:Barotrauma.GUITextBox, text:System.String):(System.Boolean))
+---`Field Public Instance`
+---@field DeselectAfterMessage System.Boolean
+---`Field Private Instance`
+---@field maxTextLength System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field _caretIndex System.Int32
+---`Field Private Instance`
+---@field caretPosDirty System.Boolean
+---`Field NonPublic Instance`
+---@field caretPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field isSelecting System.Boolean
+---`Field Private Instance`
+---@field selectedText System.String
+---`Field Private Instance`
+---@field selectedCharacters System.Int32
+---`Field Private Instance`
+---@field selectionStartIndex System.Int32
+---`Field Private Instance`
+---@field selectionEndIndex System.Int32
+---`Field Private Instance`
+---@field caretAndSelectionRenderer Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field mouseHeldInside System.Boolean
+---`Field Private Instance`
+---@field memento Barotrauma.Memento*1System*String
+---`Field Private Instance`
+---@field skipUpdate System.Boolean
+---`Field Private Instance`
+---@field selected System.Boolean
+---`Field Private Instance`
+---@field imePreviewTextHandler Barotrauma.IMEPreviewTextHandler
+---
`Setter Public Instance`
+---@field OnTextChangedDelegate (Barotrauma.GUITextBox.OnTextChangedHandler)|(fun(textBox:Barotrauma.GUITextBox, text:System.String):(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaretEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaretColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaretIndex System.Int32
+---`Getter Public Instance`
+---@field CaretScreenPos Microsoft.Xna.Framework.Vector2
+---`Getter Private Instance`
+---@field IsLeftToRight System.Boolean
+---`Getter Public Instance`
+---@field Frame Barotrauma.GUIFrame
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextGetter (Barotrauma.GUITextBlock.TextGetterHandler)|(fun():(Barotrauma.LocalizedString))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Selected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Wrap System.Boolean
+---`Getter Public Instance`
+---@field TextBlock Barotrauma.GUITextBlock
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClampText System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxTextLength System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OverflowClip System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Censor System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ToolTip Barotrauma.RichString
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HoverColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectionColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Text System.String
+---`Getter Public Instance`
+---@field WrappedText System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Readonly System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PlaySoundOnSelect System.Boolean
+---`Getter Public Instance`
+---@field IsIMEActive System.Boolean
+_G['GUI']['TextBox'] = {}
+
+---`Method Private Instance`
+---@param text System.String
+---@param store? System.Boolean
+---@return System.Boolean
+_G['GUI']['TextBox'].SetText = function(text, store) end
+
+---`Method Private Instance`
+_G['GUI']['TextBox'].CalculateCaretPos = function() end
+
+---`Method Public Instance`
+---@param forcedCaretIndex? System.Int32
+---@param ignoreSelectSound? System.Boolean
+_G['GUI']['TextBox'].Select = function(forcedCaretIndex, ignoreSelectSound) end
+
+---`Method Public Instance`
+_G['GUI']['TextBox'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param flashDuration? System.Single
+---@param useRectangleFlash? System.Boolean
+---@param useCircularFlash? System.Boolean
+---@param flashRectOffset? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['GUI']['TextBox'].Flash = function(color, flashDuration, useRectangleFlash, useCircularFlash, flashRectOffset) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['TextBox'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['GUI']['TextBox'].HandleCaretBoundsOverflow = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param customComponent Barotrauma.GUICustomComponent
+_G['GUI']['TextBox'].DrawCaretAndSelection = function(spriteBatch, customComponent) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['TextBox'].DrawSelectionRect = function(spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@overload fun(inputChar:System.Char)
+---@param input System.String
+_G['GUI']['TextBox'].ReceiveTextInput = function(input) end
+
+---`Method Public Instance Virtual`
+---@param command System.Char
+_G['GUI']['TextBox'].ReceiveCommandInput = function(command) end
+
+---`Method Public Instance Virtual`
+---@param text System.String
+---@param start System.Int32
+---@param length System.Int32
+_G['GUI']['TextBox'].ReceiveEditingInput = function(text, start, length) end
+
+---`Method Public Instance Virtual`
+---@param key Microsoft.Xna.Framework.Input.Keys
+_G['GUI']['TextBox'].ReceiveSpecialInput = function(key) end
+
+---`Method Public Instance`
+_G['GUI']['TextBox'].SelectAll = function() end
+
+---`Method Private Instance`
+_G['GUI']['TextBox'].CopySelectedText = function() end
+
+---`Method Private Instance`
+_G['GUI']['TextBox'].ClearSelection = function() end
+
+---`Method Private Instance`
+---@return System.String
+_G['GUI']['TextBox'].GetCopiedText = function() end
+
+---`Method Private Instance`
+_G['GUI']['TextBox'].RemoveSelectedText = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['GUI']['TextBox'].GetWrapWidth = function() end
+
+---`Method Private Instance`
+_G['GUI']['TextBox'].InitSelectionStart = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['TextBox'].DrawIMEPreview = function(spriteBatch) end
+
+---`Method Private Instance`
+_G['GUI']['TextBox'].CalculateSelection = function() end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param text? System.String
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param font? Barotrauma.GUIFont
+---@param textAlignment? Barotrauma.Alignment
+---@param wrap? System.Boolean
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param createClearButton? System.Boolean
+---@param createPenIcon? System.Boolean
+---@return Barotrauma.GUITextBox
+_G['GUI']['TextBox'] = function(rectT, text, textColor, font, textAlignment, wrap, style, color, createClearButton, createPenIcon) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param text? System.String
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param font? Barotrauma.GUIFont
+---@param textAlignment? Barotrauma.Alignment
+---@param wrap? System.Boolean
+---@param style? System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param createClearButton? System.Boolean
+---@param createPenIcon? System.Boolean
+---@return Barotrauma.GUITextBox
+_G['GUI']['TextBox'].__new = function(rectT, text, textColor, font, textAlignment, wrap, style, color, createClearButton, createPenIcon) end
+
diff --git a/Meta/Types/client/_00007FFD97EE2190.lua b/Meta/Types/client/_00007FFD97EE2190.lua
new file mode 100644
index 0000000..55781d4
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE2190.lua
@@ -0,0 +1,80 @@
+---@meta
+---@class Barotrauma.GUITickBox : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field layoutGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field box Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field text Barotrauma.GUITextBlock
+---`Field Public Instance`
+---@field OnSelected (Barotrauma.GUITickBox.OnSelectedHandler)|(fun(obj:Barotrauma.GUITickBox):(System.Boolean))
+---`Field Private Instance`
+---@field radioButtonGroup Barotrauma.GUIRadioButtonGroup
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Selected System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State Barotrauma.GUIComponent.ComponentState
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Font Barotrauma.GUIFont
+---`Getter Public Instance`
+---@field Box Barotrauma.GUIFrame
+---`Getter Public Instance`
+---@field TextBlock Barotrauma.GUITextBlock
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ToolTip Barotrauma.RichString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Text Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContentWidth System.Single
+---`Getter Private Instance`
+---
`Setter Public Instance`
+---@field SoundType Barotrauma.GUISoundType
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PlaySoundOnSelect System.Boolean
+_G['GUI']['TickBox'] = {}
+
+---`Method Public Instance`
+---@param rbg Barotrauma.GUIRadioButtonGroup
+_G['GUI']['TickBox'].SetRadioButtonGroup = function(rbg) end
+
+---`Method Public Instance`
+_G['GUI']['TickBox'].ResizeBox = function() end
+
+---`Method Public Instance`
+---@param selected System.Boolean
+---@param callOnSelected? System.Boolean
+_G['GUI']['TickBox'].SetSelected = function(selected, callOnSelected) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['TickBox'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param label Barotrauma.LocalizedString
+---@param font? Barotrauma.GUIFont
+---@param style? System.String
+---@return Barotrauma.GUITickBox
+_G['GUI']['TickBox'] = function(rectT, label, font, style) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param label Barotrauma.LocalizedString
+---@param font? Barotrauma.GUIFont
+---@param style? System.String
+---@return Barotrauma.GUITickBox
+_G['GUI']['TickBox'].__new = function(rectT, label, font, style) end
+
diff --git a/Meta/Types/client/_00007FFD97EE2400.lua b/Meta/Types/client/_00007FFD97EE2400.lua
new file mode 100644
index 0000000..e4b1279
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE2400.lua
@@ -0,0 +1,9 @@
+---@meta
+---@class Barotrauma.HUD : System.Object
+_G['HUD'] = {}
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['HUD'].CloseHUD = function(rect) end
+
diff --git a/Meta/Types/client/_00007FFD97EE2918.lua b/Meta/Types/client/_00007FFD97EE2918.lua
new file mode 100644
index 0000000..6e735c3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE2918.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.HUDLayoutSettings : System.Object
+---`Field Public Static`
+---@field DebugDraw System.Boolean
+---`Field Private Static`
+---@field inventoryTopY System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field InventoryTopY System.Int32
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ButtonAreaTop Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field TutorialObjectiveListArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MessageAreaTop Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field CrewArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ChatBoxArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ObjectiveAnchor Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field InventoryAreaLower Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field HealthBarArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BottomRightInfoArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field HealthBarAfflictionArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field HealthWindowAreaLeft Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PortraitArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field VotingArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ItemHUDArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Padding System.Int32
+_G['HUDLayoutSettings'] = {}
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param parent Barotrauma.RectTransform
+---@return Barotrauma.RectTransform
+_G['HUDLayoutSettings'].ToRectTransform = function(rect, parent) end
+
+---`Method Public Static`
+_G['HUDLayoutSettings'].CreateAreas = function() end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['HUDLayoutSettings'].Draw = function(spriteBatch) end
+
+---`Constructor Private Static`
+---@return Barotrauma.HUDLayoutSettings
+_G['HUDLayoutSettings'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.HUDLayoutSettings
+_G['HUDLayoutSettings'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EE2B78.lua b/Meta/Types/client/_00007FFD97EE2B78.lua
new file mode 100644
index 0000000..aa43beb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE2B78.lua
@@ -0,0 +1,61 @@
+---@meta
+---@class Barotrauma.HUDProgressBar : System.Object
+---`Field Private Instance`
+---@field progress System.Single
+---`Field Public Instance`
+---@field FadeTimer System.Single
+---`Field Private Instance`
+---@field fullColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field emptyColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field worldPosition Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field parentSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field textTag System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Progress System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Text Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextTag System.String
+_G['HUDProgressBar'] = {}
+
+---`Method Public Instance`
+---@param deltatime System.Single
+_G['HUDProgressBar'].Update = function(deltatime) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['HUDProgressBar'].Draw = function(spriteBatch, cam) end
+
+---`Constructor Public Instance`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2, textTag:System.String, parentSubmarine?:Barotrauma.Submarine):Barotrauma.HUDProgressBar
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param parentSubmarine Barotrauma.Submarine
+---@param emptyColor Microsoft.Xna.Framework.Color
+---@param fullColor Microsoft.Xna.Framework.Color
+---@param textTag System.String
+---@return Barotrauma.HUDProgressBar
+_G['HUDProgressBar'] = function(worldPosition, parentSubmarine, emptyColor, fullColor, textTag) end
+
+---`Constructor Public Instance`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2, textTag:System.String, parentSubmarine?:Barotrauma.Submarine):Barotrauma.HUDProgressBar
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param parentSubmarine Barotrauma.Submarine
+---@param emptyColor Microsoft.Xna.Framework.Color
+---@param fullColor Microsoft.Xna.Framework.Color
+---@param textTag System.String
+---@return Barotrauma.HUDProgressBar
+_G['HUDProgressBar'].__new = function(worldPosition, parentSubmarine, emptyColor, fullColor, textTag) end
+
diff --git a/Meta/Types/client/_00007FFD97EE2E48.lua b/Meta/Types/client/_00007FFD97EE2E48.lua
new file mode 100644
index 0000000..f47ad20
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE2E48.lua
@@ -0,0 +1,83 @@
+---@meta
+---@class Barotrauma.LoadingScreen : System.Object
+---`Field Private Instance`
+---@field defaultBackgroundTexture Barotrauma.Sprite
+---`Field Private Instance`
+---@field overlay Barotrauma.Sprite
+---`Field Private Instance`
+---@field decorativeGraph Barotrauma.SpriteSheet
+---`Field Private Instance`
+---@field decorativeMap Barotrauma.SpriteSheet
+---`Field Private Instance`
+---@field currentBackgroundTexture Barotrauma.Sprite
+---`Field Private Instance`
+---@field noiseSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field randText System.String
+---`Field Private Instance`
+---@field languageSelectionCursor Barotrauma.Sprite
+---`Field Private Instance`
+---@field languageSelectionFont Barotrauma.ScalableFont
+---`Field Private Instance`
+---@field languageSelectionFontCJK Barotrauma.ScalableFont
+---`Field Private Instance`
+---@field currSplashScreen Barotrauma.Media.Video
+---`Field Private Instance`
+---@field videoStartTime System.DateTime
+---`Field Private Instance`
+---@field mirrorBackground System.Boolean
+---`Field Public Instance`
+---@field PendingSplashScreens (System.Collections.Concurrent.ConcurrentQueue*1Barotrauma*LoadingScreen*PendingSplashScreen)|(fun():(Barotrauma.LoadingScreen.PendingSplashScreen))
+---`Field Private Instance`
+---@field selectedTip Barotrauma.RichString
+---`Field Public Instance`
+---@field LoadState System.Single
+---`Field Public Instance`
+---@field AvailableLanguages (Barotrauma.LanguageIdentifier-arr)|(Barotrauma.LanguageIdentifier[])
+---`Field Private Instance`
+---@field drawn System.Boolean
+---`Getter Public Instance`
+---@field PlayingSplashScreen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaitForLanguageSelection System.Boolean
+_G['LoadingScreen'] = {}
+
+---`Method Private Instance`
+---@param tip Barotrauma.LocalizedString
+_G['LoadingScreen'].SetSelectedTip = function(tip) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param deltaTime System.Single
+_G['LoadingScreen'].Draw = function(spriteBatch, graphics, deltaTime) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param graphicsDevice Microsoft.Xna.Framework.Graphics.GraphicsDevice
+_G['LoadingScreen'].DrawLanguageSelectionPrompt = function(spriteBatch, graphicsDevice) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+_G['LoadingScreen'].DrawSplashScreen = function(spriteBatch, graphics) end
+
+---`Method Private Instance`
+_G['LoadingScreen'].DisableSplashScreen = function() end
+
+---`Method Public Instance`
+---@param loader (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['LoadingScreen'].DoLoading = function(loader) end
+
+---`Constructor Public Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@return Barotrauma.LoadingScreen
+_G['LoadingScreen'] = function(graphics) end
+
+---`Constructor Public Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@return Barotrauma.LoadingScreen
+_G['LoadingScreen'].__new = function(graphics) end
+
diff --git a/Meta/Types/client/_00007FFD97EE5740.lua b/Meta/Types/client/_00007FFD97EE5740.lua
new file mode 100644
index 0000000..a96ad09
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE5740.lua
@@ -0,0 +1,162 @@
+---@meta
+---@class Barotrauma.MedicalClinicUI : System.Object
+---`Field Private Instance`
+---@field medicalClinic Barotrauma.MedicalClinic
+---`Field Private Instance`
+---@field container Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field prevResolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field pendingHealList System.Nullable*1Barotrauma*MedicalClinicUI*PendingHealList
+---`Field Private Instance`
+---@field crewHealList System.Nullable*1Barotrauma*MedicalClinicUI*CrewHealList
+---`Field Private Instance`
+---@field selectedCrewElement Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field selectedCrewAfflictionList System.Nullable*1Barotrauma*MedicalClinicUI*PopupAfflictionList
+---`Field Private Instance`
+---@field isWaitingForServer System.Boolean
+---`Field Private Instance`
+---@field refreshTimer System.Single
+---`Field Private Instance`
+---@field playerBalanceElement System.Nullable*1Barotrauma*CampaignUI*PlayerBalanceElement
+---`Field Private Static`
+---@field refreshTimerMax System.Single
+_G['MedicalClinicUI'] = {}
+
+---`Method Private Instance`
+_G['MedicalClinicUI'].OnMedicalClinicUpdated = function() end
+
+---`Method Private Instance`
+_G['MedicalClinicUI'].UpdatePopupAfflictions = function() end
+
+---`Method Private Instance`
+_G['MedicalClinicUI'].UpdatePending = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.MedicalClinicUI.PendingHealElement
+_G['MedicalClinicUI'].UpdatePendingAfflictions = function(element) end
+
+---`Method Public Instance`
+_G['MedicalClinicUI'].UpdateCrewPanel = function() end
+
+---`Method Private Static`
+---@param healElement Barotrauma.MedicalClinicUI.CrewElement
+_G['MedicalClinicUI'].UpdateAfflictionList = function(healElement) end
+
+---`Method Private Static`
+---@param healElement Barotrauma.MedicalClinicUI.CrewElement
+---@param parent Barotrauma.GUIComponent
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+_G['MedicalClinicUI'].CreateCrewAfflictionIcon = function(healElement, parent, prefab, strength) end
+
+---`Method Private Instance`
+_G['MedicalClinicUI'].CreateUI = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['MedicalClinicUI'].CreateLeftSidePanel = function(parent) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param healList Barotrauma.MedicalClinicUI.CrewHealList
+---@param info Barotrauma.CharacterInfo
+---@param panel Barotrauma.GUIComponent
+_G['MedicalClinicUI'].CreateCrewEntry = function(parent, healList, info, panel) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['MedicalClinicUI'].CreateRightSidePanel = function(parent) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param healList Barotrauma.MedicalClinicUI.PendingHealList
+---@param afflictions (System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetAffliction)|(Barotrauma.MedicalClinic.NetAffliction[])
+_G['MedicalClinicUI'].CreatePendingHealElement = function(parent, crewMember, healList, afflictions) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIListBox
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param affliction Barotrauma.MedicalClinic.NetAffliction
+---@param healElement Barotrauma.MedicalClinicUI.PendingHealElement
+_G['MedicalClinicUI'].CreatePendingAffliction = function(parent, crewMember, affliction, healElement) end
+
+---`Method Private Static`
+---@param parent Barotrauma.GUIComponent
+---@param info Barotrauma.CharacterInfo
+_G['MedicalClinicUI'].CreateCharacterBlock = function(parent, info) end
+
+---`Method Private Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param location Microsoft.Xna.Framework.Vector2
+_G['MedicalClinicUI'].SelectCharacter = function(crewMember, location) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param affliction Barotrauma.MedicalClinic.NetAffliction
+---@return Barotrauma.MedicalClinicUI.CreatedPopupAfflictionElement
+_G['MedicalClinicUI'].CreatePopupAffliction = function(parent, crewMember, affliction) end
+
+---`Method Private Instance`
+---@param elementsToDisable (System.Collections.Immutable.ImmutableArray*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param afflictions (System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetAffliction)|(Barotrauma.MedicalClinic.NetAffliction[])
+_G['MedicalClinicUI'].AddPending = function(elementsToDisable, crewMember, afflictions) end
+
+---`Method Public Static`
+---@param text System.String
+---@param textBlock Barotrauma.GUITextBlock
+---@param bounds Microsoft.Xna.Framework.Rectangle
+---@param layoutGroups? System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*GUILayoutGroup
+_G['MedicalClinicUI'].EnsureTextDoesntOverflow = function(text, textBlock, bounds, layoutGroups) end
+
+---`Method Public Instance`
+_G['MedicalClinicUI'].RequestLatestPending = function() end
+
+---`Method Public Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+_G['MedicalClinicUI'].UpdateAfflictions = function(crewMember) end
+
+---`Method Public Instance`
+_G['MedicalClinicUI'].ClosePopup = function() end
+
+---`Method Private Static`
+---@param result Barotrauma.MedicalClinic.RequestResult
+---@return Barotrauma.LocalizedString
+_G['MedicalClinicUI'].GetErrorText = function(result) end
+
+---`Method Private Instance`
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetCrewMember)|(Barotrauma.MedicalClinic.NetCrewMember[])
+_G['MedicalClinicUI'].GetPendingCharacters = function() end
+
+---`Method Private Static`
+---@param state Barotrauma.MedicalClinicUI.ElementState
+---@param elements (System.Collections.Immutable.ImmutableArray*1Barotrauma*GUIComponent)|(Barotrauma.GUIComponent[])
+_G['MedicalClinicUI'].ToggleElements = function(state, elements) end
+
+---`Method Private Static`
+---@param ... Barotrauma.GUILayoutGroup
+_G['MedicalClinicUI'].RecalculateLayouts = function(...) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['MedicalClinicUI'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+_G['MedicalClinicUI'].OnDeselected = function() end
+
+---`Constructor Public Instance`
+---@param clinic Barotrauma.MedicalClinic
+---@param parent Barotrauma.GUIComponent
+---@return Barotrauma.MedicalClinicUI
+_G['MedicalClinicUI'] = function(clinic, parent) end
+
+---`Constructor Public Instance`
+---@param clinic Barotrauma.MedicalClinic
+---@param parent Barotrauma.GUIComponent
+---@return Barotrauma.MedicalClinicUI
+_G['MedicalClinicUI'].__new = function(clinic, parent) end
+
diff --git a/Meta/Types/client/_00007FFD97EE6118.lua b/Meta/Types/client/_00007FFD97EE6118.lua
new file mode 100644
index 0000000..1889cdc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE6118.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.ParamsEditor : System.Object
+---`Field Private Static`
+---@field _instance Barotrauma.ParamsEditor
+---`Field Public Static`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---@field Instance Barotrauma.ParamsEditor
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Parent Barotrauma.GUIComponent
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EditorBox Barotrauma.GUIListBox
+_G['ParamsEditor'] = {}
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*SerializableEntityEditor)|(fun():(Barotrauma.SerializableEntityEditor))
+_G['ParamsEditor'].FindEntityEditors = function() end
+
+---`Method Public Instance`
+---@param rectT? Barotrauma.RectTransform
+---@return Barotrauma.GUIListBox
+_G['ParamsEditor'].CreateEditorBox = function(rectT) end
+
+---`Method Public Instance`
+_G['ParamsEditor'].Clear = function() end
+
+---`Constructor Public Instance`
+---@overload fun(rectT?:Barotrauma.RectTransform):Barotrauma.ParamsEditor
+---@return Barotrauma.ParamsEditor
+_G['ParamsEditor'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(rectT?:Barotrauma.RectTransform):Barotrauma.ParamsEditor
+---@return Barotrauma.ParamsEditor
+_G['ParamsEditor'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectT?:Barotrauma.RectTransform):Barotrauma.ParamsEditor
+---@return Barotrauma.ParamsEditor
+_G['ParamsEditor'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectT?:Barotrauma.RectTransform):Barotrauma.ParamsEditor
+---@return Barotrauma.ParamsEditor
+_G['ParamsEditor'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EE6448.lua b/Meta/Types/client/_00007FFD97EE6448.lua
new file mode 100644
index 0000000..769500e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE6448.lua
@@ -0,0 +1,109 @@
+---@meta
+---@class Barotrauma.ShapeExtensions : System.Object
+---`Field Private Static`
+---@field _whitePixelTexture Microsoft.Xna.Framework.Graphics.Texture2D
+_G['ShapeExtensions'] = {}
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@return Microsoft.Xna.Framework.Graphics.Texture2D
+_G['ShapeExtensions'].GetTexture = function(spriteBatch) end
+
+---`Method Public Static`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, position:Microsoft.Xna.Framework.Vector2, polygon:Barotrauma.Polygon, color:Microsoft.Xna.Framework.Color, thickness?:System.Single)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param points (System.Collections.Generic.IReadOnlyList*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param color Microsoft.Xna.Framework.Color
+---@param thickness? System.Single
+_G['ShapeExtensions'].DrawPolygon = function(spriteBatch, offset, points, color, thickness) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param points (System.Collections.Generic.IReadOnlyList*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param color Microsoft.Xna.Framework.Color
+---@param thickness? System.Single
+_G['ShapeExtensions'].DrawPolygonInner = function(spriteBatch, offset, points, color, thickness) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param thickness System.Single
+_G['ShapeExtensions'].DrawPolygonEdgeInner = function(spriteBatch, point1, point2, color, thickness) end
+
+---`Method Private Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param thickness System.Single
+_G['ShapeExtensions'].DrawPolygonEdge = function(spriteBatch, point1, point2, color, thickness) end
+
+---`Method Public Static`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, x1:System.Single, y1:System.Single, x2:System.Single, y2:System.Single, color:Microsoft.Xna.Framework.Color, thickness?:System.Single)
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, point1:Microsoft.Xna.Framework.Vector2, point2:Microsoft.Xna.Framework.Vector2, color:Microsoft.Xna.Framework.Color, thickness?:System.Single)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param tex Microsoft.Xna.Framework.Graphics.Texture2D
+---@param point Microsoft.Xna.Framework.Vector2
+---@param length System.Single
+---@param angle System.Single
+---@param color Microsoft.Xna.Framework.Color
+---@param thickness? System.Single
+_G['ShapeExtensions'].DrawLine = function(spriteBatch, tex, point, length, angle, color, thickness) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param tex Microsoft.Xna.Framework.Graphics.Texture2D
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param thickness? System.Single
+_G['ShapeExtensions'].DrawLineWithTexture = function(spriteBatch, tex, point1, point2, color, thickness) end
+
+---`Method Public Static`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, x:System.Single, y:System.Single, color:Microsoft.Xna.Framework.Color, size?:System.Single)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param position Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param size? System.Single
+_G['ShapeExtensions'].DrawPoint = function(spriteBatch, position, color, size) end
+
+---`Method Public Static`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, center:Microsoft.Xna.Framework.Vector2, radius:System.Single, sides:System.Int32, color:Microsoft.Xna.Framework.Color, thickness?:System.Single)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param x System.Single
+---@param y System.Single
+---@param radius System.Single
+---@param sides System.Int32
+---@param color Microsoft.Xna.Framework.Color
+---@param thickness? System.Single
+_G['ShapeExtensions'].DrawCircle = function(spriteBatch, x, y, radius, sides, color, thickness) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param center Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param radians System.Single
+---@param sides System.Int32
+---@param color Microsoft.Xna.Framework.Color
+---@param offset? System.Single
+---@param thickness? System.Single
+_G['ShapeExtensions'].DrawSector = function(spriteBatch, center, radius, radians, sides, color, offset, thickness) end
+
+---`Method Private Static`
+---@param radius System.Double
+---@param sides System.Int32
+---@param radians System.Single
+---@param offset? System.Single
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['ShapeExtensions'].CreateSector = function(radius, sides, radians, offset) end
+
+---`Method Private Static`
+---@param radius System.Double
+---@param sides System.Int32
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['ShapeExtensions'].CreateCircle = function(radius, sides) end
+
diff --git a/Meta/Types/client/_00007FFD97EE7338.lua b/Meta/Types/client/_00007FFD97EE7338.lua
new file mode 100644
index 0000000..48dcf75
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE7338.lua
@@ -0,0 +1,367 @@
+---@meta
+---@class Barotrauma.Store : System.Object
+---`Field Private Instance`
+---@field campaignUI Barotrauma.CampaignUI
+---`Field Private Instance`
+---@field parentComponent Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field storeTabButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field itemCategoryButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field tabLists (System.Collections.Generic.Dictionary*1Barotrauma*Store*StoreTab*1Barotrauma*GUIListBox)|({[Barotrauma.Store.StoreTab]:(Barotrauma.GUIListBox)})
+---`Field Private Instance`
+---@field tabSortingMethods (System.Collections.Generic.Dictionary*1Barotrauma*Store*StoreTab*1Barotrauma*Store*SortingMethod)|({[Barotrauma.Store.StoreTab]:(Barotrauma.Store.SortingMethod)})
+---`Field Private Instance`
+---@field itemsToSell (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+---`Field Private Instance`
+---@field itemsToSellFromSub (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+---`Field Private Instance`
+---@field deliveryPrompt Barotrauma.GUIMessageBox
+---`Field Private Instance`
+---@field activeTab Barotrauma.Store.StoreTab
+---`Field Private Instance`
+---@field selectedItemCategory System.Nullable*1Barotrauma*MapEntityCategory
+---`Field Private Instance`
+---@field suppressBuySell System.Boolean
+---`Field Private Instance`
+---@field buyTotal System.Int32
+---`Field Private Instance`
+---@field sellTotal System.Int32
+---`Field Private Instance`
+---@field sellFromSubTotal System.Int32
+---`Field Private Instance`
+---@field storeNameBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field reputationEffectBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field sortingDropDown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field searchBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field categoryButtonContainer Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field storeBuyList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field storeSellList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field storeSellFromSubList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field storeDailySpecialsGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field storeRequestedGoodGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field storeRequestedSubGoodGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field storeSpecialColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field shoppingCrateBuyList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field shoppingCrateSellList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field shoppingCrateSellFromSubList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field relevantBalanceName Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field shoppingCrateTotal Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field clearAllButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field confirmButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field needsRefresh System.Boolean
+---`Field Private Instance`
+---@field needsBuyingRefresh System.Boolean
+---`Field Private Instance`
+---@field needsSellingRefresh System.Boolean
+---`Field Private Instance`
+---@field needsItemsToSellRefresh System.Boolean
+---`Field Private Instance`
+---@field needsSellingFromSubRefresh System.Boolean
+---`Field Private Instance`
+---@field needsItemsToSellFromSubRefresh System.Boolean
+---`Field Private Instance`
+---@field resolutionWhenCreated Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field playerBalanceElement System.Nullable*1Barotrauma*CampaignUI*PlayerBalanceElement
+---`Field Private Instance`
+---@field hadBuyPermissions System.Boolean
+---`Field Private Instance`
+---@field hadSellInventoryPermissions System.Boolean
+---`Field Private Instance`
+---@field hadSellSubPermissions System.Boolean
+---`Field Private Instance`
+---@field prevDailySpecialCount System.Int32
+---`Field Private Instance`
+---@field prevRequestedGoodsCount System.Int32
+---`Field Private Instance`
+---@field prevSubRequestedGoodsCount System.Int32
+---`Field Private Instance`
+---@field prevBalance System.Int32
+---`Field Private Instance`
+---@field ownedItemsUpdateTimer System.Single
+---`Field Private Instance`
+---@field sellableItemsFromSubUpdateTimer System.Single
+---`Field Private Instance`
+---@field updateStopwatch System.Diagnostics.Stopwatch
+---`Field Private Static`
+---@field timerUpdateInterval System.Single
+---`Getter Private Instance`
+---@field OwnedItems (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1Barotrauma*Store*ItemQuantity)|({[Barotrauma.ItemPrefab]:(Barotrauma.Store.ItemQuantity)})
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ActiveStore Barotrauma.Location.StoreInfo
+---`Getter Private Instance`
+---@field CargoManager Barotrauma.CargoManager
+---`Getter Private Instance`
+---@field CurrentLocation Barotrauma.Location
+---`Getter Private Instance`
+---@field Balance System.Int32
+---`Getter Private Instance`
+---@field IsBuying System.Boolean
+---`Getter Private Instance`
+---@field ActiveShoppingCrateList Barotrauma.GUIListBox
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field HasBuyPermissions System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field HasSellInventoryPermissions System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field HasSellSubPermissions System.Boolean
+_G['Store'] = {}
+
+---`Method Private Static`
+---@param tab Barotrauma.Store.StoreTab
+---@return System.Boolean
+_G['Store'].HasPermissionToUseTab = function(tab) end
+
+---`Method Private Instance`
+_G['Store'].UpdatePermissions = function() end
+
+---`Method Private Instance`
+---@param tab Barotrauma.Store.StoreTab
+---@return System.Boolean
+_G['Store'].HasTabPermissions = function(tab) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Store'].HasActiveTabPermissions = function() end
+
+---`Method Private Instance`
+---@param tab Barotrauma.Store.StoreTab
+---@return System.Boolean
+_G['Store'].HavePermissionsChanged = function(tab) end
+
+---`Method Public Instance`
+---@param merchant Barotrauma.Character
+_G['Store'].SelectStore = function(merchant) end
+
+---`Method Public Instance`
+---@param updateOwned? System.Boolean
+_G['Store'].Refresh = function(updateOwned) end
+
+---`Method Private Instance`
+---@param updateOwned? System.Boolean
+_G['Store'].RefreshBuying = function(updateOwned) end
+
+---`Method Private Instance`
+---@param updateOwned? System.Boolean
+_G['Store'].RefreshSelling = function(updateOwned) end
+
+---`Method Private Instance`
+---@param updateOwned? System.Boolean
+---@param updateItemsToSellFromSub? System.Boolean
+_G['Store'].RefreshSellingFromSub = function(updateOwned, updateItemsToSellFromSub) end
+
+---`Method Private Instance`
+_G['Store'].CreateUI = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.LocalizedString
+_G['Store'].GetMerchantBalanceText = function() end
+
+---`Method Private Instance`
+---@param parentList Barotrauma.GUIListBox
+---@param elementCount System.Int32
+---@return Barotrauma.GUILayoutGroup
+_G['Store'].CreateDealsGroup = function(parentList, elementCount) end
+
+---`Method Private Instance`
+---@param prevLocation Barotrauma.Location
+---@param newLocation Barotrauma.Location
+_G['Store'].UpdateLocation = function(prevLocation, newLocation) end
+
+---`Method Private Instance`
+_G['Store'].UpdateCategoryButtons = function() end
+
+---`Method Private Instance`
+---@param tab Barotrauma.Store.StoreTab
+_G['Store'].ChangeStoreTab = function(tab) end
+
+---`Method Private Instance`
+---@overload fun(category:System.Nullable*1Barotrauma*MapEntityCategory, filter:System.String)
+_G['Store'].FilterStoreItems = function() end
+
+---`Method Private Static`
+---@param priceInfo Barotrauma.PriceInfo
+---@return System.Nullable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2System*Single
+_G['Store'].GetReputationRequirement = function(priceInfo) end
+
+---`Method Private Static`
+---@param priceInfo Barotrauma.PriceInfo
+---@return System.Nullable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2System*Single
+_G['Store'].GetTooLowReputation = function(priceInfo) end
+
+---`Method Private Instance`
+_G['Store'].RefreshStoreBuyList = function() end
+
+---`Method Private Instance`
+_G['Store'].RefreshStoreSellList = function() end
+
+---`Method Private Instance`
+_G['Store'].RefreshStoreSellFromSubList = function() end
+
+---`Method Private Instance`
+---@param itemFrame Barotrauma.GUIComponent
+---@param buying System.Boolean
+_G['Store'].SetPriceGetters = function(itemFrame, buying) end
+
+---`Method Public Instance`
+_G['Store'].RefreshItemsToSell = function() end
+
+---`Method Public Instance`
+_G['Store'].RefreshItemsToSellFromSub = function() end
+
+---`Method Private Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*PurchasedItem)|(fun():(Barotrauma.PurchasedItem))
+---@param listBox Barotrauma.GUIListBox
+---@param tab Barotrauma.Store.StoreTab
+_G['Store'].RefreshShoppingCrateList = function(items, listBox, tab) end
+
+---`Method Private Instance`
+_G['Store'].RefreshShoppingCrateBuyList = function() end
+
+---`Method Private Instance`
+_G['Store'].RefreshShoppingCrateSellList = function() end
+
+---`Method Private Instance`
+_G['Store'].RefreshShoppingCrateSellFromSubList = function() end
+
+---`Method Private Instance`
+---@overload fun(list:Barotrauma.GUIListBox, sortingMethod:Barotrauma.Store.SortingMethod)
+---@overload fun(tab:Barotrauma.Store.StoreTab, sortingMethod:Barotrauma.Store.SortingMethod)
+---@param tab Barotrauma.Store.StoreTab
+_G['Store'].SortItems = function(tab) end
+
+---`Method Private Instance`
+---@param sortingMethod Barotrauma.Store.SortingMethod
+_G['Store'].SortActiveTabItems = function(sortingMethod) end
+
+---`Method Private Instance`
+---@param pi Barotrauma.PurchasedItem
+---@param parentComponent Barotrauma.GUIComponent
+---@param containingTab Barotrauma.Store.StoreTab
+---@param forceDisable? System.Boolean
+---@return Barotrauma.GUIComponent
+_G['Store'].CreateItemFrame = function(pi, parentComponent, containingTab, forceDisable) end
+
+---`Method Private Instance`
+_G['Store'].UpdateOwnedItems = function() end
+
+---`Method Private Instance`
+---@param itemFrame Barotrauma.GUIComponent
+---@param enabled System.Boolean
+_G['Store'].SetItemFrameStatus = function(itemFrame, enabled) end
+
+---`Method Private Static`
+---@param mode Barotrauma.Store.StoreTab
+---@param itemFrame Barotrauma.GUIComponent
+_G['Store'].SetQuantityLabelText = function(mode, itemFrame) end
+
+---`Method Private Static`
+---@param mode Barotrauma.Store.StoreTab
+---@param quantity System.Int32
+---@return Barotrauma.LocalizedString
+_G['Store'].CreateQuantityLabelText = function(mode, quantity) end
+
+---`Method Private Instance`
+---@param itemComponent Barotrauma.GUIComponent
+---@param ownedLabel? Barotrauma.GUITextBlock
+_G['Store'].SetOwnedText = function(itemComponent, ownedLabel) end
+
+---`Method Private Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param mode Barotrauma.Store.StoreTab
+---@return System.Int32
+_G['Store'].GetMaxAvailable = function(itemPrefab, mode) end
+
+---`Method Private Instance`
+---@param item Barotrauma.PurchasedItem
+---@param quantity System.Int32
+---@return System.Boolean
+_G['Store'].ModifyBuyQuantity = function(item, quantity) end
+
+---`Method Private Instance`
+---@param item Barotrauma.PurchasedItem
+---@param quantity System.Int32
+---@return System.Boolean
+_G['Store'].ModifySellQuantity = function(item, quantity) end
+
+---`Method Private Instance`
+---@param item Barotrauma.PurchasedItem
+---@param quantity System.Int32
+---@return System.Boolean
+_G['Store'].ModifySellFromSubQuantity = function(item, quantity) end
+
+---`Method Private Instance`
+---@param item Barotrauma.PurchasedItem
+---@param quantity? System.Int32
+---@return System.Boolean
+_G['Store'].AddToShoppingCrate = function(item, quantity) end
+
+---`Method Private Instance`
+---@param item Barotrauma.PurchasedItem
+---@return System.Boolean
+_G['Store'].ClearFromShoppingCrate = function(item) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Store'].BuyItems = function() end
+
+---`Method Public Instance`
+_G['Store'].OnDeselected = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Store'].SellItems = function() end
+
+---`Method Private Instance`
+_G['Store'].SetShoppingCrateTotalText = function() end
+
+---`Method Private Instance`
+_G['Store'].SetConfirmButtonBehavior = function() end
+
+---`Method Private Instance`
+_G['Store'].SetConfirmButtonStatus = function() end
+
+---`Method Private Instance`
+_G['Store'].SetClearAllButtonStatus = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Store'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param campaignUI Barotrauma.CampaignUI
+---@param parentComponent Barotrauma.GUIComponent
+---@return Barotrauma.Store
+_G['Store'] = function(campaignUI, parentComponent) end
+
+---`Constructor Public Instance`
+---@param campaignUI Barotrauma.CampaignUI
+---@param parentComponent Barotrauma.GUIComponent
+---@return Barotrauma.Store
+_G['Store'].__new = function(campaignUI, parentComponent) end
+
diff --git a/Meta/Types/client/_00007FFD97EE7A08.lua b/Meta/Types/client/_00007FFD97EE7A08.lua
new file mode 100644
index 0000000..a6569a5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE7A08.lua
@@ -0,0 +1,186 @@
+---@meta
+---@class Barotrauma.SubmarineSelection : System.Object
+---`Field Private Instance`
+---@field currentPage System.Int32
+---`Field Private Instance`
+---@field pageCount System.Int32
+---`Field Private Instance`
+---@field transferService System.Boolean
+---`Field Private Instance`
+---@field purchaseService System.Boolean
+---`Field Private Instance`
+---@field initialized System.Boolean
+---`Field Public Instance`
+---@field GuiFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field pageIndicatorHolder Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field selectedSubmarineIndicator Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field submarineHorizontalGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field submarineControlsGroup Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field browseLeftButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field browseRightButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field confirmButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field confirmButtonAlt Barotrauma.GUIButton
+---`Field Private Instance`
+---@field specsFrame Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field pageIndicators (Barotrauma.GUIImage-arr)|(Barotrauma.GUIImage[])
+---`Field Private Instance`
+---@field descriptionTextBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field selectionIndicatorThickness System.Int32
+---`Field Private Instance`
+---@field listBackground Barotrauma.GUIImage
+---`Field Private Instance`
+---@field transferItemsTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field itemTransferInfoBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field subsToShow (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Private Instance`
+---@field submarineDisplays (Barotrauma.SubmarineDisplayContent-arr)|(Barotrauma.SubmarineSelection.SubmarineDisplayContent[])
+---`Field Private Instance`
+---@field selectedSubmarine Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field purchaseAndSwitchText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field purchaseOnlyText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field selectedSubText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field switchText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field missingPreviewText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field currencyName Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field parent Barotrauma.RectTransform
+---`Field Private Instance`
+---@field closeAction (System.Action)|(fun())
+---`Field Private Instance`
+---@field pageIndicator Barotrauma.Sprite
+---`Field Private Instance`
+---@field messageBoxOptions (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field createdForResolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field playerBalanceElement System.Nullable*1Barotrauma*CampaignUI*PlayerBalanceElement
+---`Field Private Instance`
+---@field transferItemsOnSwitch System.Boolean
+---`Field Public Static`
+---@field ContentRefreshRequired System.Boolean
+---`Field Private Static`
+---@field indicatorColor Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field submarinesPerPage System.Int32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field TransferItemsOnSwitch System.Boolean
+---`Getter Private Instance`
+---@field IsSelectedSubCurrentSub System.Boolean
+_G['SubmarineSelection'] = {}
+
+---`Method Private Instance`
+_G['SubmarineSelection'].Initialize = function() end
+
+---`Method Private Instance`
+_G['SubmarineSelection'].CreateGUI = function() end
+
+---`Method Private Instance`
+_G['SubmarineSelection'].UpdatePaging = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param area Microsoft.Xna.Framework.Rectangle
+_G['SubmarineSelection'].DrawSubmarineIndicator = function(spriteBatch, area) end
+
+---`Method Public Instance`
+_G['SubmarineSelection'].Update = function() end
+
+---`Method Public Instance`
+---@param updateSubs System.Boolean
+---@param setTransferOptionToTrue? System.Boolean
+_G['SubmarineSelection'].RefreshSubmarineDisplay = function(updateSubs, setTransferOptionToTrue) end
+
+---`Method Private Instance`
+_G['SubmarineSelection'].UpdateSubmarines = function() end
+
+---`Method Private Instance`
+---@param index System.Int32
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineSelection'].GetSubToDisplay = function(index) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+---@return Barotrauma.Sprite
+_G['SubmarineSelection'].GetPreviewImage = function(info) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param display Barotrauma.SubmarineSelection.SubmarineDisplayContent
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['SubmarineSelection'].SelectOwnSubmarineWithDelay = function(info, display) end
+
+---`Method Private Instance`
+---@overload fun(index:System.Int32, direction:System.Int32)
+---@param info Barotrauma.SubmarineInfo
+---@param backgroundRect Microsoft.Xna.Framework.Rectangle
+_G['SubmarineSelection'].SelectSubmarine = function(info, backgroundRect) end
+
+---`Method Private Instance`
+_G['SubmarineSelection'].UpdateItemTransferInfoFrame = function() end
+
+---`Method Private Instance`
+---@param state System.Boolean
+_G['SubmarineSelection'].SetConfirmButtonState = function(state) end
+
+---`Method Public Static`
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineSelection'].CurrentOrPendingSubmarine = function() end
+
+---`Method Private Instance`
+---@param pageChangeDirection System.Int32
+_G['SubmarineSelection'].ChangePage = function(pageChangeDirection) end
+
+---`Method Private Instance`
+_G['SubmarineSelection'].ShowTransferPrompt = function() end
+
+---`Method Private Instance`
+---@return System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString
+_G['SubmarineSelection'].GetItemTransferWarningText = function() end
+
+---`Method Private Instance`
+---@param purchaseOnly System.Boolean
+_G['SubmarineSelection'].ShowBuyPrompt = function(purchaseOnly) end
+
+---`Method Private Instance`
+---@return Barotrauma.LocalizedString
+_G['SubmarineSelection'].GetItemTransferText = function() end
+
+---`Constructor Public Instance`
+---@overload fun(transfer:System.Boolean, closeAction:(System.Action)|(fun()), parent:Barotrauma.RectTransform):Barotrauma.SubmarineSelection
+---@return Barotrauma.SubmarineSelection
+_G['SubmarineSelection'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(transfer:System.Boolean, closeAction:(System.Action)|(fun()), parent:Barotrauma.RectTransform):Barotrauma.SubmarineSelection
+---@return Barotrauma.SubmarineSelection
+_G['SubmarineSelection'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(transfer:System.Boolean, closeAction:(System.Action)|(fun()), parent:Barotrauma.RectTransform):Barotrauma.SubmarineSelection
+---@return Barotrauma.SubmarineSelection
+_G['SubmarineSelection'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(transfer:System.Boolean, closeAction:(System.Action)|(fun()), parent:Barotrauma.RectTransform):Barotrauma.SubmarineSelection
+---@return Barotrauma.SubmarineSelection
+_G['SubmarineSelection'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EE7E08.lua b/Meta/Types/client/_00007FFD97EE7E08.lua
new file mode 100644
index 0000000..638302c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE7E08.lua
@@ -0,0 +1,61 @@
+---@meta
+---@class Barotrauma.UISprite : System.Object
+---`Field Private Instance`
+---@field minBorderScale System.Single
+---`Field Private Instance`
+---@field maxBorderScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tile System.Boolean
+---`Getter Public Instance`
+---@field Slice System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Slices (Microsoft.Xna.Framework.Rectangle-arr)|(Microsoft.Xna.Framework.Rectangle[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonSliceSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaintainAspectRatio System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaintainBorderAspectRatio System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CrossFadeIn System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CrossFadeOut System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransitionMode Barotrauma.TransitionMode
+_G['UISprite'] = {}
+
+---`Method Public Instance`
+---@param drawSize Microsoft.Xna.Framework.Point
+---@return System.Single
+_G['UISprite'].GetSliceBorderScale = function(drawSize) end
+
+---`Method Public Instance`
+---@overload fun(spriteBatch:Microsoft.Xna.Framework.Graphics.SpriteBatch, rect:Microsoft.Xna.Framework.RectangleF, color:Microsoft.Xna.Framework.Color, spriteEffects?:Microsoft.Xna.Framework.Graphics.SpriteEffects, uvOffset?:System.Nullable*1Microsoft*Xna*Framework*Vector2)
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param color Microsoft.Xna.Framework.Color
+---@param spriteEffects? Microsoft.Xna.Framework.Graphics.SpriteEffects
+---@param uvOffset? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['UISprite'].Draw = function(spriteBatch, rect, color, spriteEffects, uvOffset) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UISprite
+_G['UISprite'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UISprite
+_G['UISprite'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97EE86C0.lua b/Meta/Types/client/_00007FFD97EE86C0.lua
new file mode 100644
index 0000000..d0df769
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE86C0.lua
@@ -0,0 +1,283 @@
+---@meta
+---@class Barotrauma.UpgradeStore : System.Object
+---`Field Private Instance`
+---@field campaignUI Barotrauma.CampaignUI
+---`Field Private Instance`
+---@field selectedUpgradeTab Barotrauma.UpgradeStore.UpgradeTab
+---`Field Private Instance`
+---@field currectConfirmation Barotrauma.GUIMessageBox
+---`Field Public Instance`
+---@field ItemInfoFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field selectedUpgradeCategoryLayout Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field topHeaderLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field mainStoreLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field storeLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field categoryButtonLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field submarineInfoFrame Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field currentStoreLayout Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field submarinePreviewComponent Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field subPreviewFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field drawnSubmarine Barotrauma.Submarine
+---`Field Private Instance`
+---@field applicableCategories (System.Collections.Generic.List*1Barotrauma*UpgradeCategory)|(Barotrauma.UpgradeCategory[])
+---`Field Private Instance`
+---@field subHullVertices (Microsoft.Xna.Framework.Vector2-arr-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+---`Field Private Instance`
+---@field submarineWalls (System.Collections.Generic.List*1Barotrauma*Structure)|(Barotrauma.Structure[])
+---`Field Public Instance`
+---@field HoveredEntity Barotrauma.MapEntity
+---`Field Private Instance`
+---@field highlightWalls System.Boolean
+---`Field Private Instance`
+---@field currentUpgradeCategory Barotrauma.UpgradeCategory
+---`Field Private Instance`
+---@field activeItemSwapSlideDown Barotrauma.GUIButton
+---`Field Private Instance`
+---@field itemPreviews (System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*GUIComponent)|({[Barotrauma.Item]:(Barotrauma.GUIComponent)})
+---`Field Private Instance`
+---@field screenResolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field needsRefresh System.Boolean
+---`Field Private Instance`
+---@field playerBalanceElement System.Nullable*1Barotrauma*CampaignUI*PlayerBalanceElement
+---`Field Private Instance`
+---@field customizeTabOpen System.Boolean
+---`Field Private Static`
+---@field previewWhite Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field characterList (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Public Static`
+---@field WaitForServerUpdate System.Boolean
+---`Getter Private Instance`
+---@field Campaign Barotrauma.CampaignMode
+---`Getter Private Instance`
+---@field PlayerBalance System.Int32
+---`Getter Private Instance`
+---@field HasPermission System.Boolean
+_G['UpgradeStore'] = {}
+
+---`Method Public Instance`
+_G['UpgradeStore'].RequestRefresh = function() end
+
+---`Method Private Instance`
+_G['UpgradeStore'].RefreshAll = function() end
+
+---`Method Private Instance`
+_G['UpgradeStore'].RefreshUpgradeList = function() end
+
+---`Method Public Static`
+---@param categoryList Barotrauma.GUIListBox
+---@param campaign Barotrauma.CampaignMode
+---@param drawnSubmarine Barotrauma.Submarine
+---@param applicableCategories (System.Collections.Generic.IEnumerable*1Barotrauma*UpgradeCategory)|(fun():(Barotrauma.UpgradeCategory))
+_G['UpgradeStore'].UpdateCategoryList = function(categoryList, campaign, drawnSubmarine, applicableCategories) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+_G['UpgradeStore'].CreateUI = function(parent) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param component Barotrauma.GUICustomComponent
+_G['UpgradeStore'].DrawItemSwapPreview = function(spriteBatch, component) end
+
+---`Method Private Instance`
+---@param tab Barotrauma.UpgradeStore.UpgradeTab
+_G['UpgradeStore'].SelectTab = function(tab) end
+
+---`Method Private Instance`
+_G['UpgradeStore'].CreateRepairsTab = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param title Barotrauma.LocalizedString
+---@param imageStyle System.String
+---@param price System.Int32
+---@param onPressed (Barotrauma.GUIButton.OnClickedHandler)|(fun(button:Barotrauma.GUIButton, obj:System.Object):(System.Boolean))
+---@param isDisabled System.Boolean
+---@param onHover? (System.Func*1System*Boolean*1System*Boolean)|(fun(arg:System.Boolean):(System.Boolean))
+---@param disableElement? System.Boolean
+_G['UpgradeStore'].CreateRepairEntry = function(parent, title, imageStyle, price, onPressed, isDisabled, onHover, disableElement) end
+
+---`Method Public Static`
+---@param rectTransform Barotrauma.RectTransform
+---@return Barotrauma.GUIListBox
+_G['UpgradeStore'].CreateUpgradeCategoryList = function(rectTransform) end
+
+---`Method Private Instance`
+_G['UpgradeStore'].CreateUpgradeTab = function() end
+
+---`Method Private Instance`
+---@param prefabs (System.Collections.Generic.List*1Barotrauma*UpgradePrefab)|(Barotrauma.UpgradePrefab[])
+---@param category Barotrauma.UpgradeCategory
+---@param submarine Barotrauma.Submarine
+_G['UpgradeStore'].TrySelectCategory = function(prefabs, category, submarine) end
+
+---`Method Private Static`
+---@param category Barotrauma.UpgradeCategory
+---@param subItems? (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@return System.Boolean
+_G['UpgradeStore'].HasSwappableItems = function(category, subItems) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['UpgradeStore'].GetSubItems = function() end
+
+---`Method Private Instance`
+---@param prefabs (System.Collections.Generic.List*1Barotrauma*UpgradePrefab)|(Barotrauma.UpgradePrefab[])
+---@param category Barotrauma.UpgradeCategory
+---@param submarine Barotrauma.Submarine
+_G['UpgradeStore'].SelectUpgradeCategory = function(prefabs, category, submarine) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIListBox
+---@param category Barotrauma.UpgradeCategory
+---@param prefabs (System.Collections.Generic.List*1Barotrauma*UpgradePrefab)|(Barotrauma.UpgradePrefab[])
+---@param submarine Barotrauma.Submarine
+_G['UpgradeStore'].CreateUpgradePrefabList = function(parent, category, prefabs, submarine) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIListBox
+---@param category Barotrauma.UpgradeCategory
+---@param submarine Barotrauma.Submarine
+_G['UpgradeStore'].CreateSwappableItemList = function(parent, category, submarine) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIListBox
+---@param item Barotrauma.Item
+---@param swappableEntities (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@param submarine Barotrauma.Submarine
+_G['UpgradeStore'].CreateSwappableItemSlideDown = function(parent, item, swappableEntities, submarine) end
+
+---`Method Public Static`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param campaign Barotrauma.CampaignMode
+---@param rectTransform Barotrauma.RectTransform
+---@param addBuyButton? System.Boolean
+---@return Barotrauma.UpgradeStore.UpgradeFrame
+_G['UpgradeStore'].CreateUpgradeFrame = function(prefab, category, campaign, rectTransform, addBuyButton) end
+
+---`Method Public Static`
+---@param parent Barotrauma.RectTransform
+---@param sprite Barotrauma.Sprite
+---@param title Barotrauma.LocalizedString
+---@param body Barotrauma.LocalizedString
+---@param price System.Int32
+---@param userData System.Object
+---@param addBuyButton? System.Boolean
+---@param addProgressBar? System.Boolean
+---@param buttonStyle? System.String
+---@param upgradePrefab? Barotrauma.UpgradePrefab
+---@param currentLevel? System.Int32
+---@return Barotrauma.UpgradeStore.UpgradeFrame
+_G['UpgradeStore'].CreateUpgradeEntry = function(parent, sprite, title, body, price, userData, addBuyButton, addProgressBar, buttonStyle, upgradePrefab, currentLevel) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param parent Barotrauma.GUIComponent
+---@param submarine Barotrauma.Submarine
+---@param itemsOnSubmarine (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['UpgradeStore'].CreateUpgradeEntry = function(prefab, category, parent, submarine, itemsOnSubmarine) end
+
+---`Method Private Static`
+---@param text Barotrauma.GUITextBlock
+---@param upgradePrefab Barotrauma.UpgradePrefab
+---@param currentLevel System.Int32
+_G['UpgradeStore'].UpdateUpgradePercentageText = function(text, upgradePrefab, currentLevel) end
+
+---`Method Private Instance`
+---@param entity Barotrauma.MapEntity
+_G['UpgradeStore'].CreateItemTooltip = function(entity) end
+
+---`Method Public Static`
+---@param drawnSubmarine Barotrauma.Submarine
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*UpgradeCategory)|(fun():(Barotrauma.UpgradeCategory))
+_G['UpgradeStore'].GetApplicableCategories = function(drawnSubmarine) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param parent Barotrauma.GUICustomComponent
+_G['UpgradeStore'].UpdateSubmarinePreview = function(deltaTime, parent) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+---@param parent Barotrauma.GUIComponent
+_G['UpgradeStore'].CreateSubmarinePreview = function(submarine, parent) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.Submarine
+---@param parent Barotrauma.GUIComponent
+_G['UpgradeStore'].CreateHullBorderVerticies = function(sub, parent) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param component Barotrauma.GUICustomComponent
+_G['UpgradeStore'].DrawSubmarine = function(spriteBatch, component) end
+
+---`Method Public Static`
+---@param prefabFrame Barotrauma.GUIComponent
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param campaign Barotrauma.CampaignMode
+_G['UpgradeStore'].UpdateUpgradeEntry = function(prefabFrame, prefab, category, campaign) end
+
+---`Method Private Static`
+---@param indicators Barotrauma.GUIComponent
+---@param parent Barotrauma.GUIComponent
+---@param prefabs (System.Collections.Generic.List*1Barotrauma*UpgradePrefab)|(Barotrauma.UpgradePrefab[])
+---@param category Barotrauma.UpgradeCategory
+---@param campaign Barotrauma.CampaignMode
+---@param drawnSubmarine Barotrauma.Submarine
+---@param applicableCategories (System.Collections.Generic.IEnumerable*1Barotrauma*UpgradeCategory)|(fun():(Barotrauma.UpgradeCategory))
+_G['UpgradeStore'].UpdateCategoryIndicators = function(indicators, parent, prefabs, category, campaign, drawnSubmarine, applicableCategories) end
+
+---`Method Private Instance`
+---@param predicate (System.Predicate*1Barotrauma*UpgradeStore*CategoryData)|(fun(obj:Barotrauma.UpgradeStore.CategoryData):(System.Boolean))
+---@param playSelectSound? Barotrauma.GUIListBox.PlaySelectSound
+_G['UpgradeStore'].ScrollToCategory = function(predicate, playSelectSound) end
+
+---`Method Private Instance`
+---@param category Barotrauma.UpgradeCategory
+---@return (Barotrauma.GUIComponent-arr)|(Barotrauma.GUIComponent[])
+_G['UpgradeStore'].GetFrames = function(category) end
+
+---`Method Private Static`
+---@overload fun(x:System.Single, y:System.Single, parentComponent:Barotrauma.GUIComponent, anchor?:Barotrauma.Anchor, scaleBasis?:Barotrauma.ScaleBasis):(Barotrauma.RectTransform)
+---@param point Microsoft.Xna.Framework.Point
+---@param parentComponent Barotrauma.GUIComponent
+---@param anchor? Barotrauma.Anchor
+---@return Barotrauma.RectTransform
+_G['UpgradeStore'].rectT = function(point, parentComponent, anchor) end
+
+---`Constructor Public Instance`
+---@overload fun(campaignUI:Barotrauma.CampaignUI, parent:Barotrauma.GUIComponent):Barotrauma.UpgradeStore
+---@return Barotrauma.UpgradeStore
+_G['UpgradeStore'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(campaignUI:Barotrauma.CampaignUI, parent:Barotrauma.GUIComponent):Barotrauma.UpgradeStore
+---@return Barotrauma.UpgradeStore
+_G['UpgradeStore'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaignUI:Barotrauma.CampaignUI, parent:Barotrauma.GUIComponent):Barotrauma.UpgradeStore
+---@return Barotrauma.UpgradeStore
+_G['UpgradeStore'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaignUI:Barotrauma.CampaignUI, parent:Barotrauma.GUIComponent):Barotrauma.UpgradeStore
+---@return Barotrauma.UpgradeStore
+_G['UpgradeStore'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EE8960.lua b/Meta/Types/client/_00007FFD97EE8960.lua
new file mode 100644
index 0000000..6df038c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE8960.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.CreditsPlayer : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field listBox Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field configElement Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field scrollSpeed System.Single
+---`Field Public Instance`
+---@field AutoRestart System.Boolean
+---`Field Public Instance`
+---@field CloseButton Barotrauma.GUIButton
+---`Getter Public Instance`
+---@field Finished System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScrollBarEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowMouseWheelScroll System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Scroll System.Single
+_G['GUI']['CreditsPlayer'] = {}
+
+---`Method Private Instance`
+_G['GUI']['CreditsPlayer'].Load = function() end
+
+---`Method Public Instance`
+_G['GUI']['CreditsPlayer'].Restart = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['CreditsPlayer'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param configFile System.String
+---@return Barotrauma.CreditsPlayer
+_G['GUI']['CreditsPlayer'] = function(rectT, configFile) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param configFile System.String
+---@return Barotrauma.CreditsPlayer
+_G['GUI']['CreditsPlayer'].__new = function(rectT, configFile) end
+
diff --git a/Meta/Types/client/_00007FFD97EE8C30.lua b/Meta/Types/client/_00007FFD97EE8C30.lua
new file mode 100644
index 0000000..a4ebff6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE8C30.lua
@@ -0,0 +1,51 @@
+---@meta
+---@class Barotrauma.SlideshowPlayer : Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field slideshowPrefab Barotrauma.SlideshowPrefab
+---`Field Private Instance`
+---@field pressAnyKeyText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field state System.Int32
+---`Field Private Instance`
+---@field overlayColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field textColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field timer System.Single
+---`Field Private Instance`
+---@field currentText Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field LastTextShown System.Boolean
+---`Getter Public Instance`
+---@field Finished System.Boolean
+_G['GUI']['SlideshowPlayer'] = {}
+
+---`Method Public Instance`
+_G['GUI']['SlideshowPlayer'].Restart = function() end
+
+---`Method Public Instance`
+_G['GUI']['SlideshowPlayer'].Finish = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GUI']['SlideshowPlayer'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['GUI']['SlideshowPlayer'].RefreshText = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['GUI']['SlideshowPlayer'].Draw = function(spriteBatch) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param prefab Barotrauma.SlideshowPrefab
+---@return Barotrauma.SlideshowPlayer
+_G['GUI']['SlideshowPlayer'] = function(rectT, prefab) end
+
+---`Constructor Public Instance`
+---@param rectT Barotrauma.RectTransform
+---@param prefab Barotrauma.SlideshowPrefab
+---@return Barotrauma.SlideshowPlayer
+_G['GUI']['SlideshowPlayer'].__new = function(rectT, prefab) end
+
diff --git a/Meta/Types/client/_00007FFD97EE9020.lua b/Meta/Types/client/_00007FFD97EE9020.lua
new file mode 100644
index 0000000..e110491
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE9020.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.VideoPlayer : System.Object
+---`Field Public Instance`
+---@field IsPlaying System.Boolean
+---`Field Private Instance`
+---@field currentVideo Barotrauma.Media.Video
+---`Field Private Instance`
+---@field filePath System.String
+---`Field Private Instance`
+---@field background Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field videoFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field textFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field title Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field textContent Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field objectiveTitle Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field objectiveText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field videoView Barotrauma.GUICustomComponent
+---`Field Private Instance`
+---@field okButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field backgroundColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field callbackOnStop (System.Action)|(fun())
+---`Field Private Instance`
+---@field scaledVideoResolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field borderSize System.Int32
+---`Field Private Instance`
+---@field buttonSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field titleHeight System.Int32
+---`Field Private Instance`
+---@field objectiveFrameHeight System.Int32
+---`Field Private Instance`
+---@field textHeight System.Int32
+---`Field Private Instance`
+---@field useTextOnRightSide System.Boolean
+_G['GUI']['VideoPlayer'] = {}
+
+---`Method Public Instance`
+_G['GUI']['VideoPlayer'].Play = function() end
+
+---`Method Public Instance`
+_G['GUI']['VideoPlayer'].Stop = function() end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param userData System.Object
+---@return System.Boolean
+_G['GUI']['VideoPlayer'].DisposeVideo = function(button, userData) end
+
+---`Method Public Instance`
+_G['GUI']['VideoPlayer'].Update = function() end
+
+---`Method Public Instance`
+---@param ignoreChildren? System.Boolean
+---@param order? System.Int32
+_G['GUI']['VideoPlayer'].AddToGUIUpdateList = function(ignoreChildren, order) end
+
+---`Method Public Instance`
+---@overload fun(contentPath:System.String, videoSettings:Barotrauma.VideoPlayer.VideoSettings, textSettings:Barotrauma.VideoPlayer.TextSettings, contentId:Barotrauma.Identifier, startPlayback:System.Boolean)
+---@param contentPath System.String
+---@param videoSettings Barotrauma.VideoPlayer.VideoSettings
+---@param textSettings Barotrauma.VideoPlayer.TextSettings
+---@param contentId Barotrauma.Identifier
+---@param startPlayback System.Boolean
+---@param objective Barotrauma.LocalizedString
+---@param onStop? (System.Action)|(fun())
+_G['GUI']['VideoPlayer'].LoadContent = function(contentPath, videoSettings, textSettings, contentId, startPlayback, objective, onStop) end
+
+---`Method Private Instance`
+---@param videoSettings Barotrauma.VideoPlayer.VideoSettings
+---@param textSettings Barotrauma.VideoPlayer.TextSettings
+_G['GUI']['VideoPlayer'].AdjustFrames = function(videoSettings, textSettings) end
+
+---`Method Private Instance`
+---@return Barotrauma.Media.Video
+_G['GUI']['VideoPlayer'].CreateVideo = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['GUI']['VideoPlayer'].DrawVideo = function(spriteBatch, rect) end
+
+---`Method Public Instance`
+_G['GUI']['VideoPlayer'].Remove = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.VideoPlayer
+_G['GUI']['VideoPlayer'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.VideoPlayer
+_G['GUI']['VideoPlayer'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EE9198.lua b/Meta/Types/client/_00007FFD97EE9198.lua
new file mode 100644
index 0000000..1e05d80
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE9198.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.VideoPlayer.TextSettings : System.Object
+---`Field Public Instance`
+---@field Text Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Width System.Int32
+_G['GUI']['VideoPlayer']['TextSettings'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(textTag:Barotrauma.Identifier, width:System.Int32):Barotrauma.VideoPlayer.TextSettings
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.VideoPlayer.TextSettings
+_G['GUI']['VideoPlayer']['TextSettings'] = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(textTag:Barotrauma.Identifier, width:System.Int32):Barotrauma.VideoPlayer.TextSettings
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.VideoPlayer.TextSettings
+_G['GUI']['VideoPlayer']['TextSettings'].__new = function(element) end
+
diff --git a/Meta/Types/client/_00007FFD97EE92E8.lua b/Meta/Types/client/_00007FFD97EE92E8.lua
new file mode 100644
index 0000000..d721f74
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE92E8.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.VideoPlayer.VideoSettings : System.Object
+---`Field Public Instance`
+---@field File System.String
+_G['GUI']['VideoPlayer']['VideoSettings'] = {}
+
+---`Constructor Public Instance`
+---@param file System.String
+---@return Barotrauma.VideoPlayer.VideoSettings
+_G['GUI']['VideoPlayer']['VideoSettings'] = function(file) end
+
+---`Constructor Public Instance`
+---@param file System.String
+---@return Barotrauma.VideoPlayer.VideoSettings
+_G['GUI']['VideoPlayer']['VideoSettings'].__new = function(file) end
+
diff --git a/Meta/Types/client/_00007FFD97EE9718.lua b/Meta/Types/client/_00007FFD97EE9718.lua
new file mode 100644
index 0000000..b7cf350
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE9718.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Networking.VoteType : System.Enum
+---`Field Public Static`
+---@field Unknown Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Sub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Mode Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field EndRound Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Kick Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field StartRound Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field PurchaseAndSwitchSub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field PurchaseSub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field SwitchSub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field TransferMoney Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Traitor Barotrauma.Networking.VoteType
+_G['VoteType'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EE9870.lua b/Meta/Types/client/_00007FFD97EE9870.lua
new file mode 100644
index 0000000..ed00bd3
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EE9870.lua
@@ -0,0 +1,145 @@
+---@meta
+---@class Barotrauma.VotingInterface : System.Object
+---`Field Public Instance`
+---@field VoteRunning System.Boolean
+---`Field Private Instance`
+---@field frame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field votingTextBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field votedTextBlock Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field voteCounter Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field votingTimer Barotrauma.GUIProgressBar
+---`Field Private Instance`
+---@field yesVoteButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field noVoteButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field onVoteEnd (System.Action)|(fun())
+---`Field Private Instance`
+---@field yesVotes System.Int32
+---`Field Private Instance`
+---@field noVotes System.Int32
+---`Field Private Instance`
+---@field maxVotes System.Int32
+---`Field Private Instance`
+---@field getYesVotes (System.Func*1System*Int32)|(fun():(System.Int32))
+---`Field Private Instance`
+---@field getNoVotes (System.Func*1System*Int32)|(fun():(System.Int32))
+---`Field Private Instance`
+---@field getMaxVotes (System.Func*1System*Int32)|(fun():(System.Int32))
+---`Field Private Instance`
+---@field votePassed System.Boolean
+---`Field Private Instance`
+---@field votingOnText Barotrauma.RichString
+---`Field Private Instance`
+---@field votingTime System.Single
+---`Field Private Instance`
+---@field timer System.Single
+---`Field Private Instance`
+---@field currentVoteType Barotrauma.Networking.VoteType
+---`Field Private Instance`
+---@field createdForResolution Microsoft.Xna.Framework.Point
+---`Getter Private Static`
+---@field SubmarineColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field TimedOut System.Boolean
+_G['VotingInterface'] = {}
+
+---`Method Public Static`
+---@param starter Barotrauma.Networking.Client
+---@param info Barotrauma.SubmarineInfo
+---@param type Barotrauma.Networking.VoteType
+---@param transferItems System.Boolean
+---@param votingTime System.Single
+---@return Barotrauma.VotingInterface
+_G['VotingInterface'].CreateSubmarineVotingInterface = function(starter, info, type, transferItems, votingTime) end
+
+---`Method Public Static`
+---@param starter Barotrauma.Networking.Client
+---@param from Barotrauma.Networking.Client
+---@param to Barotrauma.Networking.Client
+---@param amount System.Int32
+---@param votingTime System.Single
+---@return Barotrauma.VotingInterface
+_G['VotingInterface'].CreateMoneyTransferVotingInterface = function(starter, from, to, amount, votingTime) end
+
+---`Method Private Instance`
+---@param starter Barotrauma.Networking.Client
+---@param type Barotrauma.Networking.VoteType
+_G['VotingInterface'].Initialize = function(starter, type) end
+
+---`Method Private Instance`
+_G['VotingInterface'].CreateVotingGUI = function() end
+
+---`Method Private Instance`
+---@param vote System.Int32
+_G['VotingInterface'].SetGUIToVotedState = function(vote) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['VotingInterface'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param passed System.Boolean
+---@param yesVoteFinal System.Int32
+---@param noVoteFinal System.Int32
+_G['VotingInterface'].EndVote = function(passed, yesVoteFinal, noVoteFinal) end
+
+---`Method Private Instance`
+---@param starter Barotrauma.Networking.Client
+---@param info Barotrauma.SubmarineInfo
+---@param transferItems System.Boolean
+---@param type Barotrauma.Networking.VoteType
+_G['VotingInterface'].SetSubmarineVotingText = function(starter, info, transferItems, type) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param type Barotrauma.Networking.VoteType
+_G['VotingInterface'].SendSubmarineVoteEndMessage = function(info, type) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param type Barotrauma.Networking.VoteType
+---@param yesVoteCount System.Int32
+---@param noVoteCount System.Int32
+---@param votePassed System.Boolean
+---@return Barotrauma.LocalizedString
+_G['VotingInterface'].GetSubmarineVoteResultMessage = function(info, type, yesVoteCount, noVoteCount, votePassed) end
+
+---`Method Private Instance`
+---@param starter Barotrauma.Networking.Client
+---@param from Barotrauma.Networking.Client
+---@param to Barotrauma.Networking.Client
+---@param amount System.Int32
+_G['VotingInterface'].SetMoneyTransferVotingText = function(starter, from, to, amount) end
+
+---`Method Private Instance`
+---@param from Barotrauma.Networking.Client
+---@param to Barotrauma.Networking.Client
+---@param amount System.Int32
+_G['VotingInterface'].SendMoneyTransferVoteEndMessage = function(from, to, amount) end
+
+---`Method Public Static`
+---@param from Barotrauma.Networking.Client
+---@param to Barotrauma.Networking.Client
+---@param transferAmount System.Int32
+---@param yesVoteCount System.Int32
+---@param noVoteCount System.Int32
+---@param votePassed System.Boolean
+---@return Barotrauma.LocalizedString
+_G['VotingInterface'].GetMoneyTransferVoteResultMessage = function(from, to, transferAmount, yesVoteCount, noVoteCount, votePassed) end
+
+---`Method Public Instance`
+_G['VotingInterface'].Remove = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.VotingInterface
+_G['VotingInterface'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.VotingInterface
+_G['VotingInterface'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEA018.lua b/Meta/Types/client/_00007FFD97EEA018.lua
new file mode 100644
index 0000000..b43f150
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEA018.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Barotrauma.Widget : System.Object
+---`Field Public Instance`
+---@field Shape Barotrauma.WidgetShape
+---`Field Public Instance`
+---@field Tooltip Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field ShowTooltip System.Boolean
+---`Field Public Instance`
+---@field Size System.Int32
+---`Field Public Instance`
+---@field Thickness System.Single
+---`Field Public Instance`
+---@field Sides System.Int32
+---`Field Public Instance`
+---@field IsFilled System.Boolean
+---`Field Public Instance`
+---@field InputAreaMargin System.Int32
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field SecondaryColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field TextBackgroundColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field Id System.String
+---`Field Private Instance`
+---@field Selected (System.Action)|(fun())
+---`Field Private Instance`
+---@field Deselected (System.Action)|(fun())
+---`Field Private Instance`
+---@field Hovered (System.Action)|(fun())
+---`Field Private Instance`
+---@field MouseUp (System.Action)|(fun())
+---`Field Private Instance`
+---@field MouseDown (System.Action)|(fun())
+---`Field Private Instance`
+---@field MouseHeld (System.Action*1System*Single)|(fun(obj:System.Single))
+---`Field Private Instance`
+---@field PreUpdate (System.Action*1System*Single)|(fun(obj:System.Single))
+---`Field Private Instance`
+---@field PostUpdate (System.Action*1System*Single)|(fun(obj:System.Single))
+---`Field Private Instance`
+---@field PreDraw (System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1System*Single)|(fun(arg1:Microsoft.Xna.Framework.Graphics.SpriteBatch, arg2:System.Single))
+---`Field Private Instance`
+---@field PostDraw (System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1System*Single)|(fun(arg1:Microsoft.Xna.Framework.Graphics.SpriteBatch, arg2:System.Single))
+---`Field Public Instance`
+---@field RequireMouseOn System.Boolean
+---`Field Public Instance`
+---@field Refresh (System.Action)|(fun())
+---`Field Public Instance`
+---@field Data System.Object
+---`Field Private Instance`
+---@field enabled System.Boolean
+---`Field Public Instance`
+---@field TooltipOffset System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field LinkedWidget Barotrauma.Widget
+---`Field Private Static`
+---@field multiselect System.Boolean
+---`Field Public Static`
+---@field SelectedWidgets (System.Collections.Generic.List*1Barotrauma*Widget)|(Barotrauma.Widget[])
+---`Getter Public Instance`
+---@field DrawRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field InputRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field IsSelected System.Boolean
+---`Getter Public Instance`
+---@field IsControlled System.Boolean
+---`Getter Public Instance`
+---@field IsMouseOver System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field EnableMultiSelect System.Boolean
+_G['Widget'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['Widget'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param deltaTime System.Single
+_G['Widget'].Draw = function(spriteBatch, deltaTime) end
+
+---`Constructor Public Instance`
+---@overload fun(id:System.String, size:System.Int32, shape:Barotrauma.WidgetShape):Barotrauma.Widget
+---@return Barotrauma.Widget
+_G['Widget'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(id:System.String, size:System.Int32, shape:Barotrauma.WidgetShape):Barotrauma.Widget
+---@return Barotrauma.Widget
+_G['Widget'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(id:System.String, size:System.Int32, shape:Barotrauma.WidgetShape):Barotrauma.Widget
+---@return Barotrauma.Widget
+_G['Widget'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(id:System.String, size:System.Int32, shape:Barotrauma.WidgetShape):Barotrauma.Widget
+---@return Barotrauma.Widget
+_G['Widget'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEA238.lua b/Meta/Types/client/_00007FFD97EEA238.lua
new file mode 100644
index 0000000..c8142f6
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEA238.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Networking.VoipConfig : System.Object
+---`Field Public Static`
+---@field SEND_INTERVAL System.TimeSpan
+---`Field Public Static`
+---@field MAX_COMPRESSED_SIZE System.Int32
+---`Field Public Static`
+---@field FREQUENCY System.Int32
+---`Field Public Static`
+---@field BITRATE System.Int32
+---`Field Public Static`
+---@field BUFFER_SIZE System.Int32
+_G['VoipConfig'] = {}
+
+---`Method Public Static`
+---@return Concentus.Structs.OpusEncoder
+_G['VoipConfig'].CreateEncoder = function() end
+
+---`Method Public Static`
+---@return Concentus.Structs.OpusDecoder
+_G['VoipConfig'].CreateDecoder = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.VoipConfig
+_G['VoipConfig'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.VoipConfig
+_G['VoipConfig'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEA568.lua b/Meta/Types/client/_00007FFD97EEA568.lua
new file mode 100644
index 0000000..d79b390
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEA568.lua
@@ -0,0 +1,74 @@
+---@meta
+---@class Barotrauma.Networking.VoipQueue : System.Object
+---`Field NonPublic Instance`
+---@field bufferLengths (System.Int32-arr)|(System.Int32[])
+---`Field NonPublic Instance`
+---@field buffers (System.Byte-arr-arr)|((System.Byte-arr)|(System.Byte[])[])
+---`Field NonPublic Instance`
+---@field newestBufferInd System.Int32
+---`Field NonPublic Instance`
+---@field firstRead System.Boolean
+---`Field Public Static`
+---@field BUFFER_COUNT System.Int32
+---`Getter Public Instance`
+---@field EnqueuedTotalLength System.Int32
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field BufferToQueue (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field QueueID System.Byte
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field LatestBufferID System.UInt16
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field CanSend System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field CanReceive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceLocal System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastReadTime System.DateTime
+_G['VoipQueue'] = {}
+
+---`Method Public Instance`
+---@param length System.Int32
+_G['VoipQueue'].EnqueueBuffer = function(length) end
+
+---`Method Public Instance`
+---@param id System.Int32
+---@param outSize System.Int32-ref
+---@param outBuf System.Byte-arr-ref
+_G['VoipQueue'].RetrieveBuffer = function(id, outSize, outBuf) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['VoipQueue'].Write = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param discardData? System.Boolean
+---@return System.Boolean
+_G['VoipQueue'].Read = function(msg, discardData) end
+
+---`Method Public Instance Virtual`
+_G['VoipQueue'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param id System.Byte
+---@param canSend System.Boolean
+---@param canReceive System.Boolean
+---@return Barotrauma.Networking.VoipQueue
+_G['VoipQueue'] = function(id, canSend, canReceive) end
+
+---`Constructor Public Instance`
+---@param id System.Byte
+---@param canSend System.Boolean
+---@param canReceive System.Boolean
+---@return Barotrauma.Networking.VoipQueue
+_G['VoipQueue'].__new = function(id, canSend, canReceive) end
+
diff --git a/Meta/Types/client/_00007FFD97EEAC30.lua b/Meta/Types/client/_00007FFD97EEAC30.lua
new file mode 100644
index 0000000..ca9d6aa
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEAC30.lua
@@ -0,0 +1,167 @@
+---@meta
+---@class Barotrauma.Lights.LightManager : System.Object
+---`Field Private Instance`
+---@field rayCastThread System.Threading.Thread
+---`Field Private Instance`
+---@field pendingRayCasts (System.Collections.Generic.Queue*1Barotrauma*Lights*LightManager*RayCastTask)|(fun():(Barotrauma.Lights.LightManager.RayCastTask))
+---`Field Private Instance`
+---@field currLightMapScale System.Single
+---`Field Public Instance`
+---@field AmbientLight Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field highlightRaster Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field lightEffect Microsoft.Xna.Framework.Graphics.BasicEffect
+---`Field Private Instance`
+---@field lights (System.Collections.Generic.List*1Barotrauma*Lights*LightSource)|(Barotrauma.Lights.LightSource[])
+---`Field Public Instance`
+---@field DebugLos System.Boolean
+---`Field Public Instance`
+---@field LosEnabled System.Boolean
+---`Field Public Instance`
+---@field LosAlpha System.Single
+---`Field Public Instance`
+---@field LosMode Barotrauma.LosMode
+---`Field Public Instance`
+---@field LightingEnabled System.Boolean
+---`Field Public Instance`
+---@field ObstructVisionAmount System.Single
+---`Field Private Instance`
+---@field visionCircle Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field gapGlowTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field losOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field recalculationCount System.Int32
+---`Field Private Instance`
+---@field time System.Single
+---`Field Private Instance`
+---@field activeLights (System.Collections.Generic.List*1Barotrauma*Lights*LightSource)|(Barotrauma.Lights.LightSource[])
+---`Field Private Instance`
+---@field activeShadowCastingLights (System.Collections.Generic.List*1Barotrauma*Lights*LightSource)|(Barotrauma.Lights.LightSource[])
+---`Field Private Instance`
+---@field highlightedEntities (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field visibleHulls (System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Microsoft*Xna*Framework*Rectangle)|({[Barotrauma.Hull]:(Microsoft.Xna.Framework.Rectangle)})
+---`Field Private Static`
+---@field mutex System.Object
+---`Field Private Static`
+---@field MaxLightVolumeRecalculationsPerFrame System.Int32
+---`Field Private Static`
+---@field ObstructLightsBehindCharactersZoomThreshold System.Single
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field ViewTarget Barotrauma.Entity
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LightMap Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LimbLightMap Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LosTexture Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HighlightMap Microsoft.Xna.Framework.Graphics.RenderTarget2D
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LosEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SolidColorEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance`
+---@field Lights (System.Collections.Generic.IEnumerable*1Barotrauma*Lights*LightSource)|(fun():(Barotrauma.Lights.LightSource))
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ActiveLightCount System.Int32
+_G['LightManager'] = {}
+
+---`Method Private Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+_G['LightManager'].CreateRenderTargets = function(graphics) end
+
+---`Method Public Instance`
+---@param light Barotrauma.Lights.LightSource
+_G['LightManager'].AddLight = function(light) end
+
+---`Method Public Instance`
+---@param light Barotrauma.Lights.LightSource
+_G['LightManager'].RemoveLight = function(light) end
+
+---`Method Public Instance`
+_G['LightManager'].OnMapLoaded = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['LightManager'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param lightSource Barotrauma.Lights.LightSource
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+_G['LightManager'].AddRayCastTask = function(lightSource, drawPos, rotation) end
+
+---`Method Private Instance`
+_G['LightManager'].UpdateRayCasts = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['LightManager'].DebugDrawVertices = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param backgroundObstructor? Microsoft.Xna.Framework.Graphics.RenderTarget2D
+_G['LightManager'].RenderLightMap = function(graphics, spriteBatch, cam, backgroundObstructor) end
+
+---`Method Private Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param spriteBatchTransform Microsoft.Xna.Framework.Matrix
+---@param cam Barotrauma.Camera
+---@return System.Boolean
+_G['LightManager'].UpdateHighlights = function(graphics, spriteBatch, spriteBatchTransform, cam) end
+
+---`Method Private Instance`
+---@param cam Barotrauma.Camera
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Microsoft*Xna*Framework*Rectangle)|({[Barotrauma.Hull]:(Microsoft.Xna.Framework.Rectangle)})
+_G['LightManager'].GetVisibleHulls = function(cam) end
+
+---`Method Public Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param lookAtPosition Microsoft.Xna.Framework.Vector2
+_G['LightManager'].UpdateObstructVision = function(graphics, spriteBatch, cam, lookAtPosition) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['LightManager'].DebugDrawLos = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+_G['LightManager'].ClearLights = function() end
+
+---`Constructor Public Instance`
+---@overload fun(graphics:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.Lights.LightManager
+---@return Barotrauma.Lights.LightManager
+_G['LightManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(graphics:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.Lights.LightManager
+---@return Barotrauma.Lights.LightManager
+_G['LightManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(graphics:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.Lights.LightManager
+---@return Barotrauma.Lights.LightManager
+_G['LightManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(graphics:Microsoft.Xna.Framework.Graphics.GraphicsDevice):Barotrauma.Lights.LightManager
+---@return Barotrauma.Lights.LightManager
+_G['LightManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEB718.lua b/Meta/Types/client/_00007FFD97EEB718.lua
new file mode 100644
index 0000000..2716145
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEB718.lua
@@ -0,0 +1,242 @@
+---@meta
+---@class Barotrauma.Lights.LightSource : System.Object
+---`Field Private Instance`
+---@field vertices (Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])
+---`Field Private Instance`
+---@field indices (System.Int16-arr)|(System.Int16[])
+---`Field Private Instance`
+---@field convexHullsInRange (System.Collections.Generic.List*1Barotrauma*Lights*ConvexHullList)|(Barotrauma.Lights.ConvexHullList[])
+---`Field Private Instance`
+---@field visibleConvexHulls (System.Collections.Generic.HashSet*1Barotrauma*Lights*ConvexHull)|(Barotrauma.Lights.ConvexHull[])
+---`Field Public Instance`
+---@field texture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Public Instance`
+---@field LightSpriteEffect Microsoft.Xna.Framework.Graphics.SpriteEffects
+---`Field Public Instance`
+---@field ParentSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field castShadows System.Boolean
+---`Field Private Instance`
+---@field prevCalculatedRange System.Single
+---`Field Private Instance`
+---@field prevCalculatedPosition Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field HullsUpToDate (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field needsRecalculation System.Boolean
+---`Field Private Instance`
+---@field needsRecalculationWhenUpToDate System.Boolean
+---`Field Private Instance`
+---@field state Barotrauma.Lights.LightSource.LightVertexState
+---`Field Private Instance`
+---@field calculatedDrawPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field diffToSub (System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1Microsoft*Xna*Framework*Vector2)|({[Barotrauma.Submarine]:(Microsoft.Xna.Framework.Vector2)})
+---`Field Private Instance`
+---@field lightVolumeBuffer Microsoft.Xna.Framework.Graphics.DynamicVertexBuffer
+---`Field Private Instance`
+---@field lightVolumeIndexBuffer Microsoft.Xna.Framework.Graphics.DynamicIndexBuffer
+---`Field Private Instance`
+---@field vertexCount System.Int32
+---`Field Private Instance`
+---@field indexCount System.Int32
+---`Field Private Instance`
+---@field translateVertices Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lightSourceParams Barotrauma.Lights.LightSourceParams
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field prevCalculatedRotation System.Single
+---`Field Private Instance`
+---@field rotation System.Single
+---`Field Private Instance`
+---@field dir Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _spriteScale Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Priority System.Single
+---`Field Public Instance`
+---@field PriorityMultiplier System.Single
+---`Field Private Instance`
+---@field lightTextureTargetSize Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Enabled System.Boolean
+---`Field Private Instance`
+---@field conditionalTarget Barotrauma.ISerializableEntity
+---`Field Private Instance`
+---@field logicalOperator Barotrauma.PropertyConditional.LogicalOperatorType
+---`Field Private Instance`
+---@field conditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Field Private Instance`
+---@field visibleSegments (System.Collections.Generic.List*1Barotrauma*Lights*Segment)|(Barotrauma.Lights.Segment[])
+---`Field Private Instance`
+---@field points (System.Collections.Generic.List*1Barotrauma*Lights*SegmentPoint)|(Barotrauma.Lights.SegmentPoint[])
+---`Field Private Instance`
+---@field verts (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field boundaryCorners (Barotrauma.Lights.SegmentPoint-arr)|(Barotrauma.Lights.SegmentPoint[])
+---`Field Private Static`
+---@field lightTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Static`
+---@field mutex System.Object
+---`Field Private Static`
+---@field MovementRecalculationThreshold System.Single
+---`Field Private Static`
+---@field RotationRecalculationThreshold System.Single
+---`Field Private Static`
+---@field MinPointDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CastShadows System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsRecalculation System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastRecalculationTime System.Single
+---`Getter Public Instance`
+---@field LightSourceParams Barotrauma.Lights.LightSourceParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OverrideLightSpriteAlpha System.Nullable*1System*Single
+---`Getter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field LightTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Getter Public Instance`
+---@field OverrideLightTexture Barotrauma.Sprite
+---`Getter Public Instance`
+---@field LightSprite Barotrauma.Sprite
+---`Getter Private Instance`
+---@field OverrideLightTextureOrigin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentBrightness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightTextureTargetSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightTextureOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightTextureScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field TextureRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsBackground System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ParentBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeformableLightSprite Barotrauma.DeformableSprite
+_G['LightSource'] = {}
+
+---`Method Public Instance`
+---@param time System.Single
+_G['LightSource'].Update = function(time) end
+
+---`Method Private Instance`
+---@param chList Barotrauma.Lights.ConvexHullList
+---@param lightPos Microsoft.Xna.Framework.Vector2
+---@param sub Barotrauma.Submarine
+_G['LightSource'].RefreshConvexHullList = function(chList, lightPos, sub) end
+
+---`Method Private Instance`
+_G['LightSource'].CheckConvexHullsInRange = function() end
+
+---`Method Private Instance`
+---@param sub Barotrauma.Submarine
+_G['LightSource'].CheckHullsInRange = function(sub) end
+
+---`Method Private Instance`
+_G['LightSource'].FindRaycastHits = function() end
+
+---`Method Public Instance`
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+_G['LightSource'].RayCastTask = function(drawPos, rotation) end
+
+---`Method Private Static`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param segments (System.Collections.Generic.List*1Barotrauma*Lights*Segment)|(Barotrauma.Lights.Segment[])
+---@return System.ValueTuple*1System*Int32*1Microsoft*Xna*Framework*Vector2
+_G['LightSource'].RayCast = function(rayStart, rayEnd, segments) end
+
+---`Method Private Instance`
+---@param rayCastHits (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['LightSource'].CalculateLightVertices = function(rayCastHits) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+_G['LightSource'].DrawSprite = function(spriteBatch, cam) end
+
+---`Method Public Instance`
+_G['LightSource'].CheckConditionals = function() end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['LightSource'].DebugDrawVertices = function(spriteBatch) end
+
+---`Method Public Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param lightEffect Microsoft.Xna.Framework.Graphics.BasicEffect
+---@param transform Microsoft.Xna.Framework.Matrix
+---@param allowRecalculation System.Boolean
+---@param recalculationCount System.Int32-ref
+_G['LightSource'].DrawLightVolume = function(spriteBatch, lightEffect, transform, allowRecalculation, recalculationCount) end
+
+---`Method Public Instance`
+_G['LightSource'].Reset = function() end
+
+---`Method Public Instance`
+_G['LightSource'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, conditionalTarget?:Barotrauma.ISerializableEntity):Barotrauma.Lights.LightSource
+---@overload fun(lightSourceParams:Barotrauma.Lights.LightSourceParams):Barotrauma.Lights.LightSource
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, range:System.Single, color:Microsoft.Xna.Framework.Color, submarine:Barotrauma.Submarine, addLight?:System.Boolean):Barotrauma.Lights.LightSource
+---@return Barotrauma.Lights.LightSource
+_G['LightSource'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, conditionalTarget?:Barotrauma.ISerializableEntity):Barotrauma.Lights.LightSource
+---@overload fun(lightSourceParams:Barotrauma.Lights.LightSourceParams):Barotrauma.Lights.LightSource
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, range:System.Single, color:Microsoft.Xna.Framework.Color, submarine:Barotrauma.Submarine, addLight?:System.Boolean):Barotrauma.Lights.LightSource
+---@return Barotrauma.Lights.LightSource
+_G['LightSource'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, conditionalTarget?:Barotrauma.ISerializableEntity):Barotrauma.Lights.LightSource
+---@overload fun(lightSourceParams:Barotrauma.Lights.LightSourceParams):Barotrauma.Lights.LightSource
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, range:System.Single, color:Microsoft.Xna.Framework.Color, submarine:Barotrauma.Submarine, addLight?:System.Boolean):Barotrauma.Lights.LightSource
+---@return Barotrauma.Lights.LightSource
+_G['LightSource'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, conditionalTarget?:Barotrauma.ISerializableEntity):Barotrauma.Lights.LightSource
+---@overload fun(lightSourceParams:Barotrauma.Lights.LightSourceParams):Barotrauma.Lights.LightSource
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, range:System.Single, color:Microsoft.Xna.Framework.Color, submarine:Barotrauma.Submarine, addLight?:System.Boolean):Barotrauma.Lights.LightSource
+---@return Barotrauma.Lights.LightSource
+_G['LightSource'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEBCE0.lua b/Meta/Types/client/_00007FFD97EEBCE0.lua
new file mode 100644
index 0000000..47fa0cb
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEBCE0.lua
@@ -0,0 +1,95 @@
+---@meta
+---@class Barotrauma.Lights.LightSourceParams : System.Object
+---`Field Public Instance`
+---@field Persistent System.Boolean
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field flicker System.Single
+---`Field Private Instance`
+---@field pulseFrequency System.Single
+---`Field Private Instance`
+---@field pulseAmount System.Single
+---`Field Private Instance`
+---@field blinkFrequency System.Single
+---`Field Public Instance`
+---@field OverrideLightSpriteAlpha System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Directional System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Flicker System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlickerSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BlinkFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TextureRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OverrideLightTexture Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LightSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeformableLightSpriteElement Barotrauma.ContentXElement
+_G['LightSourceParams'] = {}
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['LightSourceParams'].GetOffset = function() end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['LightSourceParams'].Deserialize = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['LightSourceParams'].Serialize = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement):Barotrauma.Lights.LightSourceParams
+---@param range System.Single
+---@param color Microsoft.Xna.Framework.Color
+---@return Barotrauma.Lights.LightSourceParams
+_G['LightSourceParams'] = function(range, color) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement):Barotrauma.Lights.LightSourceParams
+---@param range System.Single
+---@param color Microsoft.Xna.Framework.Color
+---@return Barotrauma.Lights.LightSourceParams
+_G['LightSourceParams'].__new = function(range, color) end
+
diff --git a/Meta/Types/client/_00007FFD97EEC3E0.lua b/Meta/Types/client/_00007FFD97EEC3E0.lua
new file mode 100644
index 0000000..7a4acef
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEC3E0.lua
@@ -0,0 +1,202 @@
+---@meta
+---@class Barotrauma.Sounds.SoundManager : System.Object
+---`Field Private Instance`
+---@field alcDevice System.IntPtr
+---`Field Private Instance`
+---@field alcContext System.IntPtr
+---`Field Private Instance`
+---@field sourcePools (Barotrauma.Sounds.SoundSourcePool-arr)|(Barotrauma.Sounds.SoundSourcePool[])
+---`Field Private Instance`
+---@field loadedSounds (System.Collections.Generic.List*1Barotrauma*Sounds*Sound)|(Barotrauma.Sounds.Sound[])
+---`Field Private Instance`
+---@field playingChannels (Barotrauma.Sounds.SoundChannel-arr-arr)|((Barotrauma.Sounds.SoundChannel-arr)|(Barotrauma.Sounds.SoundChannel[])[])
+---`Field Private Instance`
+---@field threadDeathMutex System.Object
+---`Field Private Instance`
+---@field updateChannelsThread System.Threading.Thread
+---`Field Private Instance`
+---@field listenerPosition Microsoft.Xna.Framework.Vector3
+---`Field Private Instance`
+---@field listenerOrientation (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field listenerGain System.Single
+---`Field Private Instance`
+---@field voipAttenuatedGain System.Single
+---`Field Private Instance`
+---@field lastAttenuationTime System.Double
+---`Field Private Instance`
+---@field categoryModifiers (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Sounds*SoundManager*CategoryModifier)|({[System.String]:(Barotrauma.Sounds.SoundManager.CategoryModifier)})
+---`Field Private Instance`
+---@field needsUpdateChannels System.Boolean
+---`Field Private Instance`
+---@field updateChannelsMre System.Threading.ManualResetEvent
+---`Field Public Static`
+---@field SourceCount System.Int32
+---`Field Public Static`
+---@field SoundCategoryDefault System.String
+---`Field Public Static`
+---@field SoundCategoryUi System.String
+---`Field Public Static`
+---@field SoundCategoryWaterAmbience System.String
+---`Field Public Static`
+---@field SoundCategoryMusic System.String
+---`Field Public Static`
+---@field SoundCategoryVoip System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Disabled System.Boolean
+---`Getter Public Instance`
+---@field LoadedSounds (System.Collections.Generic.IReadOnlyList*1Barotrauma*Sounds*Sound)|(Barotrauma.Sounds.Sound[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanDetectDisconnect System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Disconnected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ListenerPosition Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ListenerTargetVector Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ListenerUpVector Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ListenerGain System.Single
+---`Getter Public Instance`
+---@field PlaybackAmplitude System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CompressionDynamicRangeGain System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoipAttenuatedGain System.Single
+---`Getter Public Instance`
+---@field LoadedSoundCount System.Int32
+---`Getter Public Instance`
+---@field UniqueLoadedSoundCount System.Int32
+_G['SoundManager'] = {}
+
+---`Method Private Static`
+---@param deviceName System.String
+_G['SoundManager'].SetAudioOutputDevice = function(deviceName) end
+
+---`Method Public Instance`
+---@param deviceName System.String
+---@return System.Boolean
+_G['SoundManager'].InitializeAlcDevice = function(deviceName) end
+
+---`Method Public Instance`
+---@overload fun(filename:System.String, stream?:System.Boolean):(Barotrauma.Sounds.Sound)
+---@param element Barotrauma.ContentXElement
+---@param stream? System.Boolean
+---@param overrideFilePath? System.String
+---@return Barotrauma.Sounds.Sound
+_G['SoundManager'].LoadSound = function(element, stream, overrideFilePath) end
+
+---`Method Public Instance`
+---@param poolIndex Barotrauma.Sounds.SoundManager.SourcePoolIndex
+---@param ind System.Int32
+---@return Barotrauma.Sounds.SoundChannel
+_G['SoundManager'].GetSoundChannelFromIndex = function(poolIndex, ind) end
+
+---`Method Public Instance`
+---@param poolIndex Barotrauma.Sounds.SoundManager.SourcePoolIndex
+---@param srcInd System.Int32
+---@return System.UInt32
+_G['SoundManager'].GetSourceFromIndex = function(poolIndex, srcInd) end
+
+---`Method Public Instance`
+---@param newChannel Barotrauma.Sounds.SoundChannel
+---@return System.Int32
+_G['SoundManager'].AssignFreeSourceToChannel = function(newChannel) end
+
+---`Method Public Instance`
+---@param ind System.Int32
+_G['SoundManager'].DebugSource = function(ind) end
+
+---`Method Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+---@return System.Boolean
+_G['SoundManager'].IsPlaying = function(sound) end
+
+---`Method Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+---@return System.Int32
+_G['SoundManager'].CountPlayingInstances = function(sound) end
+
+---`Method Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+---@return Barotrauma.Sounds.SoundChannel
+_G['SoundManager'].GetChannelFromSound = function(sound) end
+
+---`Method Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+_G['SoundManager'].KillChannels = function(sound) end
+
+---`Method Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+_G['SoundManager'].RemoveSound = function(sound) end
+
+---`Method Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+---@param pos System.Int32
+_G['SoundManager'].MoveSoundToPosition = function(sound, pos) end
+
+---`Method Public Instance`
+---@param category System.String
+---@param gain System.Single
+---@param index? System.Int32
+_G['SoundManager'].SetCategoryGainMultiplier = function(category, gain, index) end
+
+---`Method Public Instance`
+---@param category System.String
+---@param index? System.Int32
+---@return System.Single
+_G['SoundManager'].GetCategoryGainMultiplier = function(category, index) end
+
+---`Method Public Instance`
+---@param category System.String
+---@param muffle System.Boolean
+_G['SoundManager'].SetCategoryMuffle = function(category, muffle) end
+
+---`Method Public Instance`
+---@param category System.String
+---@return System.Boolean
+_G['SoundManager'].GetCategoryMuffle = function(category) end
+
+---`Method Public Instance`
+_G['SoundManager'].Update = function() end
+
+---`Method Public Instance`
+_G['SoundManager'].ApplySettings = function() end
+
+---`Method Public Instance`
+_G['SoundManager'].InitUpdateChannelThread = function() end
+
+---`Method Private Instance`
+_G['SoundManager'].UpdateChannels = function() end
+
+---`Method Public Instance`
+_G['SoundManager'].ForceStreamUpdate = function() end
+
+---`Method Private Instance`
+_G['SoundManager'].ReloadSounds = function() end
+
+---`Method Private Instance`
+---@param keepSounds System.Boolean
+_G['SoundManager'].ReleaseResources = function(keepSounds) end
+
+---`Method Public Instance Virtual`
+_G['SoundManager'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Sounds.SoundManager
+_G['SoundManager'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Sounds.SoundManager
+_G['SoundManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EECBB0.lua b/Meta/Types/client/_00007FFD97EECBB0.lua
new file mode 100644
index 0000000..295a2c7
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EECBB0.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.Sounds.OggSound : Barotrauma.Sounds.Sound
+---`Field Private Instance`
+---@field streamReader NVorbis.VorbisReader
+---`Field Private Instance`
+---@field playbackAmplitude (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Private Instance`
+---@field sampleBuffer (System.Int16-arr)|(System.Int16[])
+---`Field Private Instance`
+---@field muffleBuffer (System.Int16-arr)|(System.Int16[])
+---`Field Private Instance`
+---@field streamFloatBuffer (System.Single-arr)|(System.Single[])
+---`Field Private Static`
+---@field AMPLITUDE_SAMPLE_COUNT System.Int32
+---`Getter Public Instance`
+---@field MaxStreamSamplePos System.Int64
+_G['OggSound'] = {}
+
+---`Method Private Static`
+---@param reader NVorbis.VorbisReader
+---@return System.Threading.Tasks.Task*1Barotrauma*Sounds*OggSound*TaskResult
+_G['OggSound'].LoadSamples = function(reader) end
+
+---`Method Public Instance Virtual`
+---@param playbackPos System.Int32
+---@return System.Single
+_G['OggSound'].GetAmplitudeAtPlaybackPos = function(playbackPos) end
+
+---`Method Public Instance Virtual`
+---@param samplePos System.Int32
+---@param buffer (System.Int16-arr)|(System.Int16[])
+---@return System.Int32
+_G['OggSound'].FillStreamBuffer = function(samplePos, buffer) end
+
+---`Method Private Static`
+---@param buffer (System.Single-arr)|(System.Single[])
+---@param sampleRate System.Int32
+_G['OggSound'].MuffleBuffer = function(buffer, sampleRate) end
+
+---`Method Public Instance Virtual`
+_G['OggSound'].InitializeAlBuffers = function() end
+
+---`Method Public Instance Virtual`
+_G['OggSound'].FillAlBuffers = function() end
+
+---`Method Public Instance Virtual`
+_G['OggSound'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Sounds.SoundManager
+---@param filename System.String
+---@param stream System.Boolean
+---@param xElement Barotrauma.ContentXElement
+---@return Barotrauma.Sounds.OggSound
+_G['OggSound'] = function(owner, filename, stream, xElement) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Sounds.SoundManager
+---@param filename System.String
+---@param stream System.Boolean
+---@param xElement Barotrauma.ContentXElement
+---@return Barotrauma.Sounds.OggSound
+_G['OggSound'].__new = function(owner, filename, stream, xElement) end
+
diff --git a/Meta/Types/client/_00007FFD97EECE28.lua b/Meta/Types/client/_00007FFD97EECE28.lua
new file mode 100644
index 0000000..b3b6e32
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EECE28.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.Sounds.VideoSound : Barotrauma.Sounds.Sound
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Private Instance`
+---@field sampleQueue (System.Collections.Generic.Queue*1System*Int16-arr)|(fun():((System.Int16-arr)|(System.Int16[])))
+---`Field Private Instance`
+---@field soundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field video Barotrauma.Media.Video
+_G['VideoSound'] = {}
+
+---`Method Public Instance Virtual`
+---@param playbackPos System.Int32
+---@return System.Single
+_G['VideoSound'].GetAmplitudeAtPlaybackPos = function(playbackPos) end
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['VideoSound'].IsPlaying = function() end
+
+---`Method Public Instance`
+---@param buf (System.Int16-arr)|(System.Int16[])
+_G['VideoSound'].Enqueue = function(buf) end
+
+---`Method Public Instance Virtual`
+---@overload fun(gain:System.Single, range:System.Single, position:Microsoft.Xna.Framework.Vector2, muffle?:System.Boolean):(Barotrauma.Sounds.SoundChannel)
+---@overload fun(position:System.Nullable*1Microsoft*Xna*Framework*Vector3, gain:System.Single, freqMult?:System.Single, muffle?:System.Boolean):(Barotrauma.Sounds.SoundChannel)
+---@overload fun(gain:System.Single):(Barotrauma.Sounds.SoundChannel)
+---@return Barotrauma.Sounds.SoundChannel
+_G['VideoSound'].Play = function() end
+
+---`Method Public Instance Virtual`
+---@param samplePos System.Int32
+---@param buffer (System.Int16-arr)|(System.Int16[])
+---@return System.Int32
+_G['VideoSound'].FillStreamBuffer = function(samplePos, buffer) end
+
+---`Method Public Instance Virtual`
+_G['VideoSound'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Sounds.SoundManager
+---@param filename System.String
+---@param sampleRate System.Int32
+---@param channelCount System.Int32
+---@param vid Barotrauma.Media.Video
+---@return Barotrauma.Sounds.VideoSound
+_G['VideoSound'] = function(owner, filename, sampleRate, channelCount, vid) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Sounds.SoundManager
+---@param filename System.String
+---@param sampleRate System.Int32
+---@param channelCount System.Int32
+---@param vid Barotrauma.Media.Video
+---@return Barotrauma.Sounds.VideoSound
+_G['VideoSound'].__new = function(owner, filename, sampleRate, channelCount, vid) end
+
diff --git a/Meta/Types/client/_00007FFD97EED260.lua b/Meta/Types/client/_00007FFD97EED260.lua
new file mode 100644
index 0000000..342c0e2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EED260.lua
@@ -0,0 +1,92 @@
+---@meta
+---@class Barotrauma.Sounds.VoipSound : Barotrauma.Sounds.Sound
+---`Field Private Instance`
+---@field queue Barotrauma.Networking.VoipQueue
+---`Field Private Instance`
+---@field bufferID System.Int32
+---`Field Private Instance`
+---@field soundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Instance`
+---@field decoder Concentus.Structs.OpusDecoder
+---`Field Public Instance`
+---@field UseRadioFilter System.Boolean
+---`Field Public Instance`
+---@field UseMuffleFilter System.Boolean
+---`Field Public Instance`
+---@field UsingRadio System.Boolean
+---`Field Private Instance`
+---@field muffleFilters (Barotrauma.Sounds.BiQuad-arr)|(Barotrauma.Sounds.BiQuad[])
+---`Field Private Instance`
+---@field radioFilters (Barotrauma.Sounds.BiQuad-arr)|(Barotrauma.Sounds.BiQuad[])
+---`Field Private Instance`
+---@field gain System.Single
+---`Field Private Instance`
+---@field client Barotrauma.Networking.Client
+---`Field Private Static`
+---@field PostRadioFilterBoost System.Single
+---`Getter Public Instance Virtual`
+---@field SourcePoolIndex Barotrauma.Sounds.SoundManager.SourcePoolIndex
+---`Getter Public Instance`
+---@field IsPlaying System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Near System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Far System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Gain System.Single
+---`Getter Public Instance`
+---@field CurrentAmplitude System.Single
+_G['VoipSound'] = {}
+
+---`Method Public Instance Virtual`
+---@param playbackPos System.Int32
+---@return System.Single
+_G['VoipSound'].GetAmplitudeAtPlaybackPos = function(playbackPos) end
+
+---`Method Public Instance`
+---@param pos System.Nullable*1Microsoft*Xna*Framework*Vector3
+_G['VoipSound'].SetPosition = function(pos) end
+
+---`Method Public Instance`
+---@param near System.Single
+---@param far System.Single
+_G['VoipSound'].SetRange = function(near, far) end
+
+---`Method Public Instance`
+---@param buffer (System.Int16-arr)|(System.Int16[])
+---@param readSamples System.Int32
+_G['VoipSound'].ApplyFilters = function(buffer, readSamples) end
+
+---`Method Public Instance Virtual`
+---@overload fun(gain:System.Single, range:System.Single, position:Microsoft.Xna.Framework.Vector2, muffle?:System.Boolean):(Barotrauma.Sounds.SoundChannel)
+---@overload fun(position:System.Nullable*1Microsoft*Xna*Framework*Vector3, gain:System.Single, freqMult?:System.Single, muffle?:System.Boolean):(Barotrauma.Sounds.SoundChannel)
+---@overload fun(gain:System.Single):(Barotrauma.Sounds.SoundChannel)
+---@return Barotrauma.Sounds.SoundChannel
+_G['VoipSound'].Play = function() end
+
+---`Method Public Instance Virtual`
+---@param samplePos System.Int32
+---@param buffer (System.Int16-arr)|(System.Int16[])
+---@return System.Int32
+_G['VoipSound'].FillStreamBuffer = function(samplePos, buffer) end
+
+---`Method Public Instance Virtual`
+_G['VoipSound'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param targetClient Barotrauma.Networking.Client
+---@param owner Barotrauma.Sounds.SoundManager
+---@param q Barotrauma.Networking.VoipQueue
+---@return Barotrauma.Sounds.VoipSound
+_G['VoipSound'] = function(targetClient, owner, q) end
+
+---`Constructor Public Instance`
+---@param targetClient Barotrauma.Networking.Client
+---@param owner Barotrauma.Sounds.SoundManager
+---@param q Barotrauma.Networking.VoipQueue
+---@return Barotrauma.Sounds.VoipSound
+_G['VoipSound'].__new = function(targetClient, owner, q) end
+
diff --git a/Meta/Types/client/_00007FFD97EED518.lua b/Meta/Types/client/_00007FFD97EED518.lua
new file mode 100644
index 0000000..754c51f
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EED518.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.Networking.VoipClient : System.Object
+---`Field Private Instance`
+---@field gameClient Barotrauma.Networking.GameClient
+---`Field Private Instance`
+---@field netClient Barotrauma.Networking.ClientPeer
+---`Field Private Instance`
+---@field lastSendTime System.DateTime
+---`Field Private Instance`
+---@field queues (System.Collections.Generic.List*1Barotrauma*Networking*VoipQueue)|(Barotrauma.Networking.VoipQueue[])
+---`Field Private Instance`
+---@field storedBufferID System.UInt16
+---`Field Private Static`
+---@field voiceIconSheetRects (Microsoft.Xna.Framework.Rectangle-arr)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Static`
+---@field RangeNear System.Single
+_G['VoipClient'] = {}
+
+---`Method Public Instance`
+---@param queue Barotrauma.Networking.VoipQueue
+_G['VoipClient'].RegisterQueue = function(queue) end
+
+---`Method Public Instance`
+---@param queue Barotrauma.Networking.VoipQueue
+_G['VoipClient'].UnregisterQueue = function(queue) end
+
+---`Method Public Instance`
+_G['VoipClient'].SendToServer = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['VoipClient'].Read = function(msg) end
+
+---`Method Public Static`
+---@param soundIcon Barotrauma.GUIImage
+---@param voipAmplitude System.Single
+---@param deltaTime System.Single
+_G['VoipClient'].UpdateVoiceIndicator = function(soundIcon, voipAmplitude, deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['VoipClient'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param gClient Barotrauma.Networking.GameClient
+---@param nClient Barotrauma.Networking.ClientPeer
+---@return Barotrauma.Networking.VoipClient
+_G['VoipClient'] = function(gClient, nClient) end
+
+---`Constructor Public Instance`
+---@param gClient Barotrauma.Networking.GameClient
+---@param nClient Barotrauma.Networking.ClientPeer
+---@return Barotrauma.Networking.VoipClient
+_G['VoipClient'].__new = function(gClient, nClient) end
+
diff --git a/Meta/Types/client/_00007FFD97EED938.lua b/Meta/Types/client/_00007FFD97EED938.lua
new file mode 100644
index 0000000..6020a2a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EED938.lua
@@ -0,0 +1,85 @@
+---@meta
+---@class Barotrauma.Networking.VoipCapture : Barotrauma.Networking.VoipQueue
+---`Field Private Instance`
+---@field captureDevice System.IntPtr
+---`Field Private Instance`
+---@field captureThread System.Threading.Thread
+---`Field Private Instance`
+---@field capturing System.Boolean
+---`Field Private Instance`
+---@field encoder Concentus.Structs.OpusEncoder
+---`Field Public Instance`
+---@field LastEnqueueAudio System.DateTime
+---`Field Public Instance`
+---@field CanDetectDisconnect System.Boolean
+---`Field Private Instance`
+---@field nativeBuffer System.IntPtr
+---`Field Private Instance`
+---@field uncompressedBuffer (System.Int16-arr)|(System.Int16[])
+---`Field Private Instance`
+---@field prevUncompressedBuffer (System.Int16-arr)|(System.Int16[])
+---`Field Private Instance`
+---@field prevCaptured System.Boolean
+---`Field Private Instance`
+---@field captureTimer System.Int32
+---`Field Private Instance`
+---@field overrideSound Barotrauma.Sounds.Sound
+---`Field Private Instance`
+---@field overridePos System.Int32
+---`Field Private Instance`
+---@field overrideBuf (System.Int16-arr)|(System.Int16[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Instance Barotrauma.Networking.VoipCapture
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastdB System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastAmplitude System.Double
+---`Getter Public Instance`
+---@field Gain System.Single
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field QueueID System.Byte
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Disconnected System.Boolean
+_G['VoipCapture'] = {}
+
+---`Method Public Static`
+---@param deviceName System.String
+---@param storedBufferID? System.Nullable*1System*UInt16
+_G['VoipCapture'].Create = function(deviceName, storedBufferID) end
+
+---`Method Public Static`
+---@param deviceName System.String
+_G['VoipCapture'].ChangeCaptureDevice = function(deviceName) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+_G['VoipCapture'].GetCaptureDeviceNames = function() end
+
+---`Method Private Instance`
+_G['VoipCapture'].UpdateCapture = function() end
+
+---`Method Private Instance`
+_G['VoipCapture'].FillBuffer = function() end
+
+---`Method Public Instance`
+---@param fileName System.String
+_G['VoipCapture'].SetOverrideSound = function(fileName) end
+
+---`Method Public Instance Virtual`
+_G['VoipCapture'].Dispose = function() end
+
+---`Constructor Private Instance`
+---@param deviceName System.String
+---@return Barotrauma.Networking.VoipCapture
+_G['VoipCapture'] = function(deviceName) end
+
+---`Constructor Private Instance`
+---@param deviceName System.String
+---@return Barotrauma.Networking.VoipCapture
+_G['VoipCapture'].__new = function(deviceName) end
+
diff --git a/Meta/Types/client/_00007FFD97EEDBE8.lua b/Meta/Types/client/_00007FFD97EEDBE8.lua
new file mode 100644
index 0000000..8a17759
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEDBE8.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.Sounds.SoundBuffers : System.Object
+---`Field Private Instance`
+---@field sound Barotrauma.Sounds.Sound
+---`Field Private Static`
+---@field bufferPool (System.Collections.Generic.HashSet*1System*UInt32)|(System.UInt32[])
+---`Field Public Static`
+---@field MaxBuffers System.Int32
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BuffersGenerated System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AlBuffer System.UInt32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AlMuffledBuffer System.UInt32
+_G['SoundBuffers'] = {}
+
+---`Method Public Instance Virtual`
+_G['SoundBuffers'].Dispose = function() end
+
+---`Method Public Static`
+_G['SoundBuffers'].ClearPool = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['SoundBuffers'].RequestAlBuffers = function() end
+
+---`Constructor Public Instance`
+---@overload fun(sound:Barotrauma.Sounds.Sound):Barotrauma.Sounds.SoundBuffers
+---@return Barotrauma.Sounds.SoundBuffers
+_G['SoundBuffers'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(sound:Barotrauma.Sounds.Sound):Barotrauma.Sounds.SoundBuffers
+---@return Barotrauma.Sounds.SoundBuffers
+_G['SoundBuffers'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(sound:Barotrauma.Sounds.Sound):Barotrauma.Sounds.SoundBuffers
+---@return Barotrauma.Sounds.SoundBuffers
+_G['SoundBuffers'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(sound:Barotrauma.Sounds.Sound):Barotrauma.Sounds.SoundBuffers
+---@return Barotrauma.Sounds.SoundBuffers
+_G['SoundBuffers'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEE418.lua b/Meta/Types/client/_00007FFD97EEE418.lua
new file mode 100644
index 0000000..66e72cc
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEE418.lua
@@ -0,0 +1,135 @@
+---@meta
+---@class Barotrauma.Sounds.SoundChannel : System.Object
+---`Field Private Instance`
+---@field streamShortBuffer (System.Int16-arr)|(System.Int16[])
+---`Field Private Instance`
+---@field debugName System.String
+---`Field Private Instance`
+---@field position System.Nullable*1Microsoft*Xna*Framework*Vector3
+---`Field Private Instance`
+---@field near System.Single
+---`Field Private Instance`
+---@field far System.Single
+---`Field Private Instance`
+---@field gain System.Single
+---`Field Private Instance`
+---@field looping System.Boolean
+---`Field Public Instance`
+---@field frequencyMultiplier System.Single
+---`Field Private Instance`
+---@field decayTimer System.Int32
+---`Field Private Instance`
+---@field muffled System.Boolean
+---`Field Private Instance`
+---@field streamAmplitude System.Single
+---`Field Private Instance`
+---@field category System.String
+---`Field Private Instance`
+---@field streamSeekPos System.Int32
+---`Field Private Instance`
+---@field buffersToRequeue System.Int32
+---`Field Private Instance`
+---@field reachedEndSample System.Boolean
+---`Field Private Instance`
+---@field queueStartIndex System.Int32
+---`Field Private Instance`
+---@field streamBuffers (System.UInt32-arr)|(System.UInt32[])
+---`Field Private Instance`
+---@field unqueuedBuffers (System.UInt32-arr)|(System.UInt32[])
+---`Field Private Instance`
+---@field streamBufferAmplitudes (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Private Static`
+---@field STREAM_BUFFER_SIZE System.Int32
+---`Field Public Static`
+---@field MinFrequencyMultiplier System.Single
+---`Field Public Static`
+---@field MaxFrequencyMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position System.Nullable*1Microsoft*Xna*Framework*Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Near System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Far System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Gain System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Looping System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FrequencyMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FilledByNetwork System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Muffled System.Boolean
+---`Getter Public Instance`
+---@field CurrentAmplitude System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Category System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sound Barotrauma.Sounds.Sound
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ALSourceIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsStream System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StreamSeekPos System.Int32
+---`Getter Public Instance`
+---@field MaxStreamSeekPos System.Int64
+---`Getter Public Instance`
+---@field IsPlaying System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadingOutAndDisposing System.Boolean
+_G['SoundChannel'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['SoundChannel'].ToString = function() end
+
+---`Method Public Instance`
+_G['SoundChannel'].FadeOutAndDispose = function() end
+
+---`Method Public Instance Virtual`
+_G['SoundChannel'].Dispose = function() end
+
+---`Method Public Instance`
+_G['SoundChannel'].UpdateStream = function() end
+
+---`Constructor Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+---@param gain System.Single
+---@param position System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param freqMult System.Single
+---@param near System.Single
+---@param far System.Single
+---@param category System.String
+---@param muffle? System.Boolean
+---@return Barotrauma.Sounds.SoundChannel
+_G['SoundChannel'] = function(sound, gain, position, freqMult, near, far, category, muffle) end
+
+---`Constructor Public Instance`
+---@param sound Barotrauma.Sounds.Sound
+---@param gain System.Single
+---@param position System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param freqMult System.Single
+---@param near System.Single
+---@param far System.Single
+---@param category System.String
+---@param muffle? System.Boolean
+---@return Barotrauma.Sounds.SoundChannel
+_G['SoundChannel'].__new = function(sound, gain, position, freqMult, near, far, category, muffle) end
+
diff --git a/Meta/Types/client/_00007FFD97EEE670.lua b/Meta/Types/client/_00007FFD97EEE670.lua
new file mode 100644
index 0000000..fcf1d2d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEE670.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.RoundSound : System.Object
+---`Field Public Instance`
+---@field Sound Barotrauma.Sounds.Sound
+---`Field Public Instance`
+---@field Volume System.Single
+---`Field Public Instance`
+---@field Range System.Single
+---`Field Public Instance`
+---@field FrequencyMultiplierRange Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Stream System.Boolean
+---`Field Public Instance`
+---@field IgnoreMuffling System.Boolean
+---`Field Public Instance`
+---@field Filename System.String
+---`Field Private Static`
+---@field roundSounds (System.Collections.Generic.List*1Barotrauma*RoundSound)|(Barotrauma.RoundSound[])
+---`Field Private Static`
+---@field roundSoundByPath (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RoundSound)|({[System.String]:(Barotrauma.RoundSound)})
+_G['RoundSound'] = {}
+
+---`Method Public Instance`
+---@return System.Single
+_G['RoundSound'].GetRandomFrequencyMultiplier = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param stream? System.Boolean
+---@return Barotrauma.RoundSound
+_G['RoundSound'].Load = function(element, stream) end
+
+---`Method Public Static`
+---@param roundSound Barotrauma.RoundSound
+_G['RoundSound'].Reload = function(roundSound) end
+
+---`Method Public Static`
+_G['RoundSound'].RemoveAllRoundSounds = function() end
+
+---`Constructor Private Instance`
+---@overload fun(element:Barotrauma.ContentXElement, sound:Barotrauma.Sounds.Sound):Barotrauma.RoundSound
+---@return Barotrauma.RoundSound
+_G['RoundSound'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(element:Barotrauma.ContentXElement, sound:Barotrauma.Sounds.Sound):Barotrauma.RoundSound
+---@return Barotrauma.RoundSound
+_G['RoundSound'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, sound:Barotrauma.Sounds.Sound):Barotrauma.RoundSound
+---@return Barotrauma.RoundSound
+_G['RoundSound'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, sound:Barotrauma.Sounds.Sound):Barotrauma.RoundSound
+---@return Barotrauma.RoundSound
+_G['RoundSound'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEE840.lua b/Meta/Types/client/_00007FFD97EEE840.lua
new file mode 100644
index 0000000..2ab2db2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEE840.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Items.Components.ItemSound : System.Object
+---`Field Public Instance`
+---@field RoundSound Barotrauma.RoundSound
+---`Field Public Instance`
+---@field Type Barotrauma.ActionType
+---`Field Public Instance`
+---@field VolumeProperty Barotrauma.Identifier
+---`Field Public Instance`
+---@field Loop System.Boolean
+---`Field Public Instance`
+---@field OnlyPlayInSameSub System.Boolean
+---`Getter Public Instance`
+---@field VolumeMultiplier System.Single
+---`Getter Public Instance`
+---@field Range System.Single
+_G['Components']['ItemSound'] = {}
+
+---`Constructor Public Instance`
+---@param sound Barotrauma.RoundSound
+---@param type Barotrauma.ActionType
+---@param loop? System.Boolean
+---@param onlyPlayInSameSub? System.Boolean
+---@return Barotrauma.Items.Components.ItemSound
+_G['Components']['ItemSound'] = function(sound, type, loop, onlyPlayInSameSub) end
+
+---`Constructor Public Instance`
+---@param sound Barotrauma.RoundSound
+---@param type Barotrauma.ActionType
+---@param loop? System.Boolean
+---@param onlyPlayInSameSub? System.Boolean
+---@return Barotrauma.Items.Components.ItemSound
+_G['Components']['ItemSound'].__new = function(sound, type, loop, onlyPlayInSameSub) end
+
diff --git a/Meta/Types/client/_00007FFD97EEEE68.lua b/Meta/Types/client/_00007FFD97EEEE68.lua
new file mode 100644
index 0000000..1d5ee4b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEEE68.lua
@@ -0,0 +1,206 @@
+---@meta
+---@class Barotrauma.SoundPlayer : System.Object
+---`Field Private Static`
+---@field currentMusic (Barotrauma.BackgroundMusic-arr)|(Barotrauma.BackgroundMusic[])
+---`Field Private Static`
+---@field musicChannel (Barotrauma.Sounds.SoundChannel-arr)|(Barotrauma.Sounds.SoundChannel[])
+---`Field Private Static`
+---@field targetMusic (Barotrauma.BackgroundMusic-arr)|(Barotrauma.BackgroundMusic[])
+---`Field Private Static`
+---@field previousDefaultMusic Barotrauma.BackgroundMusic
+---`Field Private Static`
+---@field updateMusicTimer System.Single
+---`Field Private Static`
+---@field waterAmbienceChannels (System.Collections.Generic.HashSet*1Barotrauma*Sounds*SoundChannel)|(Barotrauma.Sounds.SoundChannel[])
+---`Field Private Static`
+---@field ambientSoundTimer System.Single
+---`Field Private Static`
+---@field ambientSoundInterval Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field hullSoundChannel Barotrauma.Sounds.SoundChannel
+---`Field Private Static`
+---@field hullSoundSource Barotrauma.Hull
+---`Field Private Static`
+---@field hullSoundTimer System.Single
+---`Field Private Static`
+---@field hullSoundInterval Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field targetFlowLeft (System.Single-arr)|(System.Single[])
+---`Field Private Static`
+---@field targetFlowRight (System.Single-arr)|(System.Single[])
+---`Field Private Static`
+---@field flowSoundChannels (Barotrauma.Sounds.SoundChannel-arr)|(Barotrauma.Sounds.SoundChannel[])
+---`Field Private Static`
+---@field flowVolumeLeft (System.Single-arr)|(System.Single[])
+---`Field Private Static`
+---@field flowVolumeRight (System.Single-arr)|(System.Single[])
+---`Field Private Static`
+---@field fireSoundChannels (Barotrauma.Sounds.SoundChannel-arr)|(Barotrauma.Sounds.SoundChannel[])
+---`Field Private Static`
+---@field fireVolumeLeft (System.Single-arr)|(System.Single[])
+---`Field Private Static`
+---@field fireVolumeRight (System.Single-arr)|(System.Single[])
+---`Field Private Static`
+---@field fireSoundTags (System.String-arr)|(System.String[])
+---`Field Private Static`
+---@field firstTimeInMainMenu System.Boolean
+---`Field Public Static`
+---@field OverrideMusicDuration System.Nullable*1System*Single
+---`Field Private Static`
+---@field lastMusicLogTime System.Double
+---`Field Private Static`
+---@field MusicLerpSpeed System.Single
+---`Field Private Static`
+---@field UpdateMusicInterval System.Single
+---`Field Public Static`
+---@field MuffleFilterFrequency System.Single
+---`Field Private Static`
+---@field MaxMusicChannels System.Int32
+---`Field Private Static`
+---@field FlowSoundRange System.Single
+---`Field Private Static`
+---@field MaxFlowStrength System.Single
+---`Field Private Static`
+---@field FireSoundRange System.Single
+---`Field Private Static`
+---@field FireSoundMediumLimit System.Single
+---`Field Private Static`
+---@field FireSoundLargeLimit System.Single
+---`Field Private Static`
+---@field fireSizes System.Int32
+---`Field Private Static`
+---@field MusicLogInterval System.Double
+---`Getter Private Static`
+---@field musicClips (System.Collections.Generic.IEnumerable*1Barotrauma*BackgroundMusic)|(fun():(Barotrauma.BackgroundMusic))
+---`Getter Private Static`
+---@field waterAmbienceIn Barotrauma.SoundPrefab
+---`Getter Private Static`
+---@field waterAmbienceOut Barotrauma.SoundPrefab
+---`Getter Private Static`
+---@field waterAmbienceMoving Barotrauma.SoundPrefab
+---`Getter Public Static`
+---@field FlowSounds (System.Collections.Generic.IReadOnlyList*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])
+---`Getter Public Static`
+---@field SplashSounds (System.Collections.Generic.IReadOnlyList*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])
+---`Getter Private Static`
+---@field damageSounds (System.Collections.Generic.IEnumerable*1Barotrauma*DamageSound)|(fun():(Barotrauma.DamageSound))
+---`Getter Private Static`
+---@field startUpSound Barotrauma.Sounds.Sound
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field OverrideMusicType Barotrauma.Identifier
+_G['SoundPlayer'] = {}
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['SoundPlayer'].Update = function(deltaTime) end
+
+---`Method Private Static`
+---@param ambienceVolume System.Single
+---@param deltaTime System.Single
+_G['SoundPlayer'].UpdateWaterAmbience = function(ambienceVolume, deltaTime) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['SoundPlayer'].UpdateWaterFlowSounds = function(deltaTime) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['SoundPlayer'].UpdateFireSounds = function(deltaTime) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['SoundPlayer'].UpdateRandomAmbience = function(deltaTime) end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['SoundPlayer'].UpdateHullSounds = function(deltaTime) end
+
+---`Method Public Static`
+---@param soundTag System.String
+---@return Barotrauma.Sounds.Sound
+_G['SoundPlayer'].GetSound = function(soundTag) end
+
+---`Method Public Static`
+---@overload fun(soundTag:System.String, volume?:System.Single):(Barotrauma.Sounds.SoundChannel)
+---@overload fun(soundTag:System.String, position:Microsoft.Xna.Framework.Vector2, volume?:System.Nullable*1System*Single, range?:System.Nullable*1System*Single, hullGuess?:Barotrauma.Hull):(Barotrauma.Sounds.SoundChannel)
+---@param sound Barotrauma.Sounds.Sound
+---@param position Microsoft.Xna.Framework.Vector2
+---@param volume? System.Nullable*1System*Single
+---@param range? System.Nullable*1System*Single
+---@param freqMult? System.Nullable*1System*Single
+---@param hullGuess? Barotrauma.Hull
+---@param ignoreMuffling? System.Boolean
+---@return Barotrauma.Sounds.SoundChannel
+_G['SoundPlayer'].PlaySound = function(sound, position, volume, range, freqMult, hullGuess, ignoreMuffling) end
+
+---`Method Public Static`
+_G['SoundPlayer'].DisposeDisabledMusic = function() end
+
+---`Method Public Static`
+_G['SoundPlayer'].ForceMusicUpdate = function() end
+
+---`Method Private Static`
+---@param deltaTime System.Single
+_G['SoundPlayer'].UpdateMusic = function(deltaTime) end
+
+---`Method Private Static`
+_G['SoundPlayer'].LogCurrentMusic = function() end
+
+---`Method Private Static`
+---@param index System.Int32
+_G['SoundPlayer'].DisposeMusicChannel = function(index) end
+
+---`Method Private Static`
+---@param musicType Barotrauma.Identifier
+---@param currentIntensity System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*BackgroundMusic)|(fun():(Barotrauma.BackgroundMusic))
+_G['SoundPlayer'].GetSuitableMusicClips = function(musicType, currentIntensity) end
+
+---`Method Private Static`
+---@param music Barotrauma.BackgroundMusic
+---@param musicType Barotrauma.Identifier
+---@param currentIntensity System.Single
+---@return System.Boolean
+_G['SoundPlayer'].IsSuitableMusicClip = function(music, musicType, currentIntensity) end
+
+---`Method Private Static`
+---@return Barotrauma.Identifier
+_G['SoundPlayer'].GetCurrentMusicType = function() end
+
+---`Method Public Static`
+---@param listener Barotrauma.Character
+---@param soundWorldPos Microsoft.Xna.Framework.Vector2
+---@param range System.Single
+---@param hullGuess Barotrauma.Hull
+---@return System.Boolean
+_G['SoundPlayer'].ShouldMuffleSound = function(listener, soundWorldPos, range, hullGuess) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param strength System.Single
+_G['SoundPlayer'].PlaySplashSound = function(worldPosition, strength) end
+
+---`Method Public Static`
+---@overload fun(damageType:System.String, damage:System.Single, body:Barotrauma.PhysicsBody)
+---@param damageType System.String
+---@param damage System.Single
+---@param position Microsoft.Xna.Framework.Vector2
+---@param range? System.Single
+---@param tags? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param gain? System.Single
+_G['SoundPlayer'].PlayDamageSound = function(damageType, damage, position, range, tags, gain) end
+
+---`Method Public Static`
+---@overload fun(soundType:Barotrauma.GUISoundType)
+---@param soundType System.Nullable*1Barotrauma*GUISoundType
+_G['SoundPlayer'].PlayUISound = function(soundType) end
+
+---`Constructor Private Static`
+---@return Barotrauma.SoundPlayer
+_G['SoundPlayer'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.SoundPlayer
+_G['SoundPlayer'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEF2D0.lua b/Meta/Types/client/_00007FFD97EEF2D0.lua
new file mode 100644
index 0000000..219cd9c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEF2D0.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Sounds.LowpassFilter : Barotrauma.Sounds.BiQuad
+_G['Sounds']['LowpassFilter'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Sounds']['LowpassFilter'].CalculateBiQuadCoefficients = function() end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.LowpassFilter
+_G['Sounds']['LowpassFilter'] = function(sampleRate, frequency) end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.LowpassFilter
+_G['Sounds']['LowpassFilter'].__new = function(sampleRate, frequency) end
+
diff --git a/Meta/Types/client/_00007FFD97EEF410.lua b/Meta/Types/client/_00007FFD97EEF410.lua
new file mode 100644
index 0000000..78a8bf9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEF410.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Sounds.HighpassFilter : Barotrauma.Sounds.BiQuad
+_G['Sounds']['HighpassFilter'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Sounds']['HighpassFilter'].CalculateBiQuadCoefficients = function() end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.HighpassFilter
+_G['Sounds']['HighpassFilter'] = function(sampleRate, frequency) end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.HighpassFilter
+_G['Sounds']['HighpassFilter'].__new = function(sampleRate, frequency) end
+
diff --git a/Meta/Types/client/_00007FFD97EEF550.lua b/Meta/Types/client/_00007FFD97EEF550.lua
new file mode 100644
index 0000000..7030fa5
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEF550.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Sounds.BandpassFilter : Barotrauma.Sounds.BiQuad
+_G['Sounds']['BandpassFilter'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Sounds']['BandpassFilter'].CalculateBiQuadCoefficients = function() end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.BandpassFilter
+_G['Sounds']['BandpassFilter'] = function(sampleRate, frequency) end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.BandpassFilter
+_G['Sounds']['BandpassFilter'].__new = function(sampleRate, frequency) end
+
diff --git a/Meta/Types/client/_00007FFD97EEF690.lua b/Meta/Types/client/_00007FFD97EEF690.lua
new file mode 100644
index 0000000..e016996
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEF690.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Sounds.NotchFilter : Barotrauma.Sounds.BiQuad
+_G['Sounds']['NotchFilter'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Sounds']['NotchFilter'].CalculateBiQuadCoefficients = function() end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.NotchFilter
+_G['Sounds']['NotchFilter'] = function(sampleRate, frequency) end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@return Barotrauma.Sounds.NotchFilter
+_G['Sounds']['NotchFilter'].__new = function(sampleRate, frequency) end
+
diff --git a/Meta/Types/client/_00007FFD97EEF7D0.lua b/Meta/Types/client/_00007FFD97EEF7D0.lua
new file mode 100644
index 0000000..245a50e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEF7D0.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Sounds.HighShelfFilter : Barotrauma.Sounds.BiQuad
+_G['Sounds']['HighShelfFilter'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Sounds']['HighShelfFilter'].CalculateBiQuadCoefficients = function() end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@param gainDB System.Double
+---@return Barotrauma.Sounds.HighShelfFilter
+_G['Sounds']['HighShelfFilter'] = function(sampleRate, frequency, gainDB) end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@param gainDB System.Double
+---@return Barotrauma.Sounds.HighShelfFilter
+_G['Sounds']['HighShelfFilter'].__new = function(sampleRate, frequency, gainDB) end
+
diff --git a/Meta/Types/client/_00007FFD97EEF910.lua b/Meta/Types/client/_00007FFD97EEF910.lua
new file mode 100644
index 0000000..7fbe349
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEF910.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Sounds.LowShelfFilter : Barotrauma.Sounds.BiQuad
+_G['Sounds']['LowShelfFilter'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Sounds']['LowShelfFilter'].CalculateBiQuadCoefficients = function() end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@param gainDB System.Double
+---@return Barotrauma.Sounds.LowShelfFilter
+_G['Sounds']['LowShelfFilter'] = function(sampleRate, frequency, gainDB) end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@param gainDB System.Double
+---@return Barotrauma.Sounds.LowShelfFilter
+_G['Sounds']['LowShelfFilter'].__new = function(sampleRate, frequency, gainDB) end
+
diff --git a/Meta/Types/client/_00007FFD97EEFA50.lua b/Meta/Types/client/_00007FFD97EEFA50.lua
new file mode 100644
index 0000000..865908b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEFA50.lua
@@ -0,0 +1,23 @@
+---@meta
+---@class Barotrauma.Sounds.PeakFilter : Barotrauma.Sounds.BiQuad
+_G['Sounds']['PeakFilter'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Sounds']['PeakFilter'].CalculateBiQuadCoefficients = function() end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@param bandWidth System.Double
+---@param peakGainDB System.Double
+---@return Barotrauma.Sounds.PeakFilter
+_G['Sounds']['PeakFilter'] = function(sampleRate, frequency, bandWidth, peakGainDB) end
+
+---`Constructor Public Instance`
+---@param sampleRate System.Int32
+---@param frequency System.Double
+---@param bandWidth System.Double
+---@param peakGainDB System.Double
+---@return Barotrauma.Sounds.PeakFilter
+_G['Sounds']['PeakFilter'].__new = function(sampleRate, frequency, bandWidth, peakGainDB) end
+
diff --git a/Meta/Types/client/_00007FFD97EEFC50.lua b/Meta/Types/client/_00007FFD97EEFC50.lua
new file mode 100644
index 0000000..348089a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEFC50.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.CampaignEndScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field creditsPlayer Barotrauma.CreditsPlayer
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Public Instance`
+---@field OnFinished (System.Action)|(fun())
+---`Field NonPublic Instance`
+---@field slideshowPlayer Barotrauma.SlideshowPlayer
+_G['CampaignEndScreen'] = {}
+
+---`Method Public Instance Virtual`
+_G['CampaignEndScreen'].Select = function() end
+
+---`Method Public Instance Virtual`
+_G['CampaignEndScreen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['CampaignEndScreen'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CampaignEndScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CampaignEndScreen
+_G['CampaignEndScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CampaignEndScreen
+_G['CampaignEndScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EEFE40.lua b/Meta/Types/client/_00007FFD97EEFE40.lua
new file mode 100644
index 0000000..4c55899
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EEFE40.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.EditorScreen : Barotrauma.Screen
+---`Field Public Static`
+---@field BackgroundColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---@field IsEditor System.Boolean
+_G['EditorScreen'] = {}
+
+---`Method Public Instance Virtual`
+_G['EditorScreen'].Deselect = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['EditorScreen'].DeselectEditorSpecific = function() end
+
+---`Method Public Instance`
+_G['EditorScreen'].CreateBackgroundColorPicker = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.EditorScreen
+---@return Barotrauma.EditorScreen
+_G['EditorScreen'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.EditorScreen
+---@return Barotrauma.EditorScreen
+_G['EditorScreen'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.EditorScreen
+---@return Barotrauma.EditorScreen
+_G['EditorScreen'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.EditorScreen
+---@return Barotrauma.EditorScreen
+_G['EditorScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF0400.lua b/Meta/Types/client/_00007FFD97EF0400.lua
new file mode 100644
index 0000000..bcc3fd9
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF0400.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.EventEditorScreen : Barotrauma.EditorScreen
+---`Field Private Instance`
+---@field GuiFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field selectedNodes (System.Collections.Generic.List*1Barotrauma*EditorNode)|(Barotrauma.EditorNode[])
+---`Field Private Instance`
+---@field draggedNode Barotrauma.EditorNode
+---`Field Private Instance`
+---@field dragOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field markedNodes (System.Collections.Generic.Dictionary*1Barotrauma*EditorNode*1Microsoft*Xna*Framework*Vector2)|({[Barotrauma.EditorNode]:(Microsoft.Xna.Framework.Vector2)})
+---`Field Private Instance`
+---@field lastTestParam Barotrauma.OutpostGenerationParams
+---`Field Private Instance`
+---@field lastTestType Barotrauma.LocationType
+---`Field Private Instance`
+---@field isTraitorEventBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field screenResolution Microsoft.Xna.Framework.Point
+---`Field Public Static`
+---@field nodeList (System.Collections.Generic.List*1Barotrauma*EditorNode)|(Barotrauma.EditorNode[])
+---`Field Public Static`
+---@field DraggingPosition Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field DraggedConnection Barotrauma.EventEditorNodeConnection
+---`Field Private Static`
+---@field projectName System.String
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field DrawnTooltip System.String
+_G['EventEditorScreen'] = {}
+
+---`Method Private Static`
+---@return System.Int32
+_G['EventEditorScreen'].CreateID = function() end
+
+---`Method Private Instance`
+_G['EventEditorScreen'].CreateGUI = function() end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param o System.Object
+---@return System.Boolean
+_G['EventEditorScreen'].ExportEventToFile = function(button, o) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param o System.Object
+---@return System.Boolean
+_G['EventEditorScreen'].TryCreateNewProject = function(button, o) end
+
+---`Method Public Static`
+---@param header Barotrauma.LocalizedString
+---@param body Barotrauma.LocalizedString
+---@param onConfirm (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---@param overrideConfirmButtonSound? System.Nullable*1Barotrauma*GUISoundType
+---@return Barotrauma.GUIMessageBox
+_G['EventEditorScreen'].AskForConfirmation = function(header, body, onConfirm, overrideConfirmButtonSound) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param o System.Object
+---@return System.Boolean
+_G['EventEditorScreen'].SaveProjectToFile = function(button, o) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.EventPrefab
+---@return System.Boolean
+_G['EventEditorScreen'].Load = function(prefab) end
+
+---`Method Private Static`
+---@param saveElement System.Xml.Linq.XElement
+_G['EventEditorScreen'].Load = function(saveElement) end
+
+---`Method Private Instance`
+---@param type System.Type
+---@return System.Boolean
+_G['EventEditorScreen'].AddAction = function(type) end
+
+---`Method Private Instance`
+---@param type System.Type
+---@return System.Boolean
+_G['EventEditorScreen'].AddValue = function(type) end
+
+---`Method Private Instance`
+---@param type System.Type
+---@return System.Boolean
+_G['EventEditorScreen'].AddSpecial = function(type) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param hadNodes System.Boolean-ref
+---@param parent? Barotrauma.EditorNode
+---@param ident? System.Int32
+_G['EventEditorScreen'].CreateNodes = function(element, hadNodes, parent, ident) end
+
+---`Method Private Static`
+---@param x System.Single
+---@param y System.Single
+---@param parent Barotrauma.GUIComponent
+---@param anchor? Barotrauma.Anchor
+---@return Barotrauma.RectTransform
+_G['EventEditorScreen'].RectTransform = function(x, y, parent, anchor) end
+
+---`Method Public Instance Virtual`
+_G['EventEditorScreen'].Select = function() end
+
+---`Method Public Instance Virtual`
+_G['EventEditorScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Static`
+---@param value System.String
+---@param type System.Type
+---@return System.Object
+_G['EventEditorScreen'].ChangeType = function(value, type) end
+
+---`Method Private Instance`
+---@return System.Xml.Linq.XElement
+_G['EventEditorScreen'].ExportXML = function() end
+
+---`Method Private Instance`
+---@param startNode Barotrauma.EditorNode
+---@param parent System.Xml.Linq.XElement
+_G['EventEditorScreen'].ExportChildNodes = function(startNode, parent) end
+
+---`Method Private Static`
+---@param name System.String
+---@return System.Xml.Linq.XElement
+_G['EventEditorScreen'].SaveEvent = function(name) end
+
+---`Method Private Static`
+---@param node Barotrauma.EditorNode
+---@param connection? Barotrauma.EventEditorNodeConnection
+_G['EventEditorScreen'].CreateContextMenu = function(node, connection) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['EventEditorScreen'].CreateTestSetupMenu = function() end
+
+---`Method Private Static`
+---@param node Barotrauma.ValueNode
+---@param connection? Barotrauma.EventEditorNodeConnection
+_G['EventEditorScreen'].CreateEditMenu = function(node, connection) end
+
+---`Method Private Instance`
+---@param param Barotrauma.OutpostGenerationParams
+---@param type Barotrauma.LocationType
+---@return System.Boolean
+_G['EventEditorScreen'].TestEvent = function(param, type) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['EventEditorScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['EventEditorScreen'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.EventEditorScreen
+---@return Barotrauma.EventEditorScreen
+_G['EventEditorScreen'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.EventEditorScreen
+---@return Barotrauma.EventEditorScreen
+_G['EventEditorScreen'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.EventEditorScreen
+---@return Barotrauma.EventEditorScreen
+_G['EventEditorScreen'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.EventEditorScreen
+---@return Barotrauma.EventEditorScreen
+_G['EventEditorScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF0960.lua b/Meta/Types/client/_00007FFD97EF0960.lua
new file mode 100644
index 0000000..86bff09
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF0960.lua
@@ -0,0 +1,138 @@
+---@meta
+---@class Barotrauma.LevelEditorScreen : Barotrauma.EditorScreen
+---`Field Private Instance`
+---@field leftPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field rightPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field bottomPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field topPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field selectedParams Barotrauma.LevelGenerationParams
+---`Field Private Instance`
+---@field selectedRuinGenerationParams Barotrauma.RuinGeneration.RuinGenerationParams
+---`Field Private Instance`
+---@field selectedOutpostGenerationParams Barotrauma.OutpostGenerationParams
+---`Field Private Instance`
+---@field selectedLevelObject Barotrauma.LevelObjectPrefab
+---`Field Private Instance`
+---@field paramsList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field ruinParamsList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field caveParamsList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field outpostParamsList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field levelObjectList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field editorContainer Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field spriteEditDoneButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field seedBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field lightingEnabled Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field cursorLightEnabled Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field allowInvalidOutpost Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field mirrorLevel Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field selectedSubDropDown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field selectedBeaconStationDropdown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field selectedWreckDropdown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field forceDifficultyInput Barotrauma.GUINumberInput
+---`Field Private Instance`
+---@field editingSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field pointerLightSource Barotrauma.Lights.LightSource
+---`Field Private Instance`
+---@field tunnelDebugColors (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Private Instance`
+---@field currentLevelData Barotrauma.LevelData
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+_G['LevelEditorScreen'] = {}
+
+---`Method Private Instance`
+---@param forceCreate? System.Boolean
+_G['LevelEditorScreen'].RefreshUI = function(forceCreate) end
+
+---`Method Private Instance`
+_G['LevelEditorScreen'].CreateUI = function() end
+
+---`Method Public Instance`
+---@param amountOfLevelsToGenerate System.Int32
+_G['LevelEditorScreen'].TestLevelGenerationForErrors = function(amountOfLevelsToGenerate) end
+
+---`Method Public Instance Virtual`
+_G['LevelEditorScreen'].Select = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['LevelEditorScreen'].DeselectEditorSpecific = function() end
+
+---`Method Private Instance`
+_G['LevelEditorScreen'].UpdateParamsList = function() end
+
+---`Method Private Instance`
+_G['LevelEditorScreen'].UpdateCaveParamsList = function() end
+
+---`Method Private Instance`
+_G['LevelEditorScreen'].UpdateRuinParamsList = function() end
+
+---`Method Private Instance`
+_G['LevelEditorScreen'].UpdateOutpostParamsList = function() end
+
+---`Method Private Instance`
+_G['LevelEditorScreen'].UpdateLevelObjectsList = function() end
+
+---`Method Private Instance`
+---@param caveGenerationParams Barotrauma.CaveGenerationParams
+_G['LevelEditorScreen'].CreateCaveParamsEditor = function(caveGenerationParams) end
+
+---`Method Private Instance`
+---@param outpostGenerationParams Barotrauma.OutpostGenerationParams
+_G['LevelEditorScreen'].CreateOutpostGenerationParamsEditor = function(outpostGenerationParams) end
+
+---`Method Private Instance`
+---@param levelObjectPrefab Barotrauma.LevelObjectPrefab
+_G['LevelEditorScreen'].CreateLevelObjectEditor = function(levelObjectPrefab) end
+
+---`Method Private Instance`
+---@param levelData Barotrauma.LevelData
+_G['LevelEditorScreen'].SortLevelObjectsList = function(levelData) end
+
+---`Method Public Instance Virtual`
+_G['LevelEditorScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['LevelEditorScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['LevelEditorScreen'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['LevelEditorScreen'].SerializeAll = function() end
+
+---`Method Private Instance`
+---@param genParams Barotrauma.LevelGenerationParams
+_G['LevelEditorScreen'].Serialize = function(genParams) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LevelEditorScreen
+_G['LevelEditorScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LevelEditorScreen
+_G['LevelEditorScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF1848.lua b/Meta/Types/client/_00007FFD97EF1848.lua
new file mode 100644
index 0000000..fcfb63c
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF1848.lua
@@ -0,0 +1,232 @@
+---@meta
+---@class Barotrauma.MainMenuScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field buttonsParent Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field menuTabs (System.Collections.Generic.Dictionary*1Barotrauma*MainMenuScreen*Tab*1Barotrauma*GUIFrame)|({[Barotrauma.MainMenuScreen.Tab]:(Barotrauma.GUIFrame)})
+---`Field Private Instance`
+---@field campaignSetupUI Barotrauma.SinglePlayerCampaignSetupUI
+---`Field Private Instance`
+---@field serverNameBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field passwordBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field maxPlayersBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field isPublicBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field wrongPasswordBanBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field karmaBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field languageDropdown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field serverExecutableDropdown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field joinServerButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field hostServerButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field modsButtonContainer Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field modsButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field modUpdatesButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field modUpdateStatus System.ValueTuple*1System*DateTime*1System*Int32
+---`Field Private Instance`
+---@field game Barotrauma.GameMain
+---`Field Private Instance`
+---@field playstyleBanner Barotrauma.GUIImage
+---`Field Private Instance`
+---@field playstyleDescription Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field remoteContentContainer Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field remoteContentDoc System.Xml.Linq.XDocument
+---`Field Private Instance`
+---@field selectedTab Barotrauma.MainMenuScreen.Tab
+---`Field Private Instance`
+---@field backgroundSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field titleText Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field creditsPlayer Barotrauma.CreditsPlayer
+---`Field Private Instance`
+---@field tutorialBanner Barotrauma.GUIImage
+---`Field Private Instance`
+---@field tutorialHeader Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field tutorialDescription Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field tutorialList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field gameAnalyticsStatusText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field leftTextFooterLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field rightTextFooterLayout Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field versionMismatchWarning Barotrauma.GUIComponent
+---`Field Private Static`
+---@field ModUpdateInterval System.TimeSpan
+---`Field Public Static`
+---@field WorkshopItemsToUpdate (System.Collections.Generic.Queue*1System*UInt64)|(fun():(System.UInt64))
+---`Getter Private Static`
+---@field RemoteContentUrl System.String
+_G['MainMenuScreen'] = {}
+
+---`Method Private Instance`
+_G['MainMenuScreen'].SetMenuTabPositioning = function() end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].CreateTutorialTab = function() end
+
+---`Method Private Instance`
+---@param tutorial Barotrauma.Tutorials.Tutorial
+_G['MainMenuScreen'].SelectTutorial = function(tutorial) end
+
+---`Method Public Static`
+_G['MainMenuScreen'].UpdateInstanceTutorialButtons = function() end
+
+---`Method Public Instance Virtual`
+_G['MainMenuScreen'].Select = function() end
+
+---`Method Public Instance Virtual`
+_G['MainMenuScreen'].Deselect = function() end
+
+---`Method Private Instance`
+---@overload fun(button:Barotrauma.GUIButton, obj:System.Object):(System.Boolean)
+---@param tab Barotrauma.MainMenuScreen.Tab
+---@return System.Boolean
+_G['MainMenuScreen'].SelectTab = function(tab) end
+
+---`Method Private Instance`
+---@param screen Barotrauma.Screen
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['MainMenuScreen'].SelectScreenWithWaitCursor = function(screen) end
+
+---`Method Public Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['MainMenuScreen'].ReturnToMainMenu = function(button, obj) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+_G['MainMenuScreen'].ResetButtonStates = function(button) end
+
+---`Method Public Instance`
+_G['MainMenuScreen'].ResetModUpdateButton = function() end
+
+---`Method Public Instance`
+---@param fixedSeed? System.Boolean
+---@param sub? Barotrauma.Identifier
+---@param difficulty? System.Single
+---@param levelGenerationParams? Barotrauma.LevelGenerationParams
+_G['MainMenuScreen'].QuickStart = function(fixedSeed, sub, difficulty, levelGenerationParams) end
+
+---`Method Private Instance`
+---@param tabToContinueTo Barotrauma.MainMenuScreen.Tab
+_G['MainMenuScreen'].ShowTutorialSkipWarning = function(tabToContinueTo) end
+
+---`Method Public Instance Virtual`
+_G['MainMenuScreen'].AddToGUIUpdateList = function() end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].UpdateTutorialList = function() end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['MainMenuScreen'].ChangeMaxPlayers = function(button, obj) end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].TryStartServer = function() end
+
+---`Method Private Instance`
+---@param messageBox Barotrauma.GUIMessageBox
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['MainMenuScreen'].WaitForSubmarineHashCalculations = function(messageBox) end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].StartServer = function() end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['MainMenuScreen'].QuitClicked = function(button, obj) end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].UpdateOutOfDateWorkshopItemCount = function() end
+
+---`Method Private Static`
+---@return System.Boolean
+_G['MainMenuScreen'].CanHostServer = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['MainMenuScreen'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['MainMenuScreen'].DrawBackground = function(graphics, spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['MainMenuScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Private Instance`
+---@param selectedSub Barotrauma.SubmarineInfo
+---@param savePath System.String
+---@param mapSeed System.String
+---@param settings Barotrauma.CampaignSettings
+_G['MainMenuScreen'].StartGame = function(selectedSub, savePath, mapSeed, settings) end
+
+---`Method Private Instance`
+---@param path System.String
+---@param backupIndex Barotrauma.Option*1System*UInt32
+_G['MainMenuScreen'].LoadGame = function(path, backupIndex) end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].CreateCampaignSetupUI = function() end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].CreateHostServerFields = function() end
+
+---`Method Private Instance`
+---@param playStyle Barotrauma.Networking.PlayStyle
+_G['MainMenuScreen'].SetServerPlayStyle = function(playStyle) end
+
+---`Method Private Instance`
+_G['MainMenuScreen'].FetchRemoteContent = function() end
+
+---`Method Private Instance`
+---@param t System.Threading.Tasks.Task
+_G['MainMenuScreen'].RemoteContentReceived = function(t) end
+
+---`Constructor Public Instance`
+---@overload fun(game:Barotrauma.GameMain):Barotrauma.MainMenuScreen
+---@return Barotrauma.MainMenuScreen
+_G['MainMenuScreen'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(game:Barotrauma.GameMain):Barotrauma.MainMenuScreen
+---@return Barotrauma.MainMenuScreen
+_G['MainMenuScreen'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(game:Barotrauma.GameMain):Barotrauma.MainMenuScreen
+---@return Barotrauma.MainMenuScreen
+_G['MainMenuScreen'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(game:Barotrauma.GameMain):Barotrauma.MainMenuScreen
+---@return Barotrauma.MainMenuScreen
+_G['MainMenuScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF1BD0.lua b/Meta/Types/client/_00007FFD97EF1BD0.lua
new file mode 100644
index 0000000..7c806f8
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF1BD0.lua
@@ -0,0 +1,83 @@
+---@meta
+---@class Barotrauma.ParticleEditorScreen : Barotrauma.EditorScreen
+---`Field Private Instance`
+---@field rightPanel Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field leftPanel Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field prefabList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field filterBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field filterLabel Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field selectedPrefab Barotrauma.Particles.ParticlePrefab
+---`Field Private Instance`
+---@field emitterProperties Barotrauma.Particles.ParticleEmitterProperties
+---`Field Private Instance`
+---@field emitterPrefab Barotrauma.Particles.ParticleEmitterPrefab
+---`Field Private Instance`
+---@field emitter Barotrauma.Particles.ParticleEmitter
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field sizeReference Microsoft.Xna.Framework.Graphics.Texture2D
+---`Field Private Instance`
+---@field sizeRefPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field sizeRefOrigin Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field sizeRefEnabled System.Boolean
+---`Field Private Static`
+---@field sizeRefFilePath System.String
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+_G['ParticleEditorScreen'] = {}
+
+---`Method Private Instance`
+_G['ParticleEditorScreen'].CreateUI = function() end
+
+---`Method Public Instance Virtual`
+_G['ParticleEditorScreen'].Select = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['ParticleEditorScreen'].DeselectEditorSpecific = function() end
+
+---`Method Private Instance`
+_G['ParticleEditorScreen'].RefreshPrefabList = function() end
+
+---`Method Private Instance`
+---@param text System.String
+_G['ParticleEditorScreen'].FilterEmitters = function(text) end
+
+---`Method Private Instance`
+_G['ParticleEditorScreen'].SerializeAll = function() end
+
+---`Method Private Instance`
+_G['ParticleEditorScreen'].SerializeEmitterToClipboard = function() end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.Particles.ParticlePrefab
+_G['ParticleEditorScreen'].SerializeToClipboard = function(prefab) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['ParticleEditorScreen'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['ParticleEditorScreen'].CreateContextMenu = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['ParticleEditorScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.ParticleEditorScreen
+_G['ParticleEditorScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.ParticleEditorScreen
+_G['ParticleEditorScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF1E08.lua b/Meta/Types/client/_00007FFD97EF1E08.lua
new file mode 100644
index 0000000..9a75a8b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF1E08.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.RoundSummaryScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field backgroundSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field roundSummary Barotrauma.RoundSummary
+---`Field Private Instance`
+---@field loadText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field prevGuiElementParent Barotrauma.RectTransform
+---`Field Public Instance`
+---@field LoadException System.Exception
+_G['RoundSummaryScreen'] = {}
+
+---`Method Public Static`
+---@param backgroundSprite Barotrauma.Sprite
+---@param roundSummary Barotrauma.RoundSummary
+---@return Barotrauma.RoundSummaryScreen
+_G['RoundSummaryScreen'].Select = function(backgroundSprite, roundSummary) end
+
+---`Method Public Instance Virtual`
+_G['RoundSummaryScreen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['RoundSummaryScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['RoundSummaryScreen'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.RoundSummaryScreen
+_G['RoundSummaryScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.RoundSummaryScreen
+_G['RoundSummaryScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF2A60.lua b/Meta/Types/client/_00007FFD97EF2A60.lua
new file mode 100644
index 0000000..fb563f2
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF2A60.lua
@@ -0,0 +1,263 @@
+---@meta
+---@class Barotrauma.ServerListScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field lastRefreshTime System.DateTime
+---`Field Private Instance`
+---@field menu Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field serverList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field panelAnimator Barotrauma.PanelAnimator
+---`Field Private Instance`
+---@field serverPreviewContainer Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field serverPreview Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field joinButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field selectedServer Barotrauma.Option*1Barotrauma*Networking*ServerInfo
+---`Field Private Instance`
+---@field scanServersButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field tabs (System.Collections.Generic.Dictionary*1Barotrauma*ServerListScreen*TabEnum*1Barotrauma*ServerListScreen*Tab)|({[Barotrauma.ServerListScreen.TabEnum]:(Barotrauma.ServerListScreen.Tab)})
+---`Field Private Instance`
+---@field _selectedTabBackingField Barotrauma.ServerListScreen.TabEnum
+---`Field Private Instance`
+---@field serverProvider Barotrauma.ServerProvider
+---`Field Private Instance`
+---@field labelHolder Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field labelTexts (System.Collections.Generic.List*1Barotrauma*GUITextBlock)|(Barotrauma.GUITextBlock[])
+---`Field Private Instance`
+---@field searchBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field filterSameVersion Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field filterPassword Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field filterFull Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field filterEmpty Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field languageDropdown Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field ternaryFilters (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUIDropDown)|({[Barotrauma.Identifier]:(Barotrauma.GUIDropDown)})
+---`Field Private Instance`
+---@field filterTickBoxes (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUITickBox)|({[Barotrauma.Identifier]:(Barotrauma.GUITickBox)})
+---`Field Private Instance`
+---@field playStyleTickBoxes (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUITickBox)|({[Barotrauma.Identifier]:(Barotrauma.GUITickBox)})
+---`Field Private Instance`
+---@field gameModeTickBoxes (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUITickBox)|({[Barotrauma.Identifier]:(Barotrauma.GUITickBox)})
+---`Field Private Instance`
+---@field filterOffensive Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field filterFriendlyFireValue Barotrauma.ServerListScreen.TernaryOption
+---`Field Private Instance`
+---@field filterKarmaValue Barotrauma.ServerListScreen.TernaryOption
+---`Field Private Instance`
+---@field filterTraitorValue Barotrauma.ServerListScreen.TernaryOption
+---`Field Private Instance`
+---@field filterVoipValue Barotrauma.ServerListScreen.TernaryOption
+---`Field Private Instance`
+---@field filterModdedValue Barotrauma.ServerListScreen.TernaryOption
+---`Field Private Instance`
+---@field sortedBy Barotrauma.ServerListScreen.ColumnLabel
+---`Field Private Instance`
+---@field sortedAscending System.Boolean
+---`Field Private Instance`
+---@field currentServerDataRecvCallbackObj System.Object
+---`Field Private Instance`
+---@field loadingServerFilters System.Boolean
+---`Field Private Static`
+---@field AllowedRefreshInterval System.TimeSpan
+---`Field Private Static`
+---@field columns (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*ServerListScreen*ColumnLabel*1Barotrauma*ServerListScreen*Column)|({[Barotrauma.ServerListScreen.ColumnLabel]:(Barotrauma.ServerListScreen.Column)})
+---`Field Private Static`
+---@field confirmPopupSize Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field confirmPopupMinSize Microsoft.Xna.Framework.Point
+---`Field Private Static`
+---@field sidebarWidth System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field selectedTab Barotrauma.ServerListScreen.TabEnum
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClientNameBox Barotrauma.GUITextBox
+---`Getter Private Instance`
+---@field AllLanguagesVisible System.Boolean
+_G['ServerListScreen'] = {}
+
+---`Method Private Static`
+---@return System.Threading.Tasks.Task*1System*String
+_G['ServerListScreen'].GetDefaultUserName = function() end
+
+---`Method Private Instance`
+---@param parent Barotrauma.RectTransform
+---@param elementHeight System.Single
+---@param tag Barotrauma.Identifier
+---@param valueSetter (System.Action*1Barotrauma*ServerListScreen*TernaryOption)|(fun(obj:Barotrauma.ServerListScreen.TernaryOption))
+_G['ServerListScreen'].AddTernaryFilter = function(parent, elementHeight, tag, valueSetter) end
+
+---`Method Private Instance`
+_G['ServerListScreen'].CreateUI = function() end
+
+---`Method Public Instance`
+---@param serverInfo Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].UpdateOrAddServerInfo = function(serverInfo) end
+
+---`Method Public Instance`
+---@param info Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].AddToRecentServers = function(info) end
+
+---`Method Public Instance`
+---@param info Barotrauma.Networking.ServerInfo
+---@return System.Boolean
+_G['ServerListScreen'].IsFavorite = function(info) end
+
+---`Method Public Instance`
+---@param info Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].AddToFavoriteServers = function(info) end
+
+---`Method Public Instance`
+---@param info Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].RemoveFromFavoriteServers = function(info) end
+
+---`Method Private Instance`
+---@overload fun(button:Barotrauma.GUIButton, obj:System.Object):(System.Boolean)
+---@param sortBy Barotrauma.ServerListScreen.ColumnLabel
+---@param toggle System.Boolean
+_G['ServerListScreen'].SortList = function(sortBy, toggle) end
+
+---`Method Public Instance`
+_G['ServerListScreen'].HideServerPreview = function() end
+
+---`Method Private Instance`
+---@param serverInfo Barotrauma.Networking.ServerInfo
+---@param component Barotrauma.GUIComponent
+_G['ServerListScreen'].InsertServer = function(serverInfo, component) end
+
+---`Method Private Static`
+---@param sortBy Barotrauma.ServerListScreen.ColumnLabel
+---@param s1 Barotrauma.Networking.ServerInfo
+---@param s2 Barotrauma.Networking.ServerInfo
+---@param ascending System.Boolean
+---@return System.Int32
+_G['ServerListScreen'].CompareServer = function(sortBy, s1, s2, ascending) end
+
+---`Method Public Instance Virtual`
+_G['ServerListScreen'].Select = function() end
+
+---`Method Public Instance Virtual`
+_G['ServerListScreen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['ServerListScreen'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+_G['ServerListScreen'].FilterServers = function() end
+
+---`Method Private Instance`
+---@param serverInfo Barotrauma.Networking.ServerInfo
+---@return System.Boolean
+_G['ServerListScreen'].ShouldShowServer = function(serverInfo) end
+
+---`Method Private Instance`
+_G['ServerListScreen'].ShowDirectJoinPrompt = function() end
+
+---`Method Private Instance`
+---@overload fun()
+---@param userData Barotrauma.ServerListScreen.MsgUserData
+_G['ServerListScreen'].RemoveMsgFromServerList = function(userData) end
+
+---`Method Private Instance`
+---@param userData Barotrauma.ServerListScreen.MsgUserData
+_G['ServerListScreen'].PutMsgInServerList = function(userData) end
+
+---`Method Private Instance`
+_G['ServerListScreen'].RefreshServers = function() end
+
+---`Method Private Instance`
+---@param serverInfo Barotrauma.Networking.ServerInfo
+---@return Barotrauma.GUIComponent
+_G['ServerListScreen'].FindFrameMatchingServerInfo = function(serverInfo) end
+
+---`Method Private Instance`
+---@return System.ValueTuple*1System*Action*2Barotrauma*Networking*ServerInfo*2Barotrauma*ServerProvider*1System*Action
+_G['ServerListScreen'].MakeServerQueryCallbacks = function() end
+
+---`Method Private Instance`
+---@param serverInfo Barotrauma.Networking.ServerInfo
+---@param skipPing? System.Boolean
+_G['ServerListScreen'].AddToServerList = function(serverInfo, skipPing) end
+
+---`Method Private Instance`
+---@param info Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].CreateContextMenu = function(info) end
+
+---`Method Public Static`
+---@param info Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].CreateFilterServerPrompt = function(info) end
+
+---`Method Public Static`
+---@param info Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].CreateReportPrompt = function(info) end
+
+---`Method Private Static`
+---@param info Barotrauma.Networking.ServerInfo
+---@param reasons (System.Collections.Generic.IEnumerable*1Barotrauma*ServerListScreen*ReportReason)|(fun():(Barotrauma.ServerListScreen.ReportReason))
+_G['ServerListScreen'].ReportServer = function(info, reasons) end
+
+---`Method Private Instance`
+---@param serverInfo Barotrauma.Networking.ServerInfo
+_G['ServerListScreen'].UpdateServerInfoUI = function(serverInfo) end
+
+---`Method Private Instance`
+_G['ServerListScreen'].ServerQueryFinished = function() end
+
+---`Method Public Instance`
+---@param endpoints (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint)|(Barotrauma.Networking.Endpoint[])
+---@param serverName System.String
+_G['ServerListScreen'].JoinServer = function(endpoints, serverName) end
+
+---`Method Private Static`
+---@param ping System.Int32
+---@return Microsoft.Xna.Framework.Color
+_G['ServerListScreen'].GetPingTextColor = function(ping) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['ServerListScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Public Instance Virtual`
+_G['ServerListScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance`
+_G['ServerListScreen'].StoreServerFilters = function() end
+
+---`Method Public Instance`
+_G['ServerListScreen'].LoadServerFilters = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.ServerListScreen
+---@return Barotrauma.ServerListScreen
+_G['ServerListScreen'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.ServerListScreen
+---@return Barotrauma.ServerListScreen
+_G['ServerListScreen'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ServerListScreen
+---@return Barotrauma.ServerListScreen
+_G['ServerListScreen'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ServerListScreen
+---@return Barotrauma.ServerListScreen
+_G['ServerListScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF5EB0.lua b/Meta/Types/client/_00007FFD97EF5EB0.lua
new file mode 100644
index 0000000..e78e56b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF5EB0.lua
@@ -0,0 +1,192 @@
+---@meta
+---@class Barotrauma.SpriteEditorScreen : Barotrauma.EditorScreen
+---`Field Private Instance`
+---@field textureList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field spriteList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field topPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field leftPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field rightPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field bottomPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field backgroundColorPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field drawGrid System.Boolean
+---`Field Private Instance`
+---@field snapToGrid System.Boolean
+---`Field Private Instance`
+---@field topPanelContents Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field texturePathText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field xmlPathText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field zoomBar Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field selectedSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field dirtySprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field lastSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field selectedTexturePath System.String
+---`Field Private Instance`
+---@field textureRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field zoom System.Single
+---`Field Private Instance`
+---@field filterSpritesBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field filterSpritesLabel Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field filterTexturesBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field filterTexturesLabel Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field originLabel Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field positionLabel Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field sizeLabel Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field editBackgroundColor System.Boolean
+---`Field Private Instance`
+---@field backgroundColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field loadedSprites (System.Collections.Generic.HashSet*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field holdTimer System.Double
+---`Field Private Instance`
+---@field holdTime System.Single
+---`Field Private Instance`
+---@field viewAreaOffset Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field widgets (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Widget)|({[System.String]:(Barotrauma.Widget)})
+---`Field Private Static`
+---@field MinZoom System.Single
+---`Field Private Static`
+---@field MaxZoom System.Single
+---`Getter Private Instance`
+---@field SelectedTexture Microsoft.Xna.Framework.Graphics.Texture2D
+---`Getter Private Instance`
+---@field ControlDown System.Boolean
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Public Instance`
+---@field TopPanel Barotrauma.GUIComponent
+---`Getter Private Instance`
+---@field GetViewArea Microsoft.Xna.Framework.Rectangle
+_G['SpriteEditorScreen'] = {}
+
+---`Method Private Instance`
+_G['SpriteEditorScreen'].CreateUI = function() end
+
+---`Method Private Instance`
+_G['SpriteEditorScreen'].LoadSprites = function() end
+
+---`Method Private Instance`
+---@param sprites (System.Collections.Generic.IEnumerable*1Barotrauma*Sprite)|(fun():(Barotrauma.Sprite))
+---@return System.Boolean
+_G['SpriteEditorScreen'].SaveSprites = function(sprites) end
+
+---`Method Public Instance Virtual`
+_G['SpriteEditorScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['SpriteEditorScreen'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param key Microsoft.Xna.Framework.Input.Keys
+_G['SpriteEditorScreen'].Nudge = function(key) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['SpriteEditorScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param gridArea Microsoft.Xna.Framework.Rectangle
+---@param zoom System.Single
+---@param gridSize Microsoft.Xna.Framework.Vector2
+_G['SpriteEditorScreen'].DrawGrid = function(spriteBatch, gridArea, zoom, gridSize) end
+
+---`Method Private Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param gridArea Microsoft.Xna.Framework.Rectangle
+---@param zoom System.Single
+---@param gridSize Microsoft.Xna.Framework.Vector2
+---@param tolerance System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['SpriteEditorScreen'].SnapToGrid = function(position, gridArea, zoom, gridSize, tolerance) end
+
+---`Method Private Instance`
+---@param text System.String
+_G['SpriteEditorScreen'].FilterTextures = function(text) end
+
+---`Method Private Instance`
+---@param text System.String
+_G['SpriteEditorScreen'].FilterSprites = function(text) end
+
+---`Method Public Instance Virtual`
+_G['SpriteEditorScreen'].Select = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['SpriteEditorScreen'].DeselectEditorSpecific = function() end
+
+---`Method Public Instance`
+---@param sprite Barotrauma.Sprite
+_G['SpriteEditorScreen'].SelectSprite = function(sprite) end
+
+---`Method Public Instance`
+_G['SpriteEditorScreen'].RefreshLists = function() end
+
+---`Method Public Instance`
+_G['SpriteEditorScreen'].ResetZoom = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['SpriteEditorScreen'].GetBarScrollValue = function() end
+
+---`Method Private Instance`
+---@param sprite Barotrauma.Sprite
+---@return System.String
+_G['SpriteEditorScreen'].GetSpriteName = function(sprite) end
+
+---`Method Private Instance`
+---@param listBox Barotrauma.GUIListBox
+_G['SpriteEditorScreen'].UpdateScrollBar = function(listBox) end
+
+---`Method Private Instance`
+---@param sprite Barotrauma.Sprite
+---@param newRect Microsoft.Xna.Framework.Rectangle
+_G['SpriteEditorScreen'].UpdateSourceRect = function(sprite, newRect) end
+
+---`Method Private Instance`
+---@param id System.String
+---@param sprite Barotrauma.Sprite
+---@param size? System.Int32
+---@param shape? Barotrauma.WidgetShape
+---@param initMethod? (System.Action*1Barotrauma*Widget)|(fun(obj:Barotrauma.Widget))
+---@return Barotrauma.Widget
+_G['SpriteEditorScreen'].GetWidget = function(id, sprite, size, shape, initMethod) end
+
+---`Method Private Instance`
+_G['SpriteEditorScreen'].ResetWidgets = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.SpriteEditorScreen
+_G['SpriteEditorScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.SpriteEditorScreen
+_G['SpriteEditorScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF7178.lua b/Meta/Types/client/_00007FFD97EF7178.lua
new file mode 100644
index 0000000..cf58b6d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF7178.lua
@@ -0,0 +1,616 @@
+---@meta
+---@class Barotrauma.SubEditorScreen : Barotrauma.EditorScreen
+---`Field Private Instance`
+---@field defaultPreviewImageSize Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field camTargetFocus Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field backedUpSubInfo Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field publishedWorkshopItemIds (System.Collections.Generic.HashSet*1System*UInt64)|(System.UInt64[])
+---`Field Private Instance`
+---@field screenResolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field lightingEnabled System.Boolean
+---`Field Private Instance`
+---@field wasSelectedBefore System.Boolean
+---`Field Public Instance`
+---@field TopPanel Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field showEntitiesPanel Barotrauma.GUIComponent
+---`Field Public Instance`
+---@field entityCountPanel Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field showEntitiesTickBoxes (System.Collections.Generic.List*1Barotrauma*GUITickBox)|(Barotrauma.GUITickBox[])
+---`Field Private Instance`
+---@field hiddenSubCategories (System.Collections.Generic.Dictionary*1System*String*1System*Boolean)|({[System.String]:(System.Boolean)})
+---`Field Private Instance`
+---@field subNameLabel Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field entityMenuOpen System.Boolean
+---`Field Private Instance`
+---@field entityMenuOpenState System.Single
+---`Field Private Instance`
+---@field lastFilter System.String
+---`Field Public Instance`
+---@field EntityMenu Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field entityFilterBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field categorizedEntityList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field allEntityList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field toggleEntityMenuButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field defaultModeTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field wiringModeTickBox Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field loadFrame Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field saveFrame Barotrauma.GUIComponent
+---`Field Private Instance`
+---@field nameBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field descriptionBox Barotrauma.GUITextBox
+---`Field Private Instance`
+---@field selectedCategoryButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field selectedCategoryText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field entityCategoryButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field selectedCategory System.Nullable*1Barotrauma*MapEntityCategory
+---`Field Private Instance`
+---@field hullVolumeFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field saveAssemblyFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field snapToGridFrame Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field previouslyUsedPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field previouslyUsedList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field visibilityButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field layerPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field layerList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field layerSpecificButtons (System.Collections.Generic.List*1Barotrauma*GUIButton)|(Barotrauma.GUIButton[])
+---`Field Private Instance`
+---@field undoBufferPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field undoBufferDisclaimer Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field undoBufferList Barotrauma.GUIListBox
+---`Field Private Instance`
+---@field linkedSubBox Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field dummyCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field OpenedItem Barotrauma.Item
+---`Field Private Instance`
+---@field oldItemPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field wiringToolPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field editorSelectedTime Barotrauma.Option*1System*DateTime
+---`Field Private Instance`
+---@field previewImage Barotrauma.GUIImage
+---`Field Private Instance`
+---@field previewImageButtonHolder Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field submarineNameCharacterCount Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field submarineDescriptionCharacterCount Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field mode Barotrauma.SubEditorScreen.Mode
+---`Field Private Instance`
+---@field MeasurePositionStart Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lockMode System.Boolean
+---`Field Private Instance`
+---@field toggleEntityListBind Barotrauma.KeyOrMouse
+---`Field Private Instance`
+---@field prevSelectedLayer System.String
+---`Field Public Static`
+---@field MouseDragStart Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field autoSaveLabel Barotrauma.GUIComponent
+---`Field Public Static`
+---@field ItemAddMutex System.Object
+---`Field Public Static`
+---@field ItemRemoveMutex System.Object
+---`Field Public Static`
+---@field TransparentWiringMode System.Boolean
+---`Field Public Static`
+---@field SkipInventorySlotUpdate System.Boolean
+---`Field Private Static`
+---@field bulkItemBufferinUse System.Object
+---`Field Public Static`
+---@field BulkItemBuffer (System.Collections.Generic.List*1Barotrauma*AddOrDeleteCommand)|(Barotrauma.AddOrDeleteCommand[])
+---`Field Public Static`
+---@field SuppressedWarnings (System.Collections.Generic.List*1Barotrauma*SubEditorScreen*WarningType)|(Barotrauma.SubEditorScreen.WarningType[])
+---`Field Public Static`
+---@field ImageManager Barotrauma.EditorImageManager
+---`Field Public Static`
+---@field ShouldDrawGrid System.Boolean
+---`Field Public Static`
+---@field DraggedItemPrefab Barotrauma.MapEntityPrefab
+---`Field Public Static`
+---@field Commands (System.Collections.Generic.List*1Barotrauma*Command)|(Barotrauma.Command[])
+---`Field Private Static`
+---@field commandIndex System.Int32
+---`Field Private Static`
+---@field isAutoSaving System.Boolean
+---`Field Public Static`
+---@field AutoSaveInfo System.Xml.Linq.XDocument
+---`Field Private Static`
+---@field autoSavePath System.String
+---`Field Private Static`
+---@field autoSaveInfoPath System.String
+---`Field Private Static`
+---@field Layers (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*SubEditorScreen*LayerData)|({[System.String]:(Barotrauma.SubEditorScreen.LayerData)})
+---`Field Private Static`
+---@field gridBaseColor Microsoft.Xna.Framework.Color
+---`Field Public Static`
+---@field MaxStructures System.Int32
+---`Field Public Static`
+---@field MaxWalls System.Int32
+---`Field Public Static`
+---@field MaxItems System.Int32
+---`Field Public Static`
+---@field MaxLights System.Int32
+---`Field Public Static`
+---@field MaxShadowCastingLights System.Int32
+---`Field Private Static`
+---@field PreviouslyUsedCount System.Int32
+---`Field Private Static`
+---@field submarineNameLimit System.Int32
+---`Field Private Static`
+---@field submarineDescriptionLimit System.Int32
+---`Getter Private Static`
+---
`Setter Private Static`
+---@field MainSub Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowThalamus System.Boolean
+---`Getter Public Instance`
+---@field ToggleEntityMenuButton Barotrauma.GUIButton
+---`Getter Private Static`
+---@field MaxAutoSaves System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BulkItemBufferInUse System.Object
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Public Instance`
+---@field DrawCharacterInventory System.Boolean
+---`Getter Public Instance`
+---@field WiringMode System.Boolean
+_G['SubEditorScreen'] = {}
+
+---`Method Public Instance`
+_G['SubEditorScreen'].UpdateUndoHistoryPanel = function() end
+
+---`Method Private Static`
+_G['SubEditorScreen'].CommitBulkItemBuffer = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['SubEditorScreen'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['SubEditorScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Private Instance`
+---@param width System.Int32
+---@param height System.Int32
+---@param stream System.IO.Stream
+_G['SubEditorScreen'].CreateImage = function(width, height, stream) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['SubEditorScreen'].DrawGrid = function(spriteBatch) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param sizeX System.Single
+---@param sizeY System.Single
+---@param zoomTreshold System.Boolean
+_G['SubEditorScreen'].DrawGrid = function(spriteBatch, cam, sizeX, sizeY, zoomTreshold) end
+
+---`Method Public Static`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param cam Barotrauma.Camera
+---@param playableAreaSize System.Single
+---@param color Microsoft.Xna.Framework.Color
+_G['SubEditorScreen'].DrawOutOfBoundsArea = function(spriteBatch, cam, playableAreaSize, color) end
+
+---`Method Public Instance`
+---@param width System.Int32
+---@param height System.Int32
+---@param filePath System.String
+_G['SubEditorScreen'].SaveScreenShot = function(width, height, filePath) end
+
+---`Method Public Instance`
+---@param subcategory System.String
+---@return System.Boolean
+_G['SubEditorScreen'].IsSubcategoryHidden = function(subcategory) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['SubEditorScreen'].IsSubEditor = function() end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['SubEditorScreen'].IsWiringMode = function() end
+
+---`Method Public Static`
+---@param entity Barotrauma.MapEntity
+---@return System.Boolean
+_G['SubEditorScreen'].IsLayerVisible = function(entity) end
+
+---`Method Public Static`
+---@param entity Barotrauma.MapEntity
+---@return System.Boolean
+_G['SubEditorScreen'].IsLayerLinked = function(entity) end
+
+---`Method Public Static`
+---@param entity Barotrauma.MapEntity
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['SubEditorScreen'].GetEntitiesInSameLayer = function(entity) end
+
+---`Method Private Static`
+---@return System.String
+_G['SubEditorScreen'].GetSubDescription = function() end
+
+---`Method Private Static`
+---@return Barotrauma.LocalizedString
+_G['SubEditorScreen'].GetTotalHullVolume = function() end
+
+---`Method Private Static`
+---@return Barotrauma.LocalizedString
+_G['SubEditorScreen'].GetSelectedHullVolume = function() end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].CreateUI = function() end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['SubEditorScreen'].TestSubmarine = function(button, obj) end
+
+---`Method Public Instance`
+_G['SubEditorScreen'].ClearBackedUpSubInfo = function() end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].UpdateEntityList = function() end
+
+---`Method Private Instance`
+---@param ep Barotrauma.MapEntityPrefab
+---@param entitiesPerRow System.Int32
+---@param parent Barotrauma.GUIComponent
+_G['SubEditorScreen'].CreateEntityElement = function(ep, entitiesPerRow, parent) end
+
+---`Method Public Instance Virtual`
+_G['SubEditorScreen'].Select = function() end
+
+---`Method Public Instance`
+---@param enableAutoSave? System.Boolean
+_G['SubEditorScreen'].Select = function(enableAutoSave) end
+
+---`Method Public Instance Virtual`
+---@param filePath System.String
+---@param extension System.String
+_G['SubEditorScreen'].OnFileDropped = function(filePath, extension) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['SubEditorScreen'].AutoSaveCoroutine = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['SubEditorScreen'].DeselectEditorSpecific = function() end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].CreateDummyCharacter = function() end
+
+---`Method Private Static`
+_G['SubEditorScreen'].AutoSave = function() end
+
+---`Method Private Static`
+_G['SubEditorScreen'].DisplayAutoSavePrompt = function() end
+
+---`Method Private Instance`
+---@param packageToSaveTo Barotrauma.ContentPackage
+---@return System.Boolean
+_G['SubEditorScreen'].SaveSub = function(packageToSaveTo) end
+
+---`Method Private Instance`
+---@param p Barotrauma.ContentPackage
+_G['SubEditorScreen'].ReloadModifiedPackage = function(p) end
+
+---`Method Public Static`
+---@param type Barotrauma.SubmarineType
+---@return System.Type
+_G['SubEditorScreen'].DetermineSubFileType = function(type) end
+
+---`Method Private Instance`
+---@param name System.String
+---@param packageToSaveTo Barotrauma.ContentPackage
+---@return System.Boolean
+_G['SubEditorScreen'].SaveSubToFile = function(name, packageToSaveTo) end
+
+---`Method Private Instance`
+---@param quickSave? System.Boolean
+_G['SubEditorScreen'].CreateSaveScreen = function(quickSave) end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].CreateSaveAssemblyScreen = function() end
+
+---`Method Private Instance`
+---@param assemblyPrefab Barotrauma.ItemAssemblyPrefab
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['SubEditorScreen'].LoadItemAssemblyInventorySafe = function(assemblyPrefab) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['SubEditorScreen'].SaveAssembly = function(button, obj) end
+
+---`Method Private Static`
+_G['SubEditorScreen'].SnapToGrid = function() end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+_G['SubEditorScreen'].GetLoadableSubs = function() end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].CreateLoadScreen = function() end
+
+---`Method Private Instance`
+---@param subList Barotrauma.GUIListBox
+---@param filter System.String
+_G['SubEditorScreen'].FilterSubs = function(subList, filter) end
+
+---`Method Private Instance`
+---@param userData System.Object
+_G['SubEditorScreen'].LoadAutoSave = function(userData) end
+
+---`Method Private Instance`
+---@param button Barotrauma.GUIButton
+---@param obj System.Object
+---@return System.Boolean
+_G['SubEditorScreen'].HitLoadSubButton = function(button, obj) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param header Barotrauma.LocalizedString
+---@param desc Barotrauma.LocalizedString
+_G['SubEditorScreen'].AskLoadSub = function(info, header, desc) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param pkg Barotrauma.ContentPackage
+_G['SubEditorScreen'].AskLoadPublishedSub = function(info, pkg) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+_G['SubEditorScreen'].AskLoadSubscribedSub = function(info) end
+
+---`Method Private Instance`
+---@param info Barotrauma.SubmarineInfo
+_G['SubEditorScreen'].AskLoadVanillaSub = function(info) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param checkIdConflicts? System.Boolean
+_G['SubEditorScreen'].LoadSub = function(info, checkIdConflicts) end
+
+---`Method Private Static`
+---@param sub Barotrauma.SubmarineInfo
+---@param packages (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+---@return Barotrauma.ContentPackage
+_G['SubEditorScreen'].GetPackageThatOwnsSub = function(sub, packages) end
+
+---`Method Private Static`
+---@param sub Barotrauma.SubmarineInfo
+---@return Barotrauma.ContentPackage
+_G['SubEditorScreen'].GetLocalPackageThatOwnsSub = function(sub) end
+
+---`Method Private Static`
+---@param sub Barotrauma.SubmarineInfo
+---@return Barotrauma.ContentPackage
+_G['SubEditorScreen'].GetWorkshopPackageThatOwnsSub = function(sub) end
+
+---`Method Private Static`
+---@param sub Barotrauma.SubmarineInfo
+---@return System.Boolean
+_G['SubEditorScreen'].IsVanillaSub = function(sub) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.SubmarineInfo
+_G['SubEditorScreen'].TryDeleteSub = function(sub) end
+
+---`Method Private Instance`
+---@param entityCategory System.Nullable*1Barotrauma*MapEntityCategory
+_G['SubEditorScreen'].OpenEntityMenu = function(entityCategory) end
+
+---`Method Private Instance`
+---@param filter System.String
+_G['SubEditorScreen'].FilterEntities = function(filter) end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].ClearFilter = function() end
+
+---`Method Public Instance`
+---@param newMode Barotrauma.SubEditorScreen.Mode
+_G['SubEditorScreen'].SetMode = function(newMode) end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].RemoveDummyCharacter = function() end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].CreateContextMenu = function() end
+
+---`Method Private Instance`
+---@param layer System.String
+---@param content (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['SubEditorScreen'].MoveToLayer = function(layer, content) end
+
+---`Method Private Instance`
+---@param name System.String
+---@param content (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['SubEditorScreen'].CreateNewLayer = function(name, content) end
+
+---`Method Private Instance`
+---@param original System.String
+---@param newName System.String
+_G['SubEditorScreen'].RenameLayer = function(original, newName) end
+
+---`Method Public Instance`
+_G['SubEditorScreen'].ReconstructLayers = function() end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].ClearLayers = function() end
+
+---`Method Private Static`
+---@param layerName System.String
+---@param isVisible System.Boolean
+_G['SubEditorScreen'].SetLayerVisibility = function(layerName, isVisible) end
+
+---`Method Private Instance`
+---@param text? System.String
+---@param pos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['SubEditorScreen'].PasteAssembly = function(text, pos) end
+
+---`Method Public Static`
+---@param originalColor Microsoft.Xna.Framework.Color
+---@param property Barotrauma.SerializableProperty
+---@param entity Barotrauma.ISerializableEntity
+---@return Barotrauma.GUIMessageBox
+_G['SubEditorScreen'].CreatePropertyColorPicker = function(originalColor, property, entity) end
+
+---`Method Public Static`
+---@param offset Microsoft.Xna.Framework.Point
+---@param onWireSelected (Barotrauma.GUIListBox.OnSelectedHandler)|(fun(component:Barotrauma.GUIComponent, obj:System.Object):(System.Boolean))
+---@return Barotrauma.GUIFrame
+_G['SubEditorScreen'].CreateWiringPanel = function(offset, onWireSelected) end
+
+---`Method Private Instance`
+---@param selected Barotrauma.GUIComponent
+---@param userData System.Object
+---@return System.Boolean
+_G['SubEditorScreen'].SelectLinkedSub = function(selected, userData) end
+
+---`Method Private Instance`
+---@param component Barotrauma.GUIComponent
+---@param userData System.Object
+---@return System.Boolean
+_G['SubEditorScreen'].SelectWire = function(component, userData) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+_G['SubEditorScreen'].OpenItem = function(item) end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].CloseItem = function() end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+_G['SubEditorScreen'].TeleportDummyCharacter = function(pos) end
+
+---`Method Private Instance`
+---@param textBox Barotrauma.GUITextBox
+---@param text System.String
+---@return System.Boolean
+_G['SubEditorScreen'].ChangeSubName = function(textBox, text) end
+
+---`Method Private Instance`
+---@param textBox Barotrauma.GUITextBox
+---@param text System.String
+---@return System.Boolean
+_G['SubEditorScreen'].ChangeEnemySubTags = function(textBox, text) end
+
+---`Method Private Instance`
+---@param textBox Barotrauma.GUITextBox
+---@param text System.String
+_G['SubEditorScreen'].ChangeSubDescription = function(textBox, text) end
+
+---`Method Private Instance`
+---@param component Barotrauma.GUIComponent
+---@param obj System.Object
+---@return System.Boolean
+_G['SubEditorScreen'].SelectPrefab = function(component, obj) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['SubEditorScreen'].GenerateWaypoints = function() end
+
+---`Method Private Instance`
+---@param mapEntityPrefab Barotrauma.MapEntityPrefab
+_G['SubEditorScreen'].AddPreviouslyUsed = function(mapEntityPrefab) end
+
+---`Method Public Instance`
+_G['SubEditorScreen'].AutoHull = function() end
+
+---`Method Public Instance Virtual`
+_G['SubEditorScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['SubEditorScreen'].IsMouseOnEditorGUI = function() end
+
+---`Method Private Static`
+---@param amount System.Int32
+_G['SubEditorScreen'].Redo = function(amount) end
+
+---`Method Private Static`
+---@param amount System.Int32
+_G['SubEditorScreen'].Undo = function(amount) end
+
+---`Method Private Static`
+_G['SubEditorScreen'].ClearUndoBuffer = function() end
+
+---`Method Public Static`
+---@param command Barotrauma.Command
+_G['SubEditorScreen'].StoreCommand = function(command) end
+
+---`Method Private Instance`
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['SubEditorScreen'].EntityAddedOrDeleted = function(entities) end
+
+---`Method Private Instance`
+_G['SubEditorScreen'].UpdateLayerPanel = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SubEditorScreen
+---@return Barotrauma.SubEditorScreen
+_G['SubEditorScreen'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SubEditorScreen
+---@return Barotrauma.SubEditorScreen
+_G['SubEditorScreen'].__new = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SubEditorScreen
+---@return Barotrauma.SubEditorScreen
+_G['SubEditorScreen'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SubEditorScreen
+---@return Barotrauma.SubEditorScreen
+_G['SubEditorScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF73C8.lua b/Meta/Types/client/_00007FFD97EF73C8.lua
new file mode 100644
index 0000000..034a55d
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF73C8.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.TestScreen : Barotrauma.EditorScreen
+---`Field Private Instance`
+---@field miniMapItem Barotrauma.Item
+---`Field Public Instance`
+---@field TabMenu Barotrauma.TabMenu
+---`Field Public Static`
+---@field dummyCharacter Barotrauma.Character
+---`Field Public Static`
+---@field BlueprintEffect Microsoft.Xna.Framework.Graphics.Effect
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+_G['TestScreen'] = {}
+
+---`Method Public Instance Virtual`
+_G['TestScreen'].Select = function() end
+
+---`Method Public Instance Virtual`
+_G['TestScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['TestScreen'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['TestScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.TestScreen
+_G['TestScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.TestScreen
+_G['TestScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF8AB0.lua b/Meta/Types/client/_00007FFD97EF8AB0.lua
new file mode 100644
index 0000000..3648a7a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF8AB0.lua
@@ -0,0 +1,733 @@
+---@meta
+---@class Barotrauma.CharacterEditor.CharacterEditorScreen : Barotrauma.EditorScreen
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field spawnPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field editCharacterInfo System.Boolean
+---`Field Private Instance`
+---@field editRagdoll System.Boolean
+---`Field Private Instance`
+---@field editAnimations System.Boolean
+---`Field Private Instance`
+---@field editLimbs System.Boolean
+---`Field Private Instance`
+---@field editJoints System.Boolean
+---`Field Private Instance`
+---@field editIK System.Boolean
+---`Field Private Instance`
+---@field drawSkeleton System.Boolean
+---`Field Private Instance`
+---@field drawDamageModifiers System.Boolean
+---`Field Private Instance`
+---@field showParamsEditor System.Boolean
+---`Field Private Instance`
+---@field showSpritesheet System.Boolean
+---`Field Private Instance`
+---@field isFrozen System.Boolean
+---`Field Private Instance`
+---@field autoFreeze System.Boolean
+---`Field Private Instance`
+---@field limbPairEditing System.Boolean
+---`Field Private Instance`
+---@field uniformScaling System.Boolean
+---`Field Private Instance`
+---@field lockSpriteOrigin System.Boolean
+---`Field Private Instance`
+---@field lockSpritePosition System.Boolean
+---`Field Private Instance`
+---@field lockSpriteSize System.Boolean
+---`Field Private Instance`
+---@field recalculateCollider System.Boolean
+---`Field Private Instance`
+---@field copyJointSettings System.Boolean
+---`Field Private Instance`
+---@field showColliders System.Boolean
+---`Field Private Instance`
+---@field displayWearables System.Boolean
+---`Field Private Instance`
+---@field displayBackgroundColor System.Boolean
+---`Field Private Instance`
+---@field onlyShowSourceRectForSelectedLimbs System.Boolean
+---`Field Private Instance`
+---@field unrestrictSpritesheet System.Boolean
+---`Field Private Instance`
+---@field jointCreationMode Barotrauma.CharacterEditor.CharacterEditorScreen.JointCreationMode
+---`Field Private Instance`
+---@field isDrawingLimb System.Boolean
+---`Field Private Instance`
+---@field newLimbRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field jointStartLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field jointEndLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field anchor1Pos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field holdTimer System.Double
+---`Field Private Instance`
+---@field spriteSheetZoom System.Single
+---`Field Private Instance`
+---@field spriteSheetMinZoom System.Single
+---`Field Private Instance`
+---@field spriteSheetMaxZoom System.Single
+---`Field Private Instance`
+---@field hideBodySheet System.Boolean
+---`Field Private Instance`
+---@field backgroundColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field cameraOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field selectedJoints (System.Collections.Generic.List*1Barotrauma*LimbJoint)|(Barotrauma.LimbJoint[])
+---`Field Private Instance`
+---@field selectedLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field editedCharacters (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field isEndlessRunner System.Boolean
+---`Field Private Instance`
+---@field spriteSheetRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field scaledMouseSpeed Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field min System.Int32
+---`Field Private Instance`
+---@field max System.Int32
+---`Field Private Instance`
+---@field wallGroups (Barotrauma.CharacterEditor.WallGroup-arr)|(Barotrauma.CharacterEditor.CharacterEditorScreen.WallGroup[])
+---`Field Private Instance`
+---@field wallCollisionsEnabled System.Boolean
+---`Field Private Instance`
+---@field characterIndex System.Int32
+---`Field Private Instance`
+---@field currentCharacterIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field selectedJob Barotrauma.Identifier
+---`Field Private Instance`
+---@field visibleSpecies (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field vanillaCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterFile)|(fun():(Barotrauma.CharacterFile))
+---`Field Private Instance`
+---@field rightArea Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field leftArea Barotrauma.GUILayoutGroup
+---`Field Private Instance`
+---@field centerArea Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field totalMassText Barotrauma.GUITextBlock
+---`Field Private Instance`
+---@field characterSelectionPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field fileEditPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field modesPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field buttonsPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field optionsPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field minorModesPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field ragdollControls Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field jointControls Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field animationControls Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field limbControls Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field spriteSheetControls Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field backgroundColorPanel Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field animSelection Barotrauma.GUIDropDown
+---`Field Private Instance`
+---@field freezeToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field animTestPoseToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field showCollidersToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field jointScaleBar Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field limbScaleBar Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field spriteSheetZoomBar Barotrauma.GUIScrollBar
+---`Field Private Instance`
+---@field copyJointsToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field recalculateColliderToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field resetSpriteOrientationButtonParent Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field characterInfoToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field ragdollToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field animsToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field limbsToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field paramsToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field jointsToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field spritesheetToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field skeletonToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field lightsToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field damageModifiersToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field ikToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field lockSpriteOriginToggle Barotrauma.GUITickBox
+---`Field Private Instance`
+---@field extraRagdollControls Barotrauma.GUIFrame
+---`Field Private Instance`
+---@field createJointButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field createLimbButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field deleteSelectedButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field duplicateLimbButton Barotrauma.GUIButton
+---`Field Private Instance`
+---@field modesToggle Barotrauma.CharacterEditor.CharacterEditorScreen.ToggleButton
+---`Field Private Instance`
+---@field minorModesToggle Barotrauma.CharacterEditor.CharacterEditorScreen.ToggleButton
+---`Field Private Instance`
+---@field buttonsPanelToggle Barotrauma.CharacterEditor.CharacterEditorScreen.ToggleButton
+---`Field Private Instance`
+---@field optionsToggle Barotrauma.CharacterEditor.CharacterEditorScreen.ToggleButton
+---`Field Private Instance`
+---@field characterPanelToggle Barotrauma.CharacterEditor.CharacterEditorScreen.ToggleButton
+---`Field Private Instance`
+---@field fileEditToggle Barotrauma.CharacterEditor.CharacterEditorScreen.ToggleButton
+---`Field Private Instance`
+---@field corners (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field textures (System.Collections.Generic.List*1Microsoft*Xna*Framework*Graphics*Texture2D)|(Microsoft.Xna.Framework.Graphics.Texture2D[])
+---`Field Private Instance`
+---@field texturePaths (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field animationWidgets (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Widget)|({[System.String]:(Barotrauma.Widget)})
+---`Field Private Instance`
+---@field jointSelectionWidgets (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Widget)|({[System.String]:(Barotrauma.Widget)})
+---`Field Private Instance`
+---@field limbEditWidgets (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Widget)|({[System.String]:(Barotrauma.Widget)})
+---`Field Private Static`
+---@field innerScale Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field holdTime System.Single
+---`Field Private Static`
+---@field spriteSheetOffsetY System.Int32
+---`Field Private Static`
+---@field spriteSheetOffsetX System.Int32
+---`Field Private Static`
+---@field screenTextTag System.String
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Instance Barotrauma.CharacterEditor.CharacterEditorScreen
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Private Instance`
+---@field ShowExtraRagdollControls System.Boolean
+---`Getter Public Instance`
+---@field SpawnedCharacter Barotrauma.Character
+---`Getter Private Instance`
+---@field MiddleWall Barotrauma.CharacterEditor.CharacterEditorScreen.WallGroup
+---`Getter Private Instance`
+---@field AllStructures (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---`Getter Private Instance`
+---@field VisibleSpecies (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Private Instance`
+---@field VanillaCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterFile)|(fun():(Barotrauma.CharacterFile))
+---`Getter Private Instance`
+---@field CharacterParams Barotrauma.CharacterParams
+---`Getter Private Instance`
+---@field AnimParams (System.Collections.Generic.List*1Barotrauma*AnimationParams)|(Barotrauma.AnimationParams[])
+---`Getter Private Instance`
+---@field CurrentAnimation Barotrauma.AnimationParams
+---`Getter Private Instance`
+---@field RagdollParams Barotrauma.RagdollParams
+---`Getter Private Instance`
+---@field Textures (System.Collections.Generic.List*1Microsoft*Xna*Framework*Graphics*Texture2D)|(Microsoft.Xna.Framework.Graphics.Texture2D[])
+_G['CharacterEditorScreen'] = {}
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].SaveSnapshot = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ToggleJointCreationMode = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ToggleLimbCreationMode = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param deltaTime System.Single
+_G['CharacterEditorScreen'].DrawAnimationControls = function(spriteBatch, deltaTime) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['CharacterEditorScreen'].GetLimbPhysicRect = function(limb) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CharacterEditorScreen'].DrawLimbEditor = function(spriteBatch) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param deltaTime System.Single
+_G['CharacterEditorScreen'].DrawRagdoll = function(spriteBatch, deltaTime) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param updateAction (System.Action*1Barotrauma*Limb)|(fun(obj:Barotrauma.Limb))
+_G['CharacterEditorScreen'].UpdateOtherLimbs = function(limb, updateAction) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param updateAction (System.Action*1Barotrauma*Limb*1Barotrauma*LimbJoint)|(fun(arg1:Barotrauma.Limb, arg2:Barotrauma.LimbJoint))
+_G['CharacterEditorScreen'].UpdateOtherJoints = function(limb, updateAction) end
+
+---`Method Private Instance`
+---@param limbType System.String
+---@param isLeft System.Boolean
+---@return Barotrauma.Limb
+_G['CharacterEditorScreen'].GetOtherLimb = function(limbType, isLeft) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Limb)|(fun():(Barotrauma.Limb))
+_G['CharacterEditorScreen'].GetOtherLimbs = function(limb) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CreateTextures = function() end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param deltaTime System.Single
+_G['CharacterEditorScreen'].DrawSpritesheetEditor = function(spriteBatch, deltaTime) end
+
+---`Method Private Instance`
+---@param sprite Barotrauma.Sprite
+---@return System.Int32
+_G['CharacterEditorScreen'].GetTextureHeight = function(sprite) end
+
+---`Method Private Instance`
+---@param sprite Barotrauma.Sprite
+---@return System.Int32
+_G['CharacterEditorScreen'].GetOffsetY = function(sprite) end
+
+---`Method Private Instance`
+---@param l Barotrauma.Limb
+---@param size Microsoft.Xna.Framework.Vector2
+_G['CharacterEditorScreen'].RecalculateCollider = function(l, size) end
+
+---`Method Private Instance`
+---@param l Barotrauma.Limb
+---@param newOrigin? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['CharacterEditorScreen'].RecalculateOrigin = function(l, newOrigin) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param deltaTime System.Single
+---@param limb Barotrauma.Limb
+---@param limbScreenPos Microsoft.Xna.Framework.Vector2
+---@param spriteRotation? System.Single
+_G['CharacterEditorScreen'].DrawSpritesheetJointEditor = function(spriteBatch, deltaTime, limb, limbScreenPos, spriteRotation) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param limb Barotrauma.Limb
+---@param joint Barotrauma.LimbJoint
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param autoFreeze System.Boolean
+---@param allowPairEditing System.Boolean
+---@param holdPosition System.Boolean
+---@param rotationOffset? System.Single
+_G['CharacterEditorScreen'].DrawJointLimitWidgets = function(spriteBatch, limb, joint, drawPos, autoFreeze, allowPairEditing, holdPosition, rotationOffset) end
+
+---`Method Private Instance`
+---@param key Microsoft.Xna.Framework.Input.Keys
+_G['CharacterEditorScreen'].Nudge = function(key) end
+
+---`Method Private Instance`
+---@param value System.Boolean
+_G['CharacterEditorScreen'].SetSpritesheetRestriction = function(value) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param value System.Single
+---@param toolTip Barotrauma.LocalizedString
+---@param color Microsoft.Xna.Framework.Color
+---@param onClick (System.Action*1System*Single)|(fun(obj:System.Single))
+---@param circleRadius? System.Single
+---@param widgetSize? System.Int32
+---@param rotationOffset? System.Single
+---@param clockWise? System.Boolean
+---@param displayAngle? System.Boolean
+---@param autoFreeze? System.Nullable*1System*Boolean
+---@param wrapAnglePi? System.Boolean
+---@param holdPosition? System.Boolean
+---@param rounding? System.Int32
+_G['CharacterEditorScreen'].DrawRadialWidget = function(spriteBatch, drawPos, value, toolTip, color, onClick, circleRadius, widgetSize, rotationOffset, clockWise, displayAngle, autoFreeze, wrapAnglePi, holdPosition, rounding) end
+
+---`Method Private Instance`
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+---@param drawPos Microsoft.Xna.Framework.Vector2
+---@param widgetType Barotrauma.CharacterEditor.CharacterEditorScreen.WidgetType
+---@param size System.Int32
+---@param color Microsoft.Xna.Framework.Color
+---@param toolTip Barotrauma.LocalizedString
+---@param onPressed (System.Action)|(fun())
+---@param autoFreeze? System.Nullable*1System*Boolean
+---@param holdPosition? System.Boolean
+---@param onHovered? (System.Action)|(fun())
+_G['CharacterEditorScreen'].DrawWidget = function(spriteBatch, drawPos, widgetType, size, color, toolTip, onPressed, autoFreeze, holdPosition, onHovered) end
+
+---`Method Private Instance`
+---@param name System.String
+---@param innerColor Microsoft.Xna.Framework.Color
+---@param outerColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param size? System.Int32
+---@param sizeMultiplier? System.Single
+---@param shape? Barotrauma.WidgetShape
+---@param initMethod? (System.Action*1Barotrauma*Widget)|(fun(obj:Barotrauma.Widget))
+---@return Barotrauma.Widget
+_G['CharacterEditorScreen'].GetAnimationWidget = function(name, innerColor, outerColor, size, sizeMultiplier, shape, initMethod) end
+
+---`Method Private Instance`
+---@param id System.String
+---@param joint Barotrauma.LimbJoint
+---@param linkedId? System.String
+---@return Barotrauma.Widget
+_G['CharacterEditorScreen'].GetJointSelectionWidget = function(id, joint, linkedId) end
+
+---`Method Private Instance`
+---@param ID System.String
+---@param limb Barotrauma.Limb
+---@param size? System.Int32
+---@param shape? Barotrauma.WidgetShape
+---@param initMethod? (System.Action*1Barotrauma*Widget)|(fun(obj:Barotrauma.Widget))
+---@return Barotrauma.Widget
+_G['CharacterEditorScreen'].GetLimbEditWidget = function(ID, limb, size, shape, initMethod) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Rectangle
+_G['CharacterEditorScreen'].CalculateSpritesheetRectangle = function() end
+
+---`Method Public Instance Virtual`
+_G['CharacterEditorScreen'].Select = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ResetVariables = function() end
+
+---`Method Private Instance`
+---@param characters? (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['CharacterEditorScreen'].Reset = function(characters) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+_G['CharacterEditorScreen'].ResetParams = function(character) end
+
+---`Method NonPublic Instance Virtual`
+_G['CharacterEditorScreen'].DeselectEditorSpecific = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].OnResolutionChanged = function() end
+
+---`Method Public Static`
+---@param tag System.String
+---@return Barotrauma.LocalizedString
+_G['CharacterEditorScreen'].GetCharacterEditorTranslation = function(tag) end
+
+---`Method Public Instance Virtual`
+_G['CharacterEditorScreen'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['CharacterEditorScreen'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@return Barotrauma.LocalizedString
+_G['CharacterEditorScreen'].GetTotalMassText = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.CursorState
+_G['CharacterEditorScreen'].GetMouseCursorState = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+---@param graphics Microsoft.Xna.Framework.Graphics.GraphicsDevice
+---@param spriteBatch Microsoft.Xna.Framework.Graphics.SpriteBatch
+_G['CharacterEditorScreen'].Draw = function(deltaTime, graphics, spriteBatch) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].UpdateJointCreation = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].UpdateLimbCreation = function() end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+_G['CharacterEditorScreen'].CopyLimb = function(limb) end
+
+---`Method Private Instance`
+---@param sourceRect Microsoft.Xna.Framework.Rectangle
+_G['CharacterEditorScreen'].CreateNewLimb = function(sourceRect) end
+
+---`Method Private Instance`
+---@param newElement Barotrauma.ContentXElement
+_G['CharacterEditorScreen'].CreateLimb = function(newElement) end
+
+---`Method Private Instance`
+---@param fromLimb System.Int32
+---@param toLimb System.Int32
+---@param anchor1? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param anchor2? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['CharacterEditorScreen'].CreateJoint = function(fromLimb, toLimb, anchor1, anchor2) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].DeleteSelected = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CalculateMovementLimits = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CloneWalls = function() end
+
+---`Method Private Instance`
+---@param right System.Boolean
+_G['CharacterEditorScreen'].UpdateWalls = function(right) end
+
+---`Method Private Instance`
+---@param enabled System.Boolean
+_G['CharacterEditorScreen'].SetWallCollisions = function(enabled) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@return System.Boolean
+_G['CharacterEditorScreen'].ShowCreature = function(prefab) end
+
+---`Method Private Instance`
+---@return Barotrauma.Identifier
+_G['CharacterEditorScreen'].GetNextCharacterIdentifier = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.Identifier
+_G['CharacterEditorScreen'].GetPreviousCharacterIdentifier = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].GetCurrentCharacterIndex = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].IncreaseIndex = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ReduceIndex = function() end
+
+---`Method Public Instance`
+---@param speciesName Barotrauma.Identifier
+---@param ragdoll? Barotrauma.RagdollParams
+---@return Barotrauma.Character
+_G['CharacterEditorScreen'].SpawnCharacter = function(speciesName, ragdoll) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].OnPreSpawn = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].OnPostSpawn = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ClearWidgets = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ClearSelection = function() end
+
+---`Method Private Instance`
+---@param ragdoll? Barotrauma.RagdollParams
+_G['CharacterEditorScreen'].RecreateRagdoll = function(ragdoll) end
+
+---`Method Private Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+_G['CharacterEditorScreen'].TeleportTo = function(position) end
+
+---`Method Public Instance`
+---@param name Barotrauma.Identifier
+---@param mainFolder System.String
+---@param isHumanoid System.Boolean
+---@param contentPackage Barotrauma.ContentPackage
+---@param ragdoll System.Xml.Linq.XElement
+---@param config? System.Xml.Linq.XElement
+---@param animations? (System.Collections.Generic.IEnumerable*1Barotrauma*AnimationParams)|(fun():(Barotrauma.AnimationParams))
+---@return System.Boolean
+_G['CharacterEditorScreen'].CreateCharacter = function(name, mainFolder, isHumanoid, contentPackage, ragdoll, config, animations) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ShowWearables = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].HideWearables = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CreateGUI = function() end
+
+---`Method Private Instance`
+---@param toggleSize Microsoft.Xna.Framework.Vector2
+_G['CharacterEditorScreen'].CreateMinorModesPanel = function(toggleSize) end
+
+---`Method Private Instance`
+---@param toggleSize Microsoft.Xna.Framework.Vector2
+_G['CharacterEditorScreen'].CreateModesPanel = function(toggleSize) end
+
+---`Method Private Instance`
+---@param toggle Barotrauma.GUITickBox
+---@param value System.Boolean
+_G['CharacterEditorScreen'].SetToggle = function(toggle, value) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CreateButtonsPanel = function() end
+
+---`Method Private Instance`
+---@param toggleSize Microsoft.Xna.Framework.Vector2
+_G['CharacterEditorScreen'].CreateOptionsPanel = function(toggleSize) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CreateContextualControls = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CreateCharacterSelectionPanel = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CreateFileEditPanel = function() end
+
+---`Method Public Instance`
+_G['CharacterEditorScreen'].PrepareCharacterCopy = function() end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].ResetParamsEditor = function() end
+
+---`Method Private Instance`
+---@overload fun(name:System.String, value:System.Object)
+---@param name Barotrauma.Identifier
+---@param value System.Object
+_G['CharacterEditorScreen'].TryUpdateAnimParam = function(name, value) end
+
+---`Method Private Instance`
+---@overload fun(name:System.String, value:System.Object)
+---@param name Barotrauma.Identifier
+---@param value System.Object
+_G['CharacterEditorScreen'].TryUpdateRagdollParam = function(name, value) end
+
+---`Method Private Instance`
+---@param editableParams Barotrauma.EditableParams
+---@param name Barotrauma.Identifier
+---@param value System.Object
+_G['CharacterEditorScreen'].TryUpdateParam = function(editableParams, name, value) end
+
+---`Method Private Instance`
+---@overload fun(joint:Barotrauma.LimbJoint, name:System.String, value:System.Object)
+---@param joint Barotrauma.LimbJoint
+---@param name Barotrauma.Identifier
+---@param value System.Object
+_G['CharacterEditorScreen'].TryUpdateJointParam = function(joint, name, value) end
+
+---`Method Private Instance`
+---@overload fun(limb:Barotrauma.Limb, name:System.String, value:System.Object)
+---@param limb Barotrauma.Limb
+---@param name Barotrauma.Identifier
+---@param value System.Object
+_G['CharacterEditorScreen'].TryUpdateLimbParam = function(limb, name, value) end
+
+---`Method Private Instance`
+---@param ragdollSubParams Barotrauma.RagdollParams.SubParam
+---@param name Barotrauma.Identifier
+---@param value System.Object
+_G['CharacterEditorScreen'].TryUpdateSubParam = function(ragdollSubParams, name, value) end
+
+---`Method Private Instance`
+---@overload fun(x:System.Single, y:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param p Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['CharacterEditorScreen'].ScreenToSim = function(p) end
+
+---`Method Private Instance`
+---@overload fun(x:System.Single, y:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param p Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['CharacterEditorScreen'].SimToScreen = function(p) end
+
+---`Method Private Instance`
+---@param limb1 Barotrauma.Limb
+---@param limb2 Barotrauma.Limb
+---@param joint1 Barotrauma.LimbJoint
+---@param joint2 Barotrauma.LimbJoint
+---@return System.Boolean
+_G['CharacterEditorScreen'].IsMatchingLimb = function(limb1, limb2, joint1, joint2) end
+
+---`Method Private Instance`
+---@param limbJoint Barotrauma.LimbJoint
+_G['CharacterEditorScreen'].ValidateJoint = function(limbJoint) end
+
+---`Method Private Instance`
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@param filter? (System.Func*1Barotrauma*Limb*1System*Boolean)|(fun(arg:Barotrauma.Limb):(System.Boolean))
+---@return Barotrauma.Limb
+_G['CharacterEditorScreen'].GetClosestLimbOnRagdoll = function(targetPos, filter) end
+
+---`Method Private Instance`
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@param filter? (System.Func*1Barotrauma*Limb*1System*Boolean)|(fun(arg:Barotrauma.Limb):(System.Boolean))
+---@return Barotrauma.Limb
+_G['CharacterEditorScreen'].GetClosestLimbOnSpritesheet = function(targetPos, filter) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@return Microsoft.Xna.Framework.Rectangle
+_G['CharacterEditorScreen'].GetLimbSpritesheetRect = function(limb) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param resize System.Boolean
+_G['CharacterEditorScreen'].UpdateSourceRect = function(limb, newRect, resize) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].CalculateSpritesheetZoom = function() end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+_G['CharacterEditorScreen'].HandleLimbSelection = function(limb) end
+
+---`Method Private Instance`
+_G['CharacterEditorScreen'].OpenDoors = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterEditor.CharacterEditorScreen
+---@return Barotrauma.CharacterEditor.CharacterEditorScreen
+_G['CharacterEditorScreen'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterEditor.CharacterEditorScreen
+---@return Barotrauma.CharacterEditor.CharacterEditorScreen
+_G['CharacterEditorScreen'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterEditor.CharacterEditorScreen
+---@return Barotrauma.CharacterEditor.CharacterEditorScreen
+_G['CharacterEditorScreen'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterEditor.CharacterEditorScreen
+---@return Barotrauma.CharacterEditor.CharacterEditorScreen
+_G['CharacterEditorScreen'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF9580.lua b/Meta/Types/client/_00007FFD97EF9580.lua
new file mode 100644
index 0000000..bb1e8af
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF9580.lua
@@ -0,0 +1,167 @@
+---@meta
+---@class Barotrauma.KarmaManager : System.Object
+---`Field Private Instance`
+---@field allowedWireDisconnectionsPerMinute System.Int32
+---`Field Private Instance`
+---@field herpesAffliction Barotrauma.AfflictionPrefab
+---`Field Public Instance`
+---@field Presets (System.Collections.Generic.Dictionary*1System*String*1System*Xml*Linq*XElement)|({[System.String]:(System.Xml.Linq.XElement)})
+---`Field Public Static`
+---@field ConfigFile System.String
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResetKarmaBetweenRounds System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaDecay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaDecayThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaIncreaseThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureRepairKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureDamageKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxStructureDamageKarmaDecreasePerSecond System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemRepairKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReactorOverheatKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReactorMeltdownKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageEnemyKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealFriendlyKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageFriendlyKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StunFriendlyKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StunFriendlyKarmaDecreaseThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtinguishFireKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DangerousItemStealKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DangerousItemStealBots System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BallastFloraKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowedWireDisconnectionsPerMinute System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WireDisconnectionKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SteerSubKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpamFilterKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HerpesThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KickBanThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KicksBeforeBan System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaNotificationInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowedRetaliationTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DangerousItemContainKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsDangerousItemContainKarmaDecreaseIncremental System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxDangerousItemContainKarmaDecrease System.Single
+_G['KarmaManager'] = {}
+
+---`Method Public Instance`
+---@param parent Barotrauma.GUIComponent
+_G['KarmaManager'].CreateSettingsFrame = function(parent) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param min System.Single
+---@param max System.Single
+---@param step System.Single
+---@param propertyName System.String
+_G['KarmaManager'].CreateLabeledSlider = function(parent, min, max, step, propertyName) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param min System.Int32
+---@param max System.Int32
+---@param propertyName System.String
+_G['KarmaManager'].CreateLabeledNumberInput = function(parent, min, max, propertyName) end
+
+---`Method Private Instance`
+---@param parent Barotrauma.GUIComponent
+---@param propertyName System.String
+_G['KarmaManager'].CreateLabeledTickBox = function(parent, propertyName) end
+
+---`Method Public Instance`
+---@param presetName System.String
+_G['KarmaManager'].SelectPreset = function(presetName) end
+
+---`Method Public Instance`
+_G['KarmaManager'].SaveCustomPreset = function() end
+
+---`Method Public Instance`
+_G['KarmaManager'].Save = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EF9BB8.lua b/Meta/Types/client/_00007FFD97EF9BB8.lua
new file mode 100644
index 0000000..17cbdca
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF9BB8.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.Networking.RespawnManager.State : System.Enum
+---`Field Public Static`
+---@field Waiting Barotrauma.Networking.RespawnManager.State
+---`Field Public Static`
+---@field Transporting Barotrauma.Networking.RespawnManager.State
+---`Field Public Static`
+---@field Returning Barotrauma.Networking.RespawnManager.State
+_G['RespawnManager']['State'] = {}
+
diff --git a/Meta/Types/client/_00007FFD97EF9D20.lua b/Meta/Types/client/_00007FFD97EF9D20.lua
new file mode 100644
index 0000000..33bf92b
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF9D20.lua
@@ -0,0 +1,164 @@
+---@meta
+---@class Barotrauma.Networking.RespawnManager : Barotrauma.Entity
+---`Field Private Instance`
+---@field lastShuttleLeavingWarningTime System.DateTime
+---`Field Private Instance`
+---@field networkMember Barotrauma.Networking.NetworkMember
+---`Field Private Instance`
+---@field shuttleSteering (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Steering)|({[Barotrauma.CharacterTeamType]:((System.Collections.Generic.List*1Barotrauma*Items*Components*Steering)|(Barotrauma.Items.Components.Steering[]))})
+---`Field Private Instance`
+---@field shuttleDoors (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Door)|({[Barotrauma.CharacterTeamType]:((System.Collections.Generic.List*1Barotrauma*Items*Components*Door)|(Barotrauma.Items.Components.Door[]))})
+---`Field Private Instance`
+---@field respawnContainers (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*ItemContainer)|({[Barotrauma.CharacterTeamType]:((System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer)|(Barotrauma.Items.Components.ItemContainer[]))})
+---`Field Private Instance`
+---@field teamSpecificStates (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Networking*RespawnManager*TeamSpecificState)|({[Barotrauma.CharacterTeamType]:(Barotrauma.Networking.RespawnManager.TeamSpecificState)})
+---`Field Private Instance`
+---@field maxTransportTime System.Single
+---`Field Private Instance`
+---@field updateReturnTimer System.Single
+---`Field Private Instance`
+---@field respawnShuttles (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Submarine)|({[Barotrauma.CharacterTeamType]:(Barotrauma.Submarine)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PendingRespawnCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequiredRespawnCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceSpawnInMainSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ReturnTime System.DateTime
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RespawnTime System.DateTime
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentState Barotrauma.Networking.RespawnManager.State
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ReturnCountdownStarted System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RespawnCountdownStarted System.Boolean
+---`Getter Public Static`
+---@field SkillLossPercentageOnDeath System.Single
+---`Getter Public Static`
+---@field SkillLossPercentageOnImmediateRespawn System.Single
+---`Getter Public Static`
+---@field UseDeathPrompt System.Boolean
+---`Getter Public Instance`
+---@field UsingShuttle System.Boolean
+---`Getter Public Instance`
+---@field RespawnShuttles (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+_G['RespawnManager'] = {}
+
+---`Method Public Static`
+---@param delay? System.Single
+_G['RespawnManager'].ShowDeathPromptIfNeeded = function(delay) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['RespawnManager'].ClientEventRead = function(msg, sendingTime) end
+
+---`Method Public Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return System.Boolean
+_G['RespawnManager'].CanRespawnAgain = function(team) end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['RespawnManager'].OnShuttleCollision = function(sender, other, contact) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['RespawnManager'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+---@param deltaTime System.Single
+_G['RespawnManager'].UpdateTransporting = function(teamSpecificState, deltaTime) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+---@param deltaTime System.Single
+_G['RespawnManager'].UpdateTransportingProjSpecific = function(teamSpecificState, deltaTime) end
+
+---`Method Public Instance`
+_G['RespawnManager'].ForceRespawn = function() end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+---@param deltaTime System.Single
+_G['RespawnManager'].UpdateReturning = function(teamSpecificState, deltaTime) end
+
+---`Method Public Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return Barotrauma.Submarine
+_G['RespawnManager'].GetShuttle = function(team) end
+
+---`Method Public Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager'].GetTeamSpecificState = function(team) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager'].ResetShuttle = function(teamSpecificState) end
+
+---`Method Public Static`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param skill Barotrauma.Skill
+---@param skillLossPercentage System.Single
+---@param currentSkillLevel? System.Nullable*1System*Single
+---@return System.Single
+_G['RespawnManager'].GetReducedSkill = function(characterInfo, skill, skillLossPercentage, currentSkillLevel) end
+
+---`Method Public Instance`
+---@param shuttlePos System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['RespawnManager'].RespawnCharacters = function(shuttlePos) end
+
+---`Method Public Static`
+---@return Barotrauma.AfflictionPrefab
+_G['RespawnManager'].GetRespawnPenaltyAfflictionPrefab = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Affliction
+_G['RespawnManager'].GetRespawnPenaltyAffliction = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+_G['RespawnManager'].GiveRespawnPenaltyAffliction = function(character) end
+
+---`Method Public Instance`
+---@param respawnShuttle Barotrauma.Submarine
+---@param mainSub Barotrauma.Submarine
+---@return Microsoft.Xna.Framework.Vector2
+_G['RespawnManager'].FindSpawnPos = function(respawnShuttle, mainSub) end
+
+---`Method Private Instance`
+---@param respawnShuttle Barotrauma.Submarine
+---@param minWidth System.Single
+---@param minHeight System.Single
+---@param minDistFromSubs System.Single
+---@param minDistFromCharacters System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition)|(Barotrauma.Level.InterestingPosition[])
+_G['RespawnManager'].FindValidSpawnPoints = function(respawnShuttle, minWidth, minHeight, minDistFromSubs, minDistFromCharacters) end
+
+---`Constructor Public Instance`
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param shuttleInfo Barotrauma.SubmarineInfo
+---@return Barotrauma.Networking.RespawnManager
+_G['RespawnManager'] = function(networkMember, shuttleInfo) end
+
+---`Constructor Public Instance`
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param shuttleInfo Barotrauma.SubmarineInfo
+---@return Barotrauma.Networking.RespawnManager
+_G['RespawnManager'].__new = function(networkMember, shuttleInfo) end
+
diff --git a/Meta/Types/client/_00007FFD97EF9EF0.lua b/Meta/Types/client/_00007FFD97EF9EF0.lua
new file mode 100644
index 0000000..5020e9a
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EF9EF0.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.Networking.RespawnManager.TeamSpecificState : System.Object
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field State Barotrauma.Networking.RespawnManager.State
+---`Field Public Instance`
+---@field RespawnedCharacters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Public Instance`
+---@field RespawnTime System.DateTime
+---`Field Public Instance`
+---@field ReturnTime System.DateTime
+---`Field Public Instance`
+---@field DespawnTime System.DateTime
+---`Field Public Instance`
+---@field RespawnCountdownStarted System.Boolean
+---`Field Public Instance`
+---@field ReturnCountdownStarted System.Boolean
+---`Field Public Instance`
+---@field PendingRespawnCount System.Int32
+---`Field Public Instance`
+---@field RequiredRespawnCount System.Int32
+---`Field Public Instance`
+---@field PrevPendingRespawnCount System.Int32
+---`Field Public Instance`
+---@field PrevRequiredRespawnCount System.Int32
+---`Field Public Instance`
+---@field CurrentState Barotrauma.Networking.RespawnManager.State
+---`Field Public Instance`
+---@field RespawnItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['RespawnManager']['TeamSpecificState'] = {}
+
+---`Constructor Public Instance`
+---@param teamID Barotrauma.CharacterTeamType
+---@return Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager']['TeamSpecificState'] = function(teamID) end
+
+---`Constructor Public Instance`
+---@param teamID Barotrauma.CharacterTeamType
+---@return Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager']['TeamSpecificState'].__new = function(teamID) end
+
diff --git a/Meta/Types/client/_00007FFD97EFA1D8.lua b/Meta/Types/client/_00007FFD97EFA1D8.lua
new file mode 100644
index 0000000..3b5721e
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EFA1D8.lua
@@ -0,0 +1,95 @@
+---@meta
+---@class Barotrauma.Voting : System.Object
+---`Field Private Instance`
+---@field voteCountYes (System.Collections.Generic.Dictionary*1Barotrauma*Networking*VoteType*1System*Int32)|({[Barotrauma.Networking.VoteType]:(System.Int32)})
+---`Field Private Instance`
+---@field voteCountNo (System.Collections.Generic.Dictionary*1Barotrauma*Networking*VoteType*1System*Int32)|({[Barotrauma.Networking.VoteType]:(System.Int32)})
+---`Field Private Instance`
+---@field voteCountMax (System.Collections.Generic.Dictionary*1Barotrauma*Networking*VoteType*1System*Int32)|({[Barotrauma.Networking.VoteType]:(System.Int32)})
+_G['Voting'] = {}
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@return System.Int32
+_G['Voting'].GetVoteCountYes = function(voteType) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@return System.Int32
+_G['Voting'].GetVoteCountNo = function(voteType) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@return System.Int32
+_G['Voting'].GetVoteCountMax = function(voteType) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@param value System.Int32
+_G['Voting'].SetVoteCountYes = function(voteType, value) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@param value System.Int32
+_G['Voting'].SetVoteCountNo = function(voteType, value) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@param value System.Int32
+_G['Voting'].SetVoteCountMax = function(voteType, value) end
+
+---`Method Public Instance`
+---@param clients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@param voteType Barotrauma.Networking.VoteType
+_G['Voting'].UpdateVoteTexts = function(clients, voteType) end
+
+---`Method Private Instance`
+---@param subListBox Barotrauma.GUIListBox
+---@param userData Barotrauma.SubmarineInfo
+---@param votes System.Int32
+---@param type Barotrauma.CharacterTeamType
+_G['Voting'].SetSubVoteText = function(subListBox, userData, votes, type) end
+
+---`Method Private Instance`
+---@param listBox Barotrauma.GUIListBox
+---@param userData System.Object
+---@param votes System.Int32
+_G['Voting'].SetVoteText = function(listBox, userData, votes) end
+
+---`Method Public Instance`
+---@param connectedClients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['Voting'].ResetVotes = function(connectedClients) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param voteType Barotrauma.Networking.VoteType
+---@param data System.Object
+---@return System.Boolean
+_G['Voting'].ClientWrite = function(msg, voteType, data) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['Voting'].ClientRead = function(inc) end
+
+---`Method Private Static`
+---@param voteType Barotrauma.Networking.VoteType
+---@param voters (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@return (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Voting*T*1System*Int32)|({[Barotrauma.Voting.T]:(System.Int32)})
+_G['Voting'].GetVoteCounts = function(voteType, voters) end
+
+---`Method Public Static`
+---@overload fun(voteType:Barotrauma.Networking.VoteType, voters:(System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))):(Barotrauma.Voting.T)
+---@param voteType Barotrauma.Networking.VoteType
+---@param voters (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@param voteCount System.Int32-ref
+---@return Barotrauma.Voting.T
+_G['Voting'].HighestVoted = function(voteType, voters, voteCount) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Voting
+_G['Voting'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Voting
+_G['Voting'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EFAC00.lua b/Meta/Types/client/_00007FFD97EFAC00.lua
new file mode 100644
index 0000000..55f8777
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EFAC00.lua
@@ -0,0 +1,365 @@
+---@meta
+---@class Barotrauma.DebugConsole : System.Object
+---`Field Private Static`
+---@field isOpen System.Boolean
+---`Field Public Static`
+---@field Paused System.Boolean
+---`Field Private Static`
+---@field activeQuestionText Barotrauma.GUITextBlock
+---`Field Private Static`
+---@field frame Barotrauma.GUIFrame
+---`Field Private Static`
+---@field listBox Barotrauma.GUIListBox
+---`Field Private Static`
+---@field textBox Barotrauma.GUITextBox
+---`Field Private Static`
+---@field chatManager Barotrauma.ChatManager
+---`Field Private Static`
+---@field queuedMessages (System.Collections.Concurrent.ConcurrentQueue*1Barotrauma*ColoredText)|(fun():(Barotrauma.ColoredText))
+---`Field Public Static`
+---@field MessageHandler Barotrauma.NamedEvent*1Barotrauma*ColoredText
+---`Field Public Static`
+---@field Messages (System.Collections.Generic.List*1Barotrauma*ColoredText)|(Barotrauma.ColoredText[])
+---`Field Private Static`
+---@field activeQuestionCallback (Barotrauma.DebugConsole.QuestionCallback)|(fun(answer:System.String))
+---`Field Private Static`
+---@field commands (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+---`Field Private Static`
+---@field currentAutoCompletedCommand System.String
+---`Field Private Static`
+---@field currentAutoCompletedIndex System.Int32
+---`Field Public Static`
+---@field CheatsEnabled System.Boolean
+---`Field Private Static`
+---@field unsavedMessages (System.Collections.Generic.List*1Barotrauma*ColoredText)|(Barotrauma.ColoredText[])
+---`Field Private Static`
+---@field messagesPerFile System.Int32
+---`Field Private Static`
+---@field loggedErrorIdentifiers (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Private Static`
+---@field maxLength System.Int32
+---`Field Private Static`
+---@field MaxMessages System.Int32
+---`Field Public Static`
+---@field SavePath System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field IsOpen System.Boolean
+---`Getter Public Static`
+---@field TextBox Barotrauma.GUITextBox
+---`Getter Public Static`
+---@field Commands (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+_G['DebugConsole'] = {}
+
+---`Method Public Static`
+_G['DebugConsole'].Init = function() end
+
+---`Method Public Static`
+_G['DebugConsole'].AddToGUIUpdateList = function() end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['DebugConsole'].Update = function(deltaTime) end
+
+---`Method Public Static`
+_G['DebugConsole'].Toggle = function() end
+
+---`Method Private Static`
+---@param command Barotrauma.Identifier
+---@param client Barotrauma.Networking.GameClient
+---@return System.Boolean
+_G['DebugConsole'].IsCommandPermitted = function(command, client) end
+
+---`Method Public Static`
+_G['DebugConsole'].DequeueMessages = function() end
+
+---`Method Private Static`
+---@param msg Barotrauma.ColoredText
+_G['DebugConsole'].AddMessage = function(msg) end
+
+---`Method Private Static`
+---@param names System.String
+---@param onClientExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+_G['DebugConsole'].AssignOnClientExecute = function(names, onClientExecute) end
+
+---`Method Private Static`
+---@param names System.String
+---@param relay System.Boolean
+_G['DebugConsole'].AssignRelayToServer = function(names, relay) end
+
+---`Method Private Static`
+_G['DebugConsole'].InitProjectSpecific = function() end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param variant? System.Int32
+_G['DebugConsole'].ReloadWearables = function(character, variant) end
+
+---`Method Private Static`
+---@param firstArg System.String
+---@param secondArg System.String
+---@param action (System.Action*1Barotrauma*Sprite)|(fun(obj:Barotrauma.Sprite))
+---@return System.Boolean
+_G['DebugConsole'].TryDoActionOnSprite = function(firstArg, secondArg, action) end
+
+---`Method Private Static`
+---@param newPrices (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+---@param materialPrefab Barotrauma.ItemPrefab
+---@param fabricableItems (System.Collections.Generic.List*1Barotrauma*FabricationRecipe)|(Barotrauma.FabricationRecipe[])
+---@param newPrice System.Int32
+---@param adjustDown System.Boolean
+---@param depth? System.String
+---@param adjustItemType? Barotrauma.DebugConsole.AdjustItemTypes
+_G['DebugConsole'].PrintItemCosts = function(newPrices, materialPrefab, fabricableItems, newPrice, adjustDown, depth, adjustItemType) end
+
+---`Method Private Static`
+---@param itemCost System.Int32
+---@param componentCost System.Int32
+---@return System.Double
+_G['DebugConsole'].GetComponentCostDifference = function(itemCost, componentCost) end
+
+---`Method Private Static`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param componentCost System.Int32-ref
+---@param newComponentCost System.Int32-ref
+---@param newPrices (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+_G['DebugConsole'].GetAdjustedPrice = function(itemPrefab, componentCost, newComponentCost, newPrices) end
+
+---`Method Private Static`
+---@param command Barotrauma.DebugConsole.Command
+_G['DebugConsole'].ShowHelpMessage = function(command) end
+
+---`Method Public Static`
+---@param names System.String
+---@param onExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+_G['DebugConsole'].AssignOnExecute = function(names, onExecute) end
+
+---`Method Private Static`
+---@param healedCharacter Barotrauma.Character
+---@param healAll System.Boolean
+_G['DebugConsole'].HealCharacter = function(healedCharacter, healAll) end
+
+---`Method Public Static`
+---@param command System.String
+---@param increment? System.Int32
+---@return System.String
+_G['DebugConsole'].AutoComplete = function(command, increment) end
+
+---`Method Public Static`
+_G['DebugConsole'].ResetAutoComplete = function() end
+
+---`Method Public Static`
+---@param inputtedCommands System.String
+_G['DebugConsole'].ExecuteCommand = function(inputtedCommands) end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListAvailableLocations = function() end
+
+---`Method Private Static`
+---@param locationName System.String
+---@param teleportPosition Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['DebugConsole'].TryFindTeleportPosition = function(locationName, teleportPosition) end
+
+---`Method Private Static`
+---@param submarineName System.String
+---@return Barotrauma.DebugConsole.TFile
+_G['DebugConsole'].GetSubmarineFile = function(submarineName) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile)|(Barotrauma.DebugConsole.TFile[])
+_G['DebugConsole'].GetContentFiles = function() end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile)|(Barotrauma.DebugConsole.TFile[])
+_G['DebugConsole'].GetSubmarineFiles = function() end
+
+---`Method Private Static`
+---@param path System.String
+---@return Barotrauma.ContentFile
+_G['DebugConsole'].GetContentFile = function(path) end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListContentFilePaths = function() end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListSubmarineFileNames = function() end
+
+---`Method Private Static`
+---@param characterList (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return (System.Linq.IOrderedEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['DebugConsole'].SortSpawnedSpecies = function(characterList) end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListCharacterNames = function() end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].GetCharacterNames = function() end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].GetSpawnedSpeciesNames = function() end
+
+---`Method Private Static`
+---@overload fun(args:(System.String-arr)|(System.String[])):((System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character)))
+---@param speciesName System.String
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['DebugConsole'].FindMatchingSpecies = function(speciesName) end
+
+---`Method Private Static`
+---@param args (System.String-arr)|(System.String[])
+---@param ignoreRemotePlayers? System.Boolean
+---@param allowedRemotePlayer? Barotrauma.Networking.Client
+---@param botsOnly? System.Boolean
+---@return Barotrauma.Character
+_G['DebugConsole'].FindMatchingCharacter = function(args, ignoreRemotePlayers, allowedRemotePlayer, botsOnly) end
+
+---`Method Private Static`
+---@param cursorWorldPos Microsoft.Xna.Framework.Vector2
+---@param controlledCharacter Barotrauma.Character
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole'].TeleportCharacter = function(cursorWorldPos, controlledCharacter, args) end
+
+---`Method Public Static`
+---@param args (System.String-arr)|(System.String[])
+---@param cursorWorldPos Microsoft.Xna.Framework.Vector2
+---@param errorMsg System.String-ref
+_G['DebugConsole'].SpawnCharacter = function(args, cursorWorldPos, errorMsg) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['DebugConsole'].GetSpawnPosParams = function() end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['DebugConsole'].GetItemNameOrIdParams = function() end
+
+---`Method Private Static`
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole'].TrySpawnItem = function(args) end
+
+---`Method Public Static`
+---@param args (System.String-arr)|(System.String[])
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+---@param controlledCharacter Barotrauma.Character
+---@param errorMsg System.String-ref
+_G['DebugConsole'].SpawnItem = function(args, cursorPos, controlledCharacter, errorMsg) end
+
+---`Method Public Static`
+---@param error System.String
+_G['DebugConsole'].AddSafeError = function(error) end
+
+---`Method Public Static`
+---@param msg System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param contentPackage? Barotrauma.ContentPackage
+_G['DebugConsole'].LogError = function(msg, color, contentPackage) end
+
+---`Method Public Static`
+---@param command System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['DebugConsole'].NewCommand = function(command, color) end
+
+---`Method Public Static`
+---@overload fun(msg:Barotrauma.LocalizedString, color?:System.Nullable*1Microsoft*Xna*Framework*Color, debugOnly?:System.Boolean)
+---@param msg System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param debugOnly? System.Boolean
+_G['DebugConsole'].NewMessage = function(msg, color, debugOnly) end
+
+---`Method Private Static`
+---@param msg System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param isCommand System.Boolean
+---@param isError System.Boolean
+_G['DebugConsole'].NewMessage = function(msg, color, isCommand, isError) end
+
+---`Method Public Static`
+---@param question System.String
+---@param onAnswered (Barotrauma.DebugConsole.QuestionCallback)|(fun(answer:System.String))
+---@param args? (System.String-arr)|(System.String[])
+---@param argCount? System.Int32
+_G['DebugConsole'].ShowQuestionPrompt = function(question, onAnswered, args, argCount) end
+
+---`Method Private Static`
+---@param s System.String
+---@param timeSpan System.TimeSpan-ref
+---@return System.Boolean
+_G['DebugConsole'].TryParseTimeSpan = function(s, timeSpan) end
+
+---`Method Public Static`
+---@param commandName System.String
+---@return Barotrauma.DebugConsole.Command
+_G['DebugConsole'].FindCommand = function(commandName) end
+
+---`Method Public Static`
+---@overload fun(message:Barotrauma.LocalizedString)
+---@param message System.String
+_G['DebugConsole'].Log = function(message) end
+
+---`Method Public Static`
+---@param error Barotrauma.LocalizedString
+---@param e? System.Exception
+---@param contentPackage? Barotrauma.ContentPackage
+---@param createMessageBox? System.Boolean
+---@param appendStackTrace? System.Boolean
+_G['DebugConsole'].ThrowErrorLocalized = function(error, e, contentPackage, createMessageBox, appendStackTrace) end
+
+---`Method Public Static`
+---@param error System.String
+---@param e? System.Exception
+---@param contentPackage? Barotrauma.ContentPackage
+---@param createMessageBox? System.Boolean
+---@param appendStackTrace? System.Boolean
+_G['DebugConsole'].ThrowError = function(error, e, contentPackage, createMessageBox, appendStackTrace) end
+
+---`Method Public Static`
+---@param gaIdentifier System.String
+---@param errorMsg System.String
+_G['DebugConsole'].ThrowErrorAndLogToGA = function(gaIdentifier, errorMsg) end
+
+---`Method Public Static`
+---@param identifier System.String
+---@param errorMsg System.String
+---@param e? System.Exception
+_G['DebugConsole'].ThrowErrorOnce = function(identifier, errorMsg, e) end
+
+---`Method Public Static`
+---@param warning System.String
+---@param contentPackage? Barotrauma.ContentPackage
+_G['DebugConsole'].AddWarning = function(warning, contentPackage) end
+
+---`Method Private Static`
+---@param message System.String
+---@param contentPackage Barotrauma.ContentPackage
+---@return System.String
+_G['DebugConsole'].AddContentPackageInfoToMessage = function(message, contentPackage) end
+
+---`Method Private Static`
+---@param errorMsg System.String
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['DebugConsole'].CreateMessageBox = function(errorMsg) end
+
+---`Method Public Static`
+_G['DebugConsole'].SaveLogs = function() end
+
+---`Method Private Static`
+---@param restrictions Barotrauma.EnemyTargetingRestrictions
+_G['DebugConsole'].ToggleEnemyAITargetingRestrictions = function(restrictions) end
+
+---`Method Public Static`
+_G['DebugConsole'].DeactivateCheats = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.DebugConsole
+_G['DebugConsole'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.DebugConsole
+_G['DebugConsole'].__new = function() end
+
diff --git a/Meta/Types/client/_00007FFD97EFADB8.lua b/Meta/Types/client/_00007FFD97EFADB8.lua
new file mode 100644
index 0000000..c3e0374
--- /dev/null
+++ b/Meta/Types/client/_00007FFD97EFADB8.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.DebugConsole.Command : System.Object
+---`Field Public Instance`
+---@field OnClientExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+---`Field Public Instance`
+---@field RelayToServer System.Boolean
+---`Field Public Instance`
+---@field Names (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Help System.String
+---`Field Public Instance`
+---@field OnExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+---`Field Public Instance`
+---@field GetValidArgs (System.Func*1System*String-arr-arr)|(fun():((System.String-arr-arr)|((System.String-arr)|(System.String[])[])))
+---`Field Public Instance`
+---@field IsCheat System.Boolean
+_G['DebugConsole']['Command'] = {}
+
+---`Method Public Instance`
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole']['Command'].ClientExecute = function(args) end
+
+---`Method Public Instance`
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole']['Command'].Execute = function(args) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['DebugConsole']['Command'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param help System.String
+---@param onExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+---@param getValidArgs? (System.Func*1System*String-arr-arr)|(fun():((System.String-arr-arr)|((System.String-arr)|(System.String[])[])))
+---@param isCheat? System.Boolean
+---@return Barotrauma.DebugConsole.Command
+_G['DebugConsole']['Command'] = function(name, help, onExecute, getValidArgs, isCheat) end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param help System.String
+---@param onExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+---@param getValidArgs? (System.Func*1System*String-arr-arr)|(fun():((System.String-arr-arr)|((System.String-arr)|(System.String[])[])))
+---@param isCheat? System.Boolean
+---@return Barotrauma.DebugConsole.Command
+_G['DebugConsole']['Command'].__new = function(name, help, onExecute, getValidArgs, isCheat) end
+
diff --git a/Meta/Types/client/_0Global.lua b/Meta/Types/client/_0Global.lua
new file mode 100644
index 0000000..4ac1722
--- /dev/null
+++ b/Meta/Types/client/_0Global.lua
@@ -0,0 +1,2645 @@
+---@meta
+
+---@class System.Type : System.Reflection.MemberInfo
+---@class System.Reflection.MemberInfo : System.Object
+---@class System.ValueType : System.Object
+---@class System.Char : System.ValueType
+---@class System.StringComparison : System.Enum
+---@class System.Enum : System.ValueType
+---@class System.Globalization.CultureInfo : System.Object
+---@class System.Globalization.CompareInfo : System.Object
+---@class System.Globalization.CompareOptions : System.Enum
+---@class System.ReadOnlySpan*1System*Char : System.ValueType, {[System.Int32]:System.Char-ref}
+---@class System.ReadOnlySpan*1System*Int32 : System.ValueType, {[System.Int32]:System.Int32-ref}
+---@class System.Int32-ref
+---@class System.StringSplitOptions : System.Enum
+---@class System.String-arr : System.Array
+---@class System.Array : System.Object, {[System.Int32]:System.Object}
+---@class System.Char-arr : System.Array
+---@class System.Collections.Generic.ValueListBuilder
+---@class System.Text.TrimType : System.Enum
+---@class System.Char-ptr
+---@class System.UInt32-ptr
+---@class System.Char-ref
+---@class System.Byte-ptr
+---@class System.Text.Encoding : System.Object
+---@class System.IFormatProvider
+---@class System.CharEnumerator : System.Object
+---@class System.Text.StringRuneEnumerator : System.ValueType
+---@class System.TypeCode : System.Enum
+---@class System.Text.NormalizationForm : System.Enum
+---@class System.Object-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*String
+---@class System.ParamsArray : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.ReadOnlySpan*1System*String : System.ValueType, {[System.Int32]:System.String-ref}
+---@class System.Byte-ref
+---@class System.IntPtr : System.ValueType
+---@class System.SByte-ptr
+---@class System.String.TState : System.Object
+---@class System.Buffers.SpanAction*1System*Char*1System*String*TState : System.MulticastDelegate
+---@class System.MulticastDelegate : System.Delegate
+---@class System.Delegate : System.Object
+---@class System.Span*1System*Char : System.ValueType, {[System.Int32]:System.Char-ref}
+---@class System.Runtime.CompilerServices.DefaultInterpolatedStringHandler-ref
+---@class System.ReadOnlySpan
+---@class System.Boolean-ref
+---@class System.Globalization.NumberStyles : System.Enum
+---@class System.Globalization.NumberFormatInfo : System.Object
+---@class System.SByte-ref
+---@class System.Int16-ref
+---@class System.UInt16-ref
+---@class System.Int32.TOther : System.Object
+---@class System.UInt32-ref
+---@class System.Int64-ref
+---@class System.UInt64-ref
+---@class System.Single-ref
+---@class System.Double-ref
+---@class System.Globalization.TimeSpanStyles : System.Enum
+---@class System.TimeSpan-ref
+---@class System.IO.TextReader : System.MarshalByRefObject
+---@class System.MarshalByRefObject : System.Object
+---@class System.IO.TextWriter : System.MarshalByRefObject
+---@class System.ConsoleCancelEventHandler : System.MulticastDelegate
+---@class System.ConsoleCancelEventArgs : System.EventArgs
+---@class System.EventArgs : System.Object
+---@class System.Runtime.InteropServices.PosixSignalRegistration : System.Object
+---@class System.Runtime.CompilerServices.StrongBox*1System*Boolean : System.Object
+---@class System.ConsoleColor : System.Enum
+---@class System.Decimal : System.ValueType
+---@class System.Runtime.InteropServices.PosixSignalContext : System.Object
+---@class System.ConsoleKeyInfo : System.ValueType
+---@class System.IO.Stream : System.MarshalByRefObject
+---@class System.ValueTuple*1System*Int32*1System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Reflection.MethodBase : System.Reflection.MemberInfo
+---@class System.Collections.IDictionary : {[System.Object]:System.Object}
+---@class System.Byte-arr : System.Array
+---@class System.UIntPtr : System.ValueType
+---@class System.IRuntimeMethodInfo
+---@class System.Runtime.Serialization.StreamingContext : System.ValueType
+---@class System.Byte-arr-ref
+---@class System.Object-arr-ref
+---@class System.DispatchState-ref
+---@class System.Exception.ExceptionMessageKind : System.Enum
+---@class System.Runtime.CompilerServices.StringHandleOnStack : System.ValueType
+---@class System.Exception.DispatchState : System.ValueType
+---@class System.Runtime.Serialization.SerializationInfo : System.Object
+---@class Microsoft.Xna.Framework.Graphics.Texture : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---@class Microsoft.Xna.Framework.Graphics.GraphicsResource : System.Object
+---@class System.Int32-arr : System.Array
+---@class Barotrauma.Sounds.Sound : System.Object
+---@class Barotrauma.Media.Video.Internal.EventCallback : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1System*IntPtr*1Barotrauma*Media*Video : System.Object, {[System.IntPtr]:Barotrauma.Media.Video}, {[System.Object]:System.Object}
+---@class Microsoft.Xna.Framework.Graphics.GraphicsDevice : System.Object
+---@class Microsoft.Xna.Framework.Graphics.SpriteBatcher : System.Object
+---@class Microsoft.Xna.Framework.Graphics.SpriteSortMode : System.Enum
+---@class Microsoft.Xna.Framework.Graphics.BlendState : Microsoft.Xna.Framework.Graphics.GraphicsResource, {[System.Int32]:Microsoft.Xna.Framework.Graphics.TargetBlendState}
+---@class Microsoft.Xna.Framework.Graphics.SamplerState : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---@class Microsoft.Xna.Framework.Graphics.DepthStencilState : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---@class Microsoft.Xna.Framework.Graphics.RasterizerState : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---@class Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.Effect : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---@class Microsoft.Xna.Framework.Graphics.EffectParameter : System.Object
+---@class Microsoft.Xna.Framework.Graphics.EffectPass : System.Object
+---@class System.Nullable*1Microsoft*Xna*Framework*Matrix : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.Viewport : System.ValueType
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Object : System.Object, {[System.String]:System.Object}, {[System.Object]:System.Object}
+---@class Microsoft.Xna.Framework.Graphics.SpriteFont : System.Object
+---@class System.Text.StringBuilder : System.Object, {[System.Int32]:System.Char}
+---@class System.Nullable*1Microsoft*Xna*Framework*Vector2 : System.ValueType
+---@class System.Nullable*1Microsoft*Xna*Framework*Rectangle : System.ValueType
+---@class System.Nullable*1Microsoft*Xna*Framework*Color : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture : System.ValueType
+---@class System.Nullable*1System*Int32 : System.ValueType, integer
+---@class SharpDX.DXGI.SampleDescription : System.ValueType
+---@class SharpDX.Direct3D11.Texture2D : SharpDX.Direct3D11.Resource
+---@class SharpDX.Direct3D11.Resource : SharpDX.Direct3D11.DeviceChild
+---@class SharpDX.Direct3D11.DeviceChild : SharpDX.ComObject
+---@class SharpDX.ComObject : SharpDX.CppObject
+---@class SharpDX.CppObject : SharpDX.DisposeBase
+---@class SharpDX.DisposeBase : System.Object
+---@class SharpDX.WIC.ImagingFactory : SharpDX.ComObject
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Rectangle-ref
+---@class Microsoft.Xna.Framework.Graphics.SurfaceFormat : System.Enum
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.SurfaceType : System.Enum
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class Microsoft.Xna.Framework.Graphics.T-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.Texture2D.T : System.ValueType
+---@class SharpDX.WIC.BitmapSource : SharpDX.ComObject
+---@class SharpDX.WIC.BitmapDecoder-ref
+---@class SharpDX.Direct3D11.Texture2DDescription : System.ValueType
+---@class SharpDX.Direct3D11.ShaderResourceView : SharpDX.Direct3D11.ResourceView
+---@class SharpDX.Direct3D11.ResourceView : SharpDX.Direct3D11.DeviceChild
+---@class Microsoft.Xna.Framework.Matrix-ref
+---@class System.Single-arr : System.Array
+---@class System.Nullable*1Microsoft*Xna*Framework*Vector3 : System.ValueType
+---@class Microsoft.Xna.Framework.Vector3-ref
+---@class Microsoft.Xna.Framework.Quaternion : System.ValueType
+---@class Microsoft.Xna.Framework.Quaternion-ref
+---@class Microsoft.Xna.Framework.Plane : System.ValueType
+---@class Microsoft.Xna.Framework.Plane-ref
+---@class Microsoft.Xna.Framework.Vector2-ref
+---@class Microsoft.Xna.Framework.Vector2-arr : System.Array
+---@class Microsoft.Xna.Framework.Vector3-arr : System.Array
+---@class Microsoft.Xna.Framework.Vector4-ref
+---@class Microsoft.Xna.Framework.Vector4-arr : System.Array
+---@class Microsoft.Xna.Framework.Point-ref
+---@class Microsoft.Xna.Framework.Graphics.VertexPositionTexture-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.VertexPositionTexture : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*EntityGrid*1Microsoft*Xna*Framework*Graphics*VertexPositionColorTexture-arr : System.Object, {[Barotrauma.EntityGrid]:(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture-arr)|(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture[])}, {[System.Object]:System.Object}
+---@class Microsoft.Xna.Framework.Graphics.BasicEffect : Microsoft.Xna.Framework.Graphics.Effect
+---@class System.Collections.Generic.Dictionary*1Barotrauma*EntityGrid*1System*Int32 : System.Object, {[Barotrauma.EntityGrid]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*EntityGrid : System.Object, {[System.Int32]:Barotrauma.EntityGrid}, {[System.Int32]:System.Object}
+---@class Microsoft.Xna.Framework.Graphics.RenderTarget2D : Microsoft.Xna.Framework.Graphics.Texture2D
+---@class Barotrauma.LuaCsMessageLogger : System.MulticastDelegate
+---@class Barotrauma.LuaCsExceptionHandler : System.MulticastDelegate
+---@class Barotrauma.LuaCsMessageOrigin : System.Enum
+---@class System.Reflection.FieldInfo : System.Reflection.MemberInfo
+---@class System.Type-arr : System.Array
+---@class System.Reflection.MethodInfo : System.Reflection.MethodBase
+---@class System.Reflection.PropertyInfo : System.Reflection.MemberInfo
+---@class MoonSharp.Interpreter.DynValue : System.Object
+---@class System.Nullable*1System*Boolean : System.ValueType, boolean
+---@class System.Collections.Generic.HashSet*1Barotrauma*Item : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Character : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*DebugConsole*Command : System.Object, {[System.Int32]:Barotrauma.DebugConsole.Command}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*DebugConsole*Command
+---@class Barotrauma.ContentPackage-arr : System.Array
+---@class System.AsyncCallback : System.MulticastDelegate
+---@class System.IAsyncResult
+---@class HarmonyLib.Harmony : System.Object
+---@class System.Lazy*1System*Reflection*Emit*ModuleBuilder : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*ValueTuple*3Barotrauma*LuaCsHook*LuaCsHookCallback*3Barotrauma*ACsMod : System.Object, {[System.String]:(System.Collections.Generic.Dictionary*1System*String*1System*ValueTuple*2Barotrauma*LuaCsHook*LuaCsHookCallback*2Barotrauma*ACsMod)|({[System.String]:(System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1System*ValueTuple*2Barotrauma*LuaCsHook*LuaCsHookCallback*2Barotrauma*ACsMod : System.Object, {[System.String]:System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod}, {[System.Object]:System.Object}
+---@class System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*LuaCsHook*MethodKey*1Barotrauma*LuaCsHook*PatchedMethod : System.Object, {[Barotrauma.LuaCsHook.MethodKey]:Barotrauma.LuaCsHook.PatchedMethod}, {[System.Object]:System.Object}
+---@class Barotrauma.LuaCsHook.MethodKey : System.ValueType
+---@class Barotrauma.LuaCsHook.PatchedMethod : System.Object
+---@class Barotrauma.LuaCsSetup : System.Object
+---@class System.Diagnostics.Stopwatch : System.Object
+---@class System.Collections.Generic.Dictionary*1System*Int64*1System*Collections*Generic*HashSet*2System*ValueTuple*3System*String*3Barotrauma*LuaCsPatch*3Barotrauma*ACsMod : System.Object, {[System.Int64]:(System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod)|(System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod : System.Object
+---@class System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Text.RegularExpressions.Regex : System.Object
+---@class System.Reflection.Emit.ModuleBuilder : System.Reflection.Module
+---@class System.Reflection.Module : System.Object
+---@class Barotrauma.ACsMod : System.Object
+---@class Barotrauma.LuaCsHook.T : System.Object
+---@class System.Object-ref
+---@class System.Collections.Generic.List*1Barotrauma*LuaCsTimer*TimedAction : System.Object, {[System.Int32]:Barotrauma.LuaCsTimer.TimedAction}, {[System.Int32]:System.Object}
+---@class Barotrauma.LuaCsTimer.TimedAction : System.Object
+---@class System.IO.FileStream : System.IO.Stream
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1System*Collections*Generic*Queue*2Barotrauma*Networking*IReadMessage : System.Object, {[System.UInt16]:(System.Collections.Generic.Queue*1Barotrauma*Networking*IReadMessage)|(fun():(Barotrauma.Networking.IReadMessage))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Queue*1Barotrauma*Networking*IReadMessage : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*LuaCsAction : System.Object, {[System.String]:(Barotrauma.LuaCsAction)|(fun(...:System.Object))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1System*String : System.Object, {[System.UInt16]:System.String}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1System*UInt16 : System.Object, {[System.String]:System.UInt16}, {[System.Object]:System.Object}
+---@class System.Net.Http.HttpClient : System.Net.Http.HttpMessageInvoker
+---@class System.Net.Http.HttpMessageInvoker : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*String : System.Object, {[System.String]:System.String}, {[System.Object]:System.Object}
+---@class Barotrauma.Networking.INetSerializable
+---@class Barotrauma.Networking.NetEntityEvent.IData
+---@class System.Collections.Generic.List*1Barotrauma*LuaCsSteam*WorkshopItemDownload : System.Object, {[System.Int32]:Barotrauma.LuaCsSteam.WorkshopItemDownload}, {[System.Int32]:System.Object}
+---@class Barotrauma.LuaCsSteam.WorkshopItemDownload : System.ValueType
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*Double : System.Object, {[System.String]:(System.Collections.Generic.Dictionary*1System*String*1System*Double)|({[System.String]:(System.Double)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Double : System.Object, {[System.String]:System.Double}, {[System.Object]:System.Object}
+---@class System.Xml.Linq.XObject : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Type
+---@class System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement
+---@class Barotrauma.LuaCsConfig.ValueType : System.Enum
+---@class System.Collections.Generic.List*1System*Type : System.Object, {[System.Int32]:System.Type}, {[System.Int32]:System.Object}
+---@class Barotrauma.LuaCsConfig.T : System.Object
+---@class Barotrauma.LuaCsConfig.T : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*LuaModStore : System.Object
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1System*String*1MoonSharp*Interpreter*DynValue : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*CsModStore : System.Object
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1Barotrauma*ACsMod*1System*Object : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1MoonSharp*Interpreter*DynValue : System.Object, {[System.String]:MoonSharp.Interpreter.DynValue}, {[System.Object]:System.Object}
+---@class System.Action*1System*Reflection*Assembly : System.MulticastDelegate
+---@class System.Reflection.Assembly : System.Object
+---@class System.Action*1System*String*1System*Exception : System.MulticastDelegate
+---@class System.Action*1System*Guid : System.MulticastDelegate
+---@class System.Guid : System.ValueType
+---@class System.Func*1Barotrauma*AssemblyManager*LoadedACL*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.AssemblyManager.LoadedACL : System.Object
+---@class System.Collections.Concurrent.ConcurrentDictionary*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type : System.Object, {[System.String]:(System.Collections.Immutable.ImmutableList*1System*Type)|(System.Type[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1System*String*1System*Type : System.Object, {[System.String]:System.Type}, {[System.String]:System.Type}, {[System.Object]:System.Object}
+---@class System.Collections.Concurrent.ConcurrentDictionary*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL : System.Object, {[System.Guid]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL : System.ValueType
+---@class System.Collections.Generic.List*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader : System.Object, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.Object}
+---@class System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader : System.Object
+---@class System.Threading.ReaderWriterLockSlim : System.Object
+---@class System.Collections.Immutable.ImmutableList*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader : System.Object, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AssemblyManager*LoadedACL
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*AssemblyManager*LoadedACL : System.Object, {[System.Int32]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Int32]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Int32]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*SyntaxTree
+---@class Microsoft.CodeAnalysis.SyntaxTree : System.Object
+---@class System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*MetadataReference
+---@class Microsoft.CodeAnalysis.MetadataReference : System.Object
+---@class Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions : Microsoft.CodeAnalysis.CompilationOptions
+---@class Microsoft.CodeAnalysis.CompilationOptions : System.Object
+---@class System.Guid-ref
+---@class System.Collections.Generic.IEnumerable*1System*Reflection*Assembly
+---@class Barotrauma.AssemblyLoadingSuccessState : System.Enum
+---@class Barotrauma.LoadedACL-ref
+---@class System.Collections.Generic.List*1Barotrauma*ContentPackage : System.Object, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Collections*Immutable*ImmutableList*2Barotrauma*ContentPackage : System.Object, {[Barotrauma.ContentPackage]:(System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage : System.Object, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Guid : System.Object, {[Barotrauma.ContentPackage]:System.Guid}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Guid*1Barotrauma*ContentPackage : System.Object, {[System.Guid]:Barotrauma.ContentPackage}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Generic*HashSet*2Barotrauma*IAssemblyPlugin : System.Object, {[System.Guid]:(System.Collections.Generic.HashSet*1Barotrauma*IAssemblyPlugin)|(Barotrauma.IAssemblyPlugin[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*IAssemblyPlugin : System.Object
+---@class Barotrauma.IAssemblyPlugin
+---@class System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableHashSet*2System*Type : System.Object, {[System.Guid]:(System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableHashSet*1System*Type : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1Barotrauma*RunConfig : System.Object, {[Barotrauma.ContentPackage]:Barotrauma.RunConfig}, {[System.Object]:System.Object}
+---@class Barotrauma.RunConfig : System.Object
+---@class System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableList*2System*Type : System.Object, {[System.Guid]:(System.Collections.Immutable.ImmutableList*1System*Type)|(System.Type[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableList*1System*Type : System.Object, {[System.Int32]:System.Type}, {[System.Int32]:System.Type}, {[System.Int32]:System.Type}, {[System.Int32]:System.Object}
+---@class System.DateTime : System.ValueType
+---@class System.Action : System.MulticastDelegate
+---@class Microsoft.CodeAnalysis.CSharp.CSharpParseOptions : Microsoft.CodeAnalysis.ParseOptions
+---@class Microsoft.CodeAnalysis.ParseOptions : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage
+---@class Barotrauma.ContentPackage-ref
+---@class System.Collections.Generic.IEnumerable
+---@class Barotrauma.RunConfig-ref
+---@class System.Collections.Immutable.ImmutableList
+---@class System.Collections.Generic.Dictionary
+---@class System.Collections.Generic.IEnumerable
+---@class System.Collections.Generic.IEnumerable
+---@class System.Func*1Barotrauma*ContentPackage*1System*Boolean : System.MulticastDelegate
+---@class MoonSharp.Interpreter.Script : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2System*String : System.Object, {[System.String]:(System.Collections.Generic.List*1System*String)|(System.String[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*String : System.Object, {[System.Int32]:System.String}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableHashSet*1System*Char : System.Object
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Vector2}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Microsoft*Xna*Framework*RectangleF
+---@class Microsoft.Xna.Framework.RectangleF : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*RectangleF : System.ValueType, {[System.Int32]:Microsoft.Xna.Framework.RectangleF}, {[System.Int32]:Microsoft.Xna.Framework.RectangleF}, {[System.Int32]:System.Object}, {[System.Int32]:Microsoft.Xna.Framework.RectangleF}
+---@class System.Collections.Generic.List*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])}, {[System.Int32]:System.Object}
+---@class Barotrauma.GUISelector*1Barotrauma*GUIFontPrefab : System.Object
+---@class Microsoft.Xna.Framework.Color-arr : System.Array
+---@class System.Version : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Func*1Barotrauma*ToolBox*T*1System*Single : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Func*1Barotrauma*ToolBox*T*1System*Single : System.MulticastDelegate
+---@class System.Random : System.Object
+---@class System.Collections.Generic.IList*1Barotrauma*ToolBox*T : {[System.Int32]:Barotrauma.ToolBox.T}
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Collections.Generic.IList*1System*Single : {[System.Int32]:System.Single}
+---@class System.Collections.Generic.IList*1Barotrauma*ToolBox*T : {[System.Int32]:Barotrauma.ToolBox.T}
+---@class Barotrauma.ToolBox.T : System.Object
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Reflection.BindingFlags : System.Enum
+---@class Barotrauma.ToolBox.T : System.Object
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*ToolBox*T : System.Object, {[System.Int32]:Barotrauma.ToolBox.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.ToolBox.T : System.Object
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Net.IPEndPoint : System.Net.EndPoint
+---@class System.Net.EndPoint : System.Object
+---@class Barotrauma.SquareLine : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*PrefabWithUintIdentifier
+---@class System.Collections.Immutable.ImmutableArray*1System*UInt32 : System.ValueType, {[System.Int32]:System.UInt32}, {[System.Int32]:System.UInt32}, {[System.Int32]:System.Object}, {[System.Int32]:System.UInt32}
+---@class Barotrauma.PrefabCollection*1Barotrauma*ToolBox*T : System.Object, {[Barotrauma.Identifier]:Barotrauma.ToolBox.T}, {[System.String]:Barotrauma.ToolBox.T}
+---@class Barotrauma.ToolBox.T : Barotrauma.PrefabWithUintIdentifier
+---@class System.Collections.Generic.IEnumerable*1System*UInt32
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ToolBox*T : System.ValueType, {[System.Int32]:Barotrauma.ToolBox.T}, {[System.Int32]:Barotrauma.ToolBox.T}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ToolBox.T}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Rand*RandSync*1System*Random : System.Object, {[Barotrauma.Rand.RandSync]:System.Random}, {[System.Object]:System.Object}
+---@class Steamworks.SteamServerClass*1Steamworks*SteamServer : Steamworks.SteamClass
+---@class Steamworks.SteamClass : System.Object
+---@class System.Action*1Steamworks*SteamId*1Steamworks*SteamId*1Steamworks*AuthResponse : System.MulticastDelegate
+---@class Steamworks.SteamId : System.ValueType
+---@class Steamworks.AuthResponse : System.Enum
+---@class System.Action*1Steamworks*Result*1System*Boolean : System.MulticastDelegate
+---@class Steamworks.Result : System.Enum
+---@class System.Action*1Steamworks*Result : System.MulticastDelegate
+---@class System.Action*1Steamworks*SteamNetworkingAvailability : System.MulticastDelegate
+---@class Steamworks.SteamNetworkingAvailability : System.Enum
+---@class System.Collections.Generic.List*1Steamworks*SteamClass : System.Object, {[System.Int32]:Steamworks.SteamClass}, {[System.Int32]:System.Object}
+---@class Steamworks.ISteamGameServer : Steamworks.SteamInterface
+---@class Steamworks.SteamInterface : System.Object
+---@class Steamworks.AppId : System.ValueType
+---@class Steamworks.SteamServerInit : System.ValueType
+---@class Steamworks.BeginAuthResult : System.Enum
+---@class Steamworks.Data.OutgoingPacket-ref
+---@class Steamworks.UserHasLicenseForAppResult : System.Enum
+---@class Steamworks.Relationship : System.Enum
+---@class Steamworks.FriendState : System.Enum
+---@class System.Nullable*1Steamworks*Friend*FriendGameInfo : System.ValueType
+---@class System.Threading.Tasks.Task : System.Object
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image : System.Threading.Tasks.Task
+---@class System.Threading.Tasks.Task*1System*Boolean : System.Threading.Tasks.Task
+---@class Steamworks.Data.SteamUGCDetails_t : System.ValueType
+---@class Steamworks.Data.PublishedFileId : System.ValueType
+---@class Steamworks.Data.PublishedFileId-arr : System.Array
+---@class Steamworks.Ugc.Visibility : System.Enum
+---@class Steamworks.Data.UgcAdditionalPreview-arr : System.Array
+---@class Steamworks.Data.UgcAdditionalPreview : System.ValueType
+---@class System.Nullable*1System*DateTime : System.ValueType
+---@class Steamworks.ItemState : System.Enum
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*Item : System.Threading.Tasks.Task
+---@class System.Action*1System*Single : System.MulticastDelegate
+---@class System.Threading.CancellationToken : System.ValueType
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Result : System.Threading.Tasks.Task
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*UserItemVote : System.Threading.Tasks.Task
+---@class Steamworks.Ugc.Editor : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*SteamWorkshopId : System.ValueType
+---@class Barotrauma.T1-ref
+---@class Barotrauma.Character-ref
+---@class System.Func*1Barotrauma*Character*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class Barotrauma.Option.TType : System.Object
+---@class Barotrauma.Option*1Barotrauma*Option*TType : System.ValueType
+---@class System.Func*1Barotrauma*Character*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class Barotrauma.Option*1Barotrauma*Option*TType : System.ValueType
+---@class System.Func*1Barotrauma*Character*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType : System.Threading.Tasks.Task
+---@class System.Func*1Barotrauma*Character*1Barotrauma*Character : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Character : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Character : System.MulticastDelegate
+---@class Barotrauma.Networking.AccountId-ref
+---@class System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Networking*AccountId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*AccountId : System.MulticastDelegate
+---@class Barotrauma.Networking.SteamId-ref
+---@class System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Networking*SteamId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*SteamId : System.MulticastDelegate
+---@class Barotrauma.Networking.EpicAccountId-ref
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Networking*EpicAccountId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*EpicAccountId : System.MulticastDelegate
+---@class Barotrauma.ContentPackageId-ref
+---@class System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId*1Barotrauma*ContentPackageId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*ContentPackageId : System.MulticastDelegate
+---@class System.DateTime-ref
+---@class System.Func*1System*DateTime*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1System*DateTime*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1System*DateTime*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1System*DateTime*1System*DateTime : System.MulticastDelegate
+---@class System.Func*1System*DateTime : System.MulticastDelegate
+---@class System.Action*1System*DateTime : System.MulticastDelegate
+---@class Barotrauma.Networking.BannedPlayer-ref
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Networking*BannedPlayer : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*BannedPlayer : System.MulticastDelegate
+---@class System.Nullable
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr : System.Object, {[System.Int32]:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}, {[System.Int32]:System.Object}
+---@class System.Double-arr : System.Array
+---@class System.MidpointRounding : System.Enum
+---@class System.Math.T : System.Object
+---@class System.ValueTuple*1System*Double*1System*Double : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Double-ptr
+---@class System.ValueTuple*1System*SByte*1System*SByte : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Byte*1System*Byte : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Int16*1System*Int16 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt16*1System*UInt16 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt32*1System*UInt32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Int64*1System*Int64 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt64*1System*UInt64 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*IntPtr*1System*IntPtr : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UIntPtr*1System*UIntPtr : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Single*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Single-ptr
+---@class System.Collections.Generic.Queue*1System*Double : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Queue*2System*Int64 : System.Object, {[System.String]:(System.Collections.Generic.Queue*1System*Int64)|(fun():(System.Int64))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Queue*1System*Int64 : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Int64 : System.Object, {[System.String]:System.Int64}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1System*String : {[System.Int32]:System.String}
+---@class Microsoft.Xna.Framework.Game : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1System*String : System.ValueType, {[System.Int32]:System.String}, {[System.Int32]:System.String}, {[System.Int32]:System.Object}, {[System.Int32]:System.String}
+---@class Barotrauma.Option*1System*String : System.ValueType
+---@class System.Threading.Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
+---@class System.Runtime.ConstrainedExecution.CriticalFinalizerObject : System.Object
+---@class Microsoft.Xna.Framework.GameTime : System.Object
+---@class Barotrauma.Option*1Barotrauma*Networking*ConnectCommand : System.ValueType
+---@class Barotrauma.ModDownloadScreen : Barotrauma.Screen
+---@class System.Collections.Generic.Queue*1System*Action : System.Object
+---@class Microsoft.Xna.Framework.Graphics.GraphicsProfile : System.Enum
+---@class Microsoft.Xna.Framework.GraphicsDeviceManager : System.Object
+---@class Barotrauma.WindowMode : System.Enum
+---@class Microsoft.Xna.Framework.FileDropEventArgs : System.EventArgs
+---@class Steamworks.Data.Lobby : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus
+---@class Barotrauma.CoroutineStatus : System.Object
+---@class Barotrauma.CoroutineHandle : System.Object
+---@class System.Tuple*1Barotrauma*SerializableProperty*1Barotrauma*PropertyCommand : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUIComponent-arr : System.Object, {[Barotrauma.Identifier]:(Barotrauma.GUIComponent-arr)|(Barotrauma.GUIComponent[])}, {[System.Object]:System.Object}
+---@class Barotrauma.GUIComponent-arr : System.Array
+---@class Barotrauma.ISerializableEntity
+---@class System.Func*1System*Single : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ISerializableEntity*1System*Object : System.Object, {[Barotrauma.ISerializableEntity]:System.Object}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*SerializableProperty
+---@class System.ComponentModel.AttributeCollection : System.Object, {[System.Int32]:System.Attribute}, {[System.Type]:System.Attribute}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*Object*2System*Object : System.Object, {[Barotrauma.Identifier]:(System.Func*1System*Object*1System*Object)|(fun(arg:System.Object):(System.Object))}, {[Barotrauma.Identifier]:(System.Func*1System*Object*1System*Object)|(fun(arg:System.Object):(System.Object))}, {[System.Object]:System.Object}
+---@class System.Func*1System*Object*1System*Object : System.MulticastDelegate
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*String : System.Object, {[System.Type]:System.String}, {[System.Type]:System.String}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Type*1System*Collections*Generic*Dictionary*2Barotrauma*Identifier*2Barotrauma*SerializableProperty : System.Object, {[System.Type]:(System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty : System.Object, {[Barotrauma.Identifier]:Barotrauma.SerializableProperty}, {[System.Object]:System.Object}
+---@class Barotrauma.SerializableProperty.T : System.Attribute
+---@class System.Attribute : System.Object
+---@class Barotrauma.Identifier-arr : System.Array
+---@class System.String-ref
+---@class System.Collections.Generic.List*1Barotrauma*SerializableProperty : System.Object, {[System.Int32]:Barotrauma.SerializableProperty}, {[System.Int32]:System.Object}
+---@class System.ComponentModel.PropertyDescriptor : System.ComponentModel.MemberDescriptor
+---@class System.ComponentModel.MemberDescriptor : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:Barotrauma.LocalizedString}, {[System.Int32]:Barotrauma.LocalizedString}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.LocalizedString}
+---@class Barotrauma.LocalizedString-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*LocalizedString : {[System.Int32]:Barotrauma.LocalizedString}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*LocalizedString*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals : System.Object, {[Barotrauma.LocalizedString]:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals}, {[Barotrauma.LocalizedString]:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals}, {[System.Object]:System.Object}
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals
+---@class System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.LocalizedString.LoadedSuccessfully : System.Enum
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*String*2System*String : System.Object, {[Barotrauma.Identifier]:(System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))}, {[Barotrauma.Identifier]:(System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))}, {[System.Object]:System.Object}
+---@class System.Func*1System*String*1System*String : System.MulticastDelegate
+---@class Barotrauma.LStringSplitter : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier : System.ValueType, {[System.Int32]:Barotrauma.Identifier}, {[System.Int32]:Barotrauma.Identifier}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Identifier}
+---@class Barotrauma.TrimLString.Mode : System.Enum
+---@class System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*RichTextData : System.ValueType
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack : System.Object, {[Barotrauma.LanguageIdentifier]:(System.Collections.Immutable.ImmutableList*1Barotrauma*TextPack)|(Barotrauma.TextPack[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*WeakReference*2Barotrauma*TagLString : System.Object, {[Barotrauma.Identifier]:System.WeakReference*1Barotrauma*TagLString}, {[System.Object]:System.Object}
+---@class System.WeakReference*1Barotrauma*TagLString : System.Object
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TextManager*SpeciallyHandledCharCategory : System.ValueType, {[System.Int32]:Barotrauma.TextManager.SpeciallyHandledCharCategory}, {[System.Int32]:Barotrauma.TextManager.SpeciallyHandledCharCategory}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TextManager.SpeciallyHandledCharCategory}
+---@class Barotrauma.TextManager.SpeciallyHandledCharCategory : System.Enum
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*TextManager*SpeciallyHandledCharCategory*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Range*3System*Int32 : System.Object, {[Barotrauma.TextManager.SpeciallyHandledCharCategory]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])}, {[Barotrauma.TextManager.SpeciallyHandledCharCategory]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32 : System.ValueType, {[System.Int32]:Barotrauma.Range*1System*Int32}, {[System.Int32]:Barotrauma.Range*1System*Int32}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Range*1System*Int32}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LanguageIdentifier
+---@class System.Text.Unicode.UnicodeRange-arr : System.Array
+---@class System.Text.Unicode.UnicodeRange : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2System*String
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1System*String : System.ValueType
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.FormatCapitals : System.Enum
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1System*String*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.LocalizedString-ref
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*TextPack*Text : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text)|(Barotrauma.TextPack.Text[])}, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text)|(Barotrauma.TextPack.Text[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text : System.ValueType, {[System.Int32]:Barotrauma.TextPack.Text}, {[System.Int32]:Barotrauma.TextPack.Text}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TextPack.Text}
+---@class Barotrauma.TextPack.Text : System.ValueType
+---@class System.Range : System.ValueType
+---@class System.Lazy*1System*Int32 : System.Object
+---@class Barotrauma.Identifier-ref
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*AccountId : System.ValueType, {[System.Int32]:Barotrauma.Networking.AccountId}, {[System.Int32]:Barotrauma.Networking.AccountId}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Networking.AccountId}
+---@class Barotrauma.Networking.AccountId-arr : System.Array
+---@class System.UInt16-arr : System.Array
+---@class System.Net.Sockets.AddressFamily : System.Enum
+---@class System.Net.IPAddress-ref
+---@class System.Span*1System*Byte : System.ValueType, {[System.Int32]:System.Byte-ref}
+---@class System.ReadOnlySpan*1System*Byte : System.ValueType, {[System.Int32]:System.Byte-ref}
+---@class System.ReadOnlySpan*1System*UInt16 : System.ValueType, {[System.Int32]:System.UInt16-ref}
+---@class Barotrauma.Option*1Barotrauma*Networking*Address : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*LidgrenAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*SteamP2PAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*P2PAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*EosP2PAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*Endpoint : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*LidgrenEndpoint : System.ValueType
+---@class Barotrauma.Networking.P2PEndpoint : Barotrauma.Networking.Endpoint
+---@class Barotrauma.Option*1Barotrauma*Networking*SteamP2PEndpoint : System.ValueType
+---@class Barotrauma.Networking.P2PConnection : Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*P2PEndpoint
+---@class Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*P2PEndpoint : Barotrauma.Networking.NetworkConnection
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Md5Hash
+---@class Barotrauma.Md5Hash.StringHashOptions : System.Enum
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*ContentFile*TypeInfo : System.Object
+---@class Barotrauma.ContentFile.TypeInfo : System.Object
+---@class Barotrauma.Result*1Barotrauma*ContentFile*1Barotrauma*ContentPackage*LoadError : System.Object
+---@class System.Action*1Barotrauma*Sprite : System.MulticastDelegate
+---@class Barotrauma.Option*1Barotrauma*SerializableDateTime : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentFile : System.ValueType, {[System.Int32]:Barotrauma.ContentFile}, {[System.Int32]:Barotrauma.ContentFile}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ContentFile}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentPackage*LoadError : System.ValueType, {[System.Int32]:Barotrauma.ContentPackage.LoadError}, {[System.Int32]:Barotrauma.ContentPackage.LoadError}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ContentPackage.LoadError}
+---@class Barotrauma.ContentPackage.LoadError : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*ContentPackageManager*LoadProgress*Error : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage*T
+---@class Barotrauma.ContentPackage.T : Barotrauma.ContentFile
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile
+---@class Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception : System.Object
+---@class Barotrauma.ContentPackage.LoadResult : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress
+---@class Barotrauma.ContentPackageManager.LoadProgress : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CorePackage
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*RegularPackage
+---@class System.Threading.Tasks.Task*1System*Collections*Generic*IEnumerable*2Steamworks*Ugc*Item : System.Threading.Tasks.Task
+---@class System.Predicate*1System*String : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*RegularPackage : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*CorePackage : System.Object
+---@class Barotrauma.ModProject : System.Object
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*ContentPackage
+---@class System.Collections.Generic.List*1Barotrauma*RegularPackage : System.Object, {[System.Int32]:Barotrauma.RegularPackage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage : {[System.Int32]:Barotrauma.RegularPackage}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*ContentPackage
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement
+---@class System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute
+---@class Microsoft.Xna.Framework.Color-ref
+---@class Barotrauma.T-ref
+---@class Barotrauma.ContentXElement.T : System.ValueType
+---@class Barotrauma.T-arr : System.Array
+---@class Barotrauma.ContentXElement.T : System.ValueType
+---@class System.ValueTuple
+---@class System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Range
+---@class System.Exception-ref
+---@class Barotrauma.HashlessFile : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*BallastFloraPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*BallastFloraPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.BallastFloraPrefab}, {[System.String]:Barotrauma.BallastFloraPrefab}
+---@class Barotrauma.BallastFloraPrefab : Barotrauma.Prefab
+---@class Barotrauma.BaseSubFile : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*CaveGenerationParams : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*CaveGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.CaveGenerationParams}, {[System.String]:Barotrauma.CaveGenerationParams}
+---@class Barotrauma.CaveGenerationParams : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*CorpsePrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*CorpsePrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.CorpsePrefab}, {[System.String]:Barotrauma.CorpsePrefab}
+---@class Barotrauma.CorpsePrefab : Barotrauma.HumanPrefab
+---@class Barotrauma.HumanPrefab : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*EventManagerSettings : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*FactionPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*FactionPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.FactionPrefab}, {[System.String]:Barotrauma.FactionPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*ItemAssemblyPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*ItemAssemblyPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemAssemblyPrefab}, {[System.String]:Barotrauma.ItemAssemblyPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*ItemPrefab : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*LevelObjectPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*LevelObjectPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.LevelObjectPrefab}, {[System.String]:Barotrauma.LevelObjectPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*LocationType : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*MissionPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*MissionPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.MissionPrefab}, {[System.String]:Barotrauma.MissionPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*NPCPersonalityTrait : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*NPCPersonalityTrait : System.Object, {[Barotrauma.Identifier]:Barotrauma.NPCPersonalityTrait}, {[System.String]:Barotrauma.NPCPersonalityTrait}
+---@class Barotrauma.NPCPersonalityTrait : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*NPCSet : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*NPCSet : System.Object, {[Barotrauma.Identifier]:Barotrauma.NPCSet}, {[System.String]:Barotrauma.NPCSet}
+---@class Barotrauma.NPCSet : Barotrauma.Prefab
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*OutpostGenerationParams : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*OutpostGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.OutpostGenerationParams}, {[System.String]:Barotrauma.OutpostGenerationParams}
+---@class Barotrauma.OutpostGenerationParams : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*Particles*ParticlePrefab : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*RuinGeneration*RuinGenerationParams : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*RuinGeneration*RuinGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.RuinGeneration.RuinGenerationParams}, {[System.String]:Barotrauma.RuinGeneration.RuinGenerationParams}
+---@class Barotrauma.RuinGeneration.RuinGenerationParams : Barotrauma.OutpostGenerationParams
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*SoundPrefab : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*StartItemSet : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*StartItemSet : System.Object, {[Barotrauma.Identifier]:Barotrauma.StartItemSet}, {[System.String]:Barotrauma.StartItemSet}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*StructurePrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*StructurePrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.StructurePrefab}, {[System.String]:Barotrauma.StructurePrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*TalentPrefab : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*TalentTree : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*TutorialPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*TutorialPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.TutorialPrefab}, {[System.String]:Barotrauma.TutorialPrefab}
+---@class Barotrauma.TutorialPrefab : Barotrauma.Prefab
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*UpgradeContentPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*UpgradeContentPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.UpgradeContentPrefab}, {[System.String]:Barotrauma.UpgradeContentPrefab}
+---@class Barotrauma.UpgradeContentPrefab : Barotrauma.Prefab
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*WreckAIConfig : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*WreckAIConfig : System.Object, {[Barotrauma.Identifier]:Barotrauma.WreckAIConfig}, {[System.String]:Barotrauma.WreckAIConfig}
+---@class Barotrauma.WreckAIConfig : Barotrauma.PrefabWithUintIdentifier
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*Func*2System*String*2System*Object*2System*Object : System.Object, {[System.Type]:(System.Func*1System*String*1System*Object*1System*Object)|(fun(arg1:System.String, arg2:System.Object):(System.Object))}, {[System.Type]:(System.Func*1System*String*1System*Object*1System*Object)|(fun(arg1:System.String, arg2:System.Object):(System.Object))}, {[System.Object]:System.Object}
+---@class System.Func*1System*String*1System*Object*1System*Object : System.MulticastDelegate
+---@class System.Xml.XmlReaderSettings : System.Object
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color : System.Object, {[Barotrauma.Identifier]:Microsoft.Xna.Framework.Color}, {[Barotrauma.Identifier]:Microsoft.Xna.Framework.Color}, {[System.Object]:System.Object}
+---@class System.Xml.XmlReader : System.Object, {[System.Int32]:System.String}, {[System.String]:System.String}
+---@class Barotrauma.XMLExtensions.T : System.ValueType
+---@class Barotrauma.XMLExtensions.T : System.ValueType
+---@class Barotrauma.T-arr : System.Array
+---@class Barotrauma.XMLExtensions.T : System.ValueType
+---@class Barotrauma.KeyOrMouse : System.Object
+---@class System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1System*Xml*Linq*XAttribute*1System*Boolean : System.MulticastDelegate
+---@class System.Xml.XmlNodeType : System.Enum
+---@class System.Xml.Linq.LoadOptions : System.Enum
+---@class System.Threading.Tasks.Task*1System*Xml*Linq*XElement : System.Threading.Tasks.Task
+---@class System.Xml.Linq.SaveOptions : System.Enum
+---@class System.Xml.XmlWriter : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode
+---@class System.Xml.Linq.XNamespace : System.Object
+---@class System.Xml.Linq.XStreamingElement : System.Object
+---@class System.Xml.Linq.XElement.AsyncConstructionSentry : System.ValueType
+---@class System.Xml.Linq.XNode-ref
+---@class System.Collections.Generic.List*1System*Object : System.Object, {[System.Int32]:System.Object}, {[System.Int32]:System.Object}
+---@class System.Xml.Linq.XDeclaration : System.Object
+---@class System.Xml.Linq.XDocumentType : System.Xml.Linq.XNode
+---@class System.Threading.Tasks.Task*1System*Xml*Linq*XDocument : System.Threading.Tasks.Task
+---@class System.Xml.Linq.XDocument.T : System.Xml.Linq.XNode
+---@class System.Xml.Linq.XNodeDocumentOrderComparer : System.Object
+---@class System.Xml.Linq.XNodeEqualityComparer : System.Object
+---@class System.Xml.Linq.ReaderOptions : System.Enum
+---@class System.Threading.Tasks.Task*1System*Xml*Linq*XNode : System.Threading.Tasks.Task
+---@class System.Xml.XmlWriterSettings : System.Object
+---@class System.Nullable*1System*Single : System.ValueType, number
+---@class Barotrauma.Networking.SegmentTableWriter
+---@class System.Collections.Generic.HashSet*1Barotrauma*Identifier : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Gap : System.Object
+---@class Barotrauma.Level.Tunnel : System.Object
+---@class Barotrauma.RuinGeneration.Ruin : System.Object
+---@class Barotrauma.Level.Cave : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Sprite : System.Object, {[System.String]:Barotrauma.Sprite}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*WayPoint : System.Object, {[System.Int32]:Barotrauma.WayPoint}, {[System.Int32]:System.Object}
+---@class System.Action*1Barotrauma*WayPoint : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Identifier
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint*T
+---@class Barotrauma.WayPoint.T : Barotrauma.MapEntity
+---@class System.Action*1Barotrauma*WayPoint*T : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32
+---@class System.ValueTuple*1Barotrauma*WayPoint*1System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.Body : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint
+---@class System.Func*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1Barotrauma*WayPoint*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*CharacterInfo : System.Object, {[System.Int32]:Barotrauma.CharacterInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.WayPoint-arr : System.Array
+---@class Barotrauma.IdRemap : System.Object
+---@class Barotrauma.WayPoint.Type : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1Microsoft*Xna*Framework*Color : System.Object, {[Barotrauma.Networking.ServerLog.MessageType]:Microsoft.Xna.Framework.Color}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1System*String : System.Object, {[Barotrauma.Networking.ServerLog.MessageType]:System.String}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Queue*1Barotrauma*Networking*ServerLog*LogMessage : System.Object
+---@class Barotrauma.Networking.ServerLog.LogMessage : System.ValueType
+---@class System.Boolean-arr : System.Array
+---@class Barotrauma.WorldHostilityOption : System.Enum
+---@class Barotrauma.PropertyConditional.LogicalOperatorType : System.Enum
+---@class System.Predicate*1System*Xml*Linq*XAttribute : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*PropertyConditional
+---@class System.ValueTuple*1Barotrauma*PropertyConditional*ComparisonOperatorType*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*Identifier*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.PropertyConditional.T : System.Object
+---@class Barotrauma.PropertyConditional.LogicalComparison : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitter : System.Object, {[System.Int32]:Barotrauma.Particles.ParticleEmitter}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*RoundSound : System.Object, {[System.Int32]:Barotrauma.RoundSound}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.SoundSelectionMode : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*RelatedItem : System.Object, {[System.Int32]:Barotrauma.RelatedItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Object : System.ValueType, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Object : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PropertyConditional : System.Object, {[System.Int32]:Barotrauma.PropertyConditional}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Entity*1System*Single : System.Object, {[Barotrauma.Entity]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Explosion : System.Object, {[System.Int32]:Barotrauma.Explosion}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*ItemSpawnInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.ItemSpawnInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.StatusEffect.ItemSpawnInfo : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*CharacterSpawnInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.CharacterSpawnInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveTalentInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.GiveTalentInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*AITrigger : System.Object, {[System.Int32]:Barotrauma.StatusEffect.AITrigger}, {[System.Int32]:System.Object}
+---@class Barotrauma.StatusEffect.AITrigger : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*EventPrefab : System.Object, {[System.Int32]:Barotrauma.EventPrefab}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.LimbType-arr : System.Array
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Identifier*2System*Single : System.Object
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Identifier : System.Object, {[System.Int32]:Barotrauma.Identifier}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*Int32 : System.Object, {[System.Int32]:System.Int32}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveSkill : System.Object, {[System.Int32]:Barotrauma.StatusEffect.GiveSkill}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*String*2Barotrauma*ContentXElement : System.Object, {[System.Int32]:System.ValueTuple*1System*String*1Barotrauma*ContentXElement}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*String*1Barotrauma*ContentXElement : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*StatusEffect*AnimLoadInfo : System.Object
+---@class System.ValueTuple*1Barotrauma*Character*1Barotrauma*StatusEffect*AnimLoadInfo : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*AnimLoadInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.AnimLoadInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.StatusEffect.AnimLoadInfo : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*ISerializableEntity : System.Object, {[System.Int32]:Barotrauma.ISerializableEntity}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*StatusEffect : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*DurationListElement : System.Object, {[System.Int32]:Barotrauma.DurationListElement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Entity : System.Object, {[System.Int32]:Barotrauma.Entity}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*RoundSound
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Explosion
+---@class System.Collections.Generic.List*1Barotrauma*Affliction : System.Object, {[System.Int32]:Barotrauma.Affliction}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect*CharacterSpawnInfo
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity : {[System.Int32]:Barotrauma.ISerializableEntity}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*PropertyConditional : {[System.Int32]:Barotrauma.PropertyConditional}
+---@class Barotrauma.Abilities.AbilityObject : System.Object
+---@class Barotrauma.DelayedEffect.DelayTypes : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*DelayedListElement : System.Object, {[System.Int32]:Barotrauma.DelayedListElement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity
+---@class Barotrauma.GapPosition-arr : System.Array
+---@class Barotrauma.OutpostModuleInfo.GapPosition : System.Enum
+---@class Barotrauma.OutpostModuleFile-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo
+---@class Barotrauma.OutpostGenerator.PlacedModule : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*SubmarineInfo : System.Object, {[System.Int32]:Barotrauma.SubmarineInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*OutpostGenerator*PlacedModule : System.Object, {[System.Int32]:Barotrauma.OutpostGenerator.PlacedModule}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule
+---@class Barotrauma.PlacedModule-ref
+---@class System.Collections.Generic.Dictionary
+---@class Barotrauma.OutpostModuleInfo : System.Object
+---@class System.Collections.Generic.List
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity
+---@class System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity : System.Object, {[Barotrauma.OutpostGenerator.PlacedModule]:(System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*MapEntity : System.Object, {[System.Int32]:Barotrauma.MapEntity}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Decal : System.Object, {[System.Int32]:Barotrauma.Decal}, {[System.Int32]:System.Object}
+---@class Barotrauma.Particles.Particle.OnChangeHullHandler : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*FireSource : System.Object, {[System.Int32]:Barotrauma.FireSource}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*DummyFireSource : System.Object, {[System.Int32]:Barotrauma.DummyFireSource}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Structure
+---@class System.Collections.Generic.HashSet*1Barotrauma*Submarine : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Structure*1System*Single : System.Object, {[Barotrauma.Structure]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Submarine
+---@class System.Collections.Generic.List*1Barotrauma*GUIComponent : System.Object, {[System.Int32]:Barotrauma.GUIComponent}, {[System.Int32]:System.Object}
+---@class Barotrauma.GUITickBox-arr : System.Array
+---@class Barotrauma.GUISelectionCarousel*1Barotrauma*Networking*RespawnMode : Barotrauma.GUIComponent
+---@class System.Collections.Generic.Dictionary*1Barotrauma*GUIComponent*1System*String : System.Object, {[Barotrauma.GUIComponent]:System.String}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*GUIButton : System.Object, {[System.Int32]:Barotrauma.GUIButton}, {[System.Int32]:System.Object}
+---@class Barotrauma.MultiPlayerCampaignSetupUI : Barotrauma.CampaignSetupUI
+---@class Barotrauma.CampaignSetupUI : System.Object
+---@class System.Nullable*1Barotrauma*Networking*PlayStyle : System.ValueType
+---@class System.Nullable*1Barotrauma*NetLobbyScreen*FailedSubInfo : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*NetLobbyScreen*FailedSubInfo : System.Object, {[System.Int32]:Barotrauma.NetLobbyScreen.FailedSubInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.NetLobbyScreen.FailedSubInfo : System.ValueType
+---@class Barotrauma.CharacterInfo.AppearanceCustomizationMenu : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*JobVariant : System.Object, {[System.Int32]:Barotrauma.JobVariant}, {[System.Int32]:System.Object}
+---@class Barotrauma.SelectedSubType : System.Enum
+---@class Barotrauma.NetLobbyScreen.SubmarineDeliveryData : System.Enum
+---@class Barotrauma.SerializableDateTime : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*DisembarkPerkPrefab : System.ValueType, {[System.Int32]:Barotrauma.DisembarkPerkPrefab}, {[System.Int32]:Barotrauma.DisembarkPerkPrefab}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.DisembarkPerkPrefab}
+---@class Barotrauma.DisembarkPerkPrefab : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.Networking.BotSpawnMode : System.Enum
+---@class System.Collections.Generic.ICollection*1Barotrauma*GUIComponent
+---@class Barotrauma.GUIScrollBar-ref
+---@class Barotrauma.GUITextBlock-ref
+---@class System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1Barotrauma*GUICustomComponent : System.MulticastDelegate
+---@class Barotrauma.GUITextBlock.ClickableArea : System.ValueType
+---@class Barotrauma.GUIImage-arr : System.Array
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*SubmarineInfo : {[System.Int32]:Barotrauma.SubmarineInfo}
+---@class Barotrauma.GameSettings.Config : System.ValueType
+---@class Barotrauma.Config-ref
+---@class Barotrauma.Steam.WorkshopMenu : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*SettingsMenu*Tab*1System*ValueTuple*2Barotrauma*GUIButton*2Barotrauma*GUIFrame : System.Object, {[Barotrauma.SettingsMenu.Tab]:System.ValueTuple*1Barotrauma*GUIButton*1Barotrauma*GUIFrame}, {[System.Object]:System.Object}
+---@class Barotrauma.SettingsMenu.Tab : System.Enum
+---@class System.ValueTuple*1Barotrauma*GUIButton*1Barotrauma*GUIFrame : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*GUIButton*1System*Func*2Barotrauma*LocalizedString : System.Object, {[Barotrauma.GUIButton]:(System.Func*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))}, {[System.Object]:System.Object}
+---@class System.Func*1Barotrauma*LocalizedString : System.MulticastDelegate
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*InputType : System.Object
+---@class System.ValueTuple*1Barotrauma*GUILayoutGroup*1Barotrauma*GUILayoutGroup : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*SettingsMenu*T*1Barotrauma*LocalizedString : System.MulticastDelegate
+---@class Barotrauma.SettingsMenu.T : System.Enum
+---@class System.Action*1Barotrauma*SettingsMenu*T : System.MulticastDelegate
+---@class System.Func*1Barotrauma*SettingsMenu*T*1Barotrauma*LocalizedString : System.MulticastDelegate
+---@class Barotrauma.SettingsMenu.T : System.Object
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*SettingsMenu*T : {[System.Int32]:Barotrauma.SettingsMenu.T}
+---@class System.Action*1Barotrauma*SettingsMenu*T : System.MulticastDelegate
+---@class System.Func*1System*Single*1System*String : System.MulticastDelegate
+---@class System.ValueTuple*1Barotrauma*GUIScrollBar*1Barotrauma*GUITextBlock : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Action*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IReadOnlyList
+---@class Barotrauma.Steam.WorkshopMenu-ref
+---@class System.Collections.Generic.List*1Barotrauma*TabMenu*LinkedGUI : System.Object, {[System.Int32]:Barotrauma.TabMenu.LinkedGUI}, {[System.Int32]:System.Object}
+---@class Barotrauma.TabMenu.LinkedGUI : System.Object
+---@class Barotrauma.GUIListBox-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Character
+---@class System.Collections.Generic.List*1Barotrauma*CharacterTeamType : System.Object, {[System.Int32]:Barotrauma.CharacterTeamType}, {[System.Int32]:System.Object}
+---@class Barotrauma.TalentMenu : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*String*2Barotrauma*Networking*PlayerConnectionChangeType : System.Object, {[System.Int32]:System.ValueTuple*1System*String*1Barotrauma*Networking*PlayerConnectionChangeType}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*String*1Barotrauma*Networking*PlayerConnectionChangeType : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.TabMenu.InfoFrameTab : System.Enum
+---@class Barotrauma.GUIImage-ref
+---@class Barotrauma.Networking.PlayerConnectionChangeType : System.Enum
+---@class Barotrauma.DeathPrompt : System.Object
+---@class Barotrauma.Location-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*Mission : System.Object, {[System.Int32]:Barotrauma.Mission}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Option*2Barotrauma*Networking*AccountId*1System*Int32 : System.Object, {[Barotrauma.Option*1Barotrauma*Networking*AccountId]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Nullable*1Barotrauma*CharacterTeamType : System.ValueType
+---@class Barotrauma.RoundSummary : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Mission
+---@class Barotrauma.CampaignDataPath : System.ValueType
+---@class Barotrauma.CampaignSettings : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab
+---@class Barotrauma.Submarine-ref
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character : System.Object
+---@class Barotrauma.CampaignMode.TransitionType : System.Enum
+---@class System.Nullable*1Barotrauma*TraitorManager*TraitorResults : System.ValueType
+---@class Barotrauma.PerkCollection : System.ValueType
+---@class System.Collections.Generic.IList*1System*String : {[System.Int32]:System.String}
+---@class Barotrauma.Option*1Barotrauma*SubmarineInfo : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Object : System.Object, {[Barotrauma.Identifier]:System.Object}, {[System.Object]:System.Object}
+---@class Barotrauma.GUI.DebugDrawMetaData : System.ValueType
+---@class Barotrauma.FactionAffiliation : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*HireableCharacter : System.ValueType, {[System.Int32]:Barotrauma.FactionPrefab.HireableCharacter}, {[System.Int32]:Barotrauma.FactionPrefab.HireableCharacter}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.FactionPrefab.HireableCharacter}
+---@class Barotrauma.FactionPrefab.HireableCharacter : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*AutomaticMission : System.ValueType, {[System.Int32]:Barotrauma.FactionPrefab.AutomaticMission}, {[System.Int32]:Barotrauma.FactionPrefab.AutomaticMission}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.FactionPrefab.AutomaticMission}
+---@class Barotrauma.FactionPrefab.AutomaticMission : System.Object
+---@class Barotrauma.NamedEvent*1Barotrauma*Reputation : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*GameModePreset : System.Object, {[System.Int32]:Barotrauma.GameModePreset}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Event : System.Object, {[System.Int32]:Barotrauma.Event}, {[System.Int32]:System.Object}
+---@class Barotrauma.Tutorials.Tutorial : System.Object
+---@class Barotrauma.CampaignUI : System.Object
+---@class System.Threading.CancellationTokenSource : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Faction : System.Object, {[System.Int32]:Barotrauma.Faction}, {[System.Int32]:System.Object}
+---@class Barotrauma.NamedEvent*1Barotrauma*WalletChangedEvent : System.Object
+---@class Barotrauma.Wallet : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single : System.Object, {[Barotrauma.Character]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Faction : {[System.Int32]:Barotrauma.Faction}
+---@class Barotrauma.CampaignMode.InteractionType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Submarine : System.Object, {[System.Int32]:Barotrauma.Submarine}, {[System.Int32]:System.Object}
+---@class Barotrauma.LevelData-ref
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Faction
+---@class System.Collections.Generic.Dictionary*1Barotrauma*MultiPlayerCampaign*NetFlags*1System*UInt16 : System.Object, {[Barotrauma.MultiPlayerCampaign.NetFlags]:System.UInt16}, {[System.Object]:System.Object}
+---@class Barotrauma.MultiPlayerCampaign.NetFlags : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*CampaignMode*SaveInfo : System.Object, {[System.Int32]:Barotrauma.CampaignMode.SaveInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.CampaignMode.SaveInfo : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PurchasedItem : System.Object, {[System.Int32]:Barotrauma.PurchasedItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*SoldItem : System.Object, {[System.Int32]:Barotrauma.SoldItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type : System.Object, {[Barotrauma.Identifier]:System.Type}, {[System.Object]:System.Object}
+---@class Barotrauma.GUITextBlock-arr : System.Array
+---@class System.Nullable*1Barotrauma*Identifier : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Item
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemContainer
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer : System.Object, {[Barotrauma.Items.Components.ItemContainer]:Barotrauma.PreferredContainer}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemContainer}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Item : System.Object, {[System.Int32]:Barotrauma.Item}, {[System.Int32]:System.Object}
+---@class Barotrauma.NamedEvent*1Barotrauma*CargoManager : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*PurchasedItem*2Barotrauma*Items*Components*IdCard : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*PurchasedItem*1Barotrauma*Items*Components*IdCard}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*PurchasedItem*1Barotrauma*Items*Components*IdCard : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*InvSlotType : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*CargoManager*SoldEntity : System.Object, {[System.Int32]:Barotrauma.CargoManager.SoldEntity}, {[System.Int32]:System.Object}
+---@class Barotrauma.CargoManager.SoldEntity : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32 : System.Object, {[Barotrauma.ItemPrefab]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CargoManager*SoldEntity
+---@class Barotrauma.Store.StoreTab : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*CargoManager*T : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*CargoManager*T)|(Barotrauma.CargoManager.T[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CargoManager*T : System.Object, {[System.Int32]:Barotrauma.CargoManager.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.CargoManager.T : System.Object
+---@class Barotrauma.Location.StoreInfo : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Hull
+---@class System.Func*1Barotrauma*Item*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.ISpatialEntity
+---@class System.Collections.Generic.List
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*PurchasedItem
+---@class System.Collections.Generic.List*1Barotrauma*GUITickBox : System.Object, {[System.Int32]:Barotrauma.GUITickBox}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CrewManager*OptionNode : System.Object, {[System.Int32]:Barotrauma.CrewManager.OptionNode}, {[System.Int32]:System.Object}
+---@class Barotrauma.CrewManager.OptionNode : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*OrderCategory : System.Object, {[System.Int32]:Barotrauma.OrderCategory}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Stack*1Barotrauma*GUIButton : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Character : System.Object, {[System.Int32]:Barotrauma.Character}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Order : System.Object, {[System.Int32]:Barotrauma.Order}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2System*String : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Character*1System*String}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Character*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CrewManager*ActiveOrder : System.Object, {[System.Int32]:Barotrauma.CrewManager.ActiveOrder}, {[System.Int32]:System.Object}
+---@class Barotrauma.CrewManager.ActiveOrder : System.Object
+---@class Barotrauma.Hull-ref
+---@class Barotrauma.WallSection-ref
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*OrderPrefab : {[System.Int32]:Barotrauma.OrderPrefab}
+---@class Barotrauma.ISteerable
+---@class Barotrauma.PathFinder : System.Object
+---@class System.ValueTuple*1Barotrauma*Items*Components*Door*1System*Boolean : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*PathNode*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.PathNode : System.Object
+---@class System.Func*1Barotrauma*Items*Components*Controller*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.List*1System*Single : System.Object, {[System.Int32]:System.Single}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterInfo
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*AfflictionRequest : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*AfflictionRequest}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*AfflictionRequest : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*PendingRequest : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*PendingRequest}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*PendingRequest : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*CallbackOnlyRequest : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*CallbackOnlyRequest}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*CallbackOnlyRequest : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*HealRequest : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*HealRequest}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*HealRequest : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*NetCrewMember : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.NetCrewMember}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.NetCrewMember : System.ValueType
+---@class Barotrauma.LeakyBucket : System.Object
+---@class Barotrauma.CharacterInfo-arr : System.Array
+---@class Barotrauma.NetAffliction-arr : System.Array
+---@class Barotrauma.MedicalClinic.NetAffliction : System.ValueType
+---@class System.Action*1Barotrauma*MedicalClinic*AfflictionRequest : System.MulticastDelegate
+---@class Barotrauma.MedicalClinic.AfflictionRequest : System.ValueType
+---@class System.Action*1Barotrauma*MedicalClinic*PendingRequest : System.MulticastDelegate
+---@class Barotrauma.MedicalClinic.PendingRequest : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*T : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*T}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*T : System.ValueType
+---@class System.Action
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*RequestAction*2Barotrauma*MedicalClinic*T : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*T}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.RequestAction*1Barotrauma*MedicalClinic*T : System.ValueType
+---@class System.DateTimeOffset : System.ValueType
+---@class System.Action*1System*Action*2Barotrauma*MedicalClinic*T : System.MulticastDelegate
+---@class System.Action*1Barotrauma*MedicalClinic*T : System.MulticastDelegate
+---@class Barotrauma.MedicalClinic.T : System.Object
+---@class Barotrauma.WalletChangedEvent : System.ValueType
+---@class System.Action*1Barotrauma*MedicalClinic*CallbackOnlyRequest : System.MulticastDelegate
+---@class Barotrauma.MedicalClinic.CallbackOnlyRequest : System.ValueType
+---@class System.Action*1Barotrauma*MedicalClinic*HealRequest : System.MulticastDelegate
+---@class Barotrauma.MedicalClinic.HealRequest : System.ValueType
+---@class Barotrauma.MedicalClinic.MessageFlag : System.Enum
+---@class Barotrauma.MedicalClinic.NetworkHeader : System.Enum
+---@class Barotrauma.MedicalClinic.HealRequestResult : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetAffliction : System.ValueType, {[System.Int32]:Barotrauma.MedicalClinic.NetAffliction}, {[System.Int32]:Barotrauma.MedicalClinic.NetAffliction}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.MedicalClinic.NetAffliction}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo : System.ValueType, {[System.Int32]:Barotrauma.CharacterInfo}, {[System.Int32]:Barotrauma.CharacterInfo}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CharacterInfo}
+---@class System.Collections.Generic.Dictionary*1System*Byte*1Barotrauma*ReadyStatus : System.Object, {[System.Byte]:Barotrauma.ReadyStatus}, {[System.Object]:System.Object}
+---@class Barotrauma.ReadyStatus : System.Enum
+---@class System.Collections.Generic.List*1System*Byte : System.Object, {[System.Int32]:System.Byte}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LocalizedString : System.Object, {[System.Int32]:Barotrauma.LocalizedString}, {[System.Int32]:System.Object}
+---@class Barotrauma.CheckDataAction : Barotrauma.BinaryOptionAction
+---@class Barotrauma.BinaryOptionAction : Barotrauma.EventAction
+---@class Barotrauma.EventAction : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Mission*DelayedTriggerEvent : System.Object, {[System.Int32]:Barotrauma.Mission.DelayedTriggerEvent}, {[System.Int32]:System.Object}
+---@class Barotrauma.Mission.DelayedTriggerEvent : System.Object
+---@class System.Action*1Barotrauma*Mission : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Entity
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*MissionPrefab*ReputationReward : System.Object, {[System.Int32]:Barotrauma.MissionPrefab.ReputationReward}, {[System.Int32]:Barotrauma.MissionPrefab.ReputationReward}, {[System.Int32]:Barotrauma.MissionPrefab.ReputationReward}, {[System.Int32]:System.Object}
+---@class Barotrauma.MissionPrefab.ReputationReward : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.MTRandom : System.Random
+---@class Barotrauma.MissionPrefab.TriggerEvent : System.Object
+---@class Barotrauma.Option*1System*Int32 : System.ValueType
+---@class System.ValueTuple*1System*Int32*1System*Int32*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item : System.Object, {[Barotrauma.Character]:(System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Sprite : System.ValueType, {[System.Int32]:Barotrauma.Sprite}, {[System.Int32]:Barotrauma.Sprite}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Sprite}
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Int32*1Barotrauma*Identifier : System.Object, {[System.Int32]:Barotrauma.Identifier}, {[System.Int32]:Barotrauma.Identifier}, {[System.Object]:System.Object}
+---@class System.Reflection.ConstructorInfo : System.Reflection.MethodBase
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Object*2Barotrauma*SetDataAction*OperationType : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object*1Barotrauma*SetDataAction*OperationType}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Object*1Barotrauma*SetDataAction*OperationType : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Nullable*1Barotrauma*Networking*RespawnMode : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MissionPrefab*TriggerEvent : System.Object, {[System.Int32]:Barotrauma.MissionPrefab.TriggerEvent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Entity : System.Object
+---@class Barotrauma.SubmarineType : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Character : System.ValueType, {[System.Int32]:Barotrauma.Character}, {[System.Int32]:Barotrauma.Character}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Character}
+---@class Barotrauma.EndMission.MissionPhase : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*BeaconMission*MonsterSet : System.Object, {[System.Int32]:Barotrauma.BeaconMission.MonsterSet}, {[System.Int32]:System.Object}
+---@class Barotrauma.BeaconMission.MonsterSet : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*UInt16 : System.Object, {[Barotrauma.Item]:System.UInt16}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32 : System.Object, {[Barotrauma.Item]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Byte : System.Object, {[Barotrauma.Item]:System.Byte}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*ContentXElement*2Barotrauma*Items*Components*ItemContainer : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*ContentXElement*1Barotrauma*Items*Components*ItemContainer}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*ContentXElement*1Barotrauma*Items*Components*ItemContainer : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CargoMission : System.Object, {[System.Int32]:Barotrauma.CargoMission}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Byte*1System*Int32 : System.Object, {[System.Byte]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1System*Int32 : System.Object, {[System.UInt16]:System.Int32}, {[System.Object]:System.Object}
+---@class Barotrauma.Submarine-arr : System.Array
+---@class Barotrauma.CombatMission.WinCondition : System.Enum
+---@class Barotrauma.TagAction.SubType : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*HumanPrefab*1System*Collections*Generic*List*2Barotrauma*StatusEffect : System.Object, {[Barotrauma.HumanPrefab]:(System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect : System.Object, {[System.Int32]:Barotrauma.StatusEffect}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32 : System.Object, {[Barotrauma.Identifier]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Item-arr : System.Object, {[Barotrauma.Identifier]:(Barotrauma.Item-arr)|(Barotrauma.Item[])}, {[System.Object]:System.Object}
+---@class Barotrauma.Item-arr : System.Array
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Level*Cave : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Level*PositionType : System.ValueType, {[System.Int32]:Barotrauma.Level.PositionType}, {[System.Int32]:Barotrauma.Level.PositionType}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Level.PositionType}
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point : System.Object
+---@class System.ValueTuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*StatusEffect : System.Object, {[Barotrauma.Item]:Barotrauma.StatusEffect}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1System*Tuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point : System.Object
+---@class System.Tuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*SalvageMission*Target : System.Object, {[System.Int32]:Barotrauma.SalvageMission.Target}, {[System.Int32]:System.Object}
+---@class Barotrauma.SalvageMission.Target : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Scanner : System.Object, {[System.Int32]:Barotrauma.Items.Components.Scanner}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*WayPoint*1System*Boolean : System.Object, {[Barotrauma.WayPoint]:System.Boolean}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*WayPoint : System.Object
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*WayPoint*1System*Boolean : System.ValueType
+---@class Barotrauma.BackgroundCreatureManager : System.Object
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Generic.List*1Voronoi2*VoronoiCell : System.Object, {[System.Int32]:Voronoi2.VoronoiCell}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*AbyssIsland : System.Object, {[System.Int32]:Barotrauma.Level.AbyssIsland}, {[System.Int32]:System.Object}
+---@class Barotrauma.Level.AbyssIsland : System.Object
+---@class System.Collections.Generic.List*1System*Double : System.Object, {[System.Int32]:System.Double}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Point*2System*Double : System.Object, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Point*1System*Double}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Point*1System*Double : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Body}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Point : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Point}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Level*LevelGenStage*1System*Int32 : System.Object, {[Barotrauma.Level.LevelGenStage]:System.Int32}, {[System.Object]:System.Object}
+---@class Barotrauma.Level.LevelGenStage : System.Enum
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.String]:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Rectangle : System.Object, {[Barotrauma.Submarine]:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*RuinGeneration*Ruin : System.Object, {[System.Int32]:Barotrauma.RuinGeneration.Ruin}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LevelWall : System.Object, {[System.Int32]:Barotrauma.LevelWall}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*Tunnel : System.Object, {[System.Int32]:Barotrauma.Level.Tunnel}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*Cave : System.Object, {[System.Int32]:Barotrauma.Level.Cave}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition : System.Object, {[System.Int32]:Barotrauma.Level.InterestingPosition}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Level*LevelGenStage*1System*Int32 : {[Barotrauma.Level.LevelGenStage]:System.Int32}
+---@class Barotrauma.LevelData.LevelType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Level*PathPoint : System.Object, {[System.Int32]:Barotrauma.Level.PathPoint}, {[System.Int32]:System.Object}
+---@class Barotrauma.Level.PathPoint : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Level*ClusterLocation : System.Object, {[System.Int32]:Barotrauma.Level.ClusterLocation}, {[System.Int32]:System.Object}
+---@class Barotrauma.Level.ClusterLocation : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Voronoi2*GraphEdge
+---@class System.Collections.Generic.List*1Voronoi2*GraphEdge : System.Object, {[System.Int32]:Voronoi2.GraphEdge}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Level*Cave
+---@class System.Collections.Generic.List
+---@class System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.InterestingPosition-ref
+---@class Barotrauma.LevelData.ThalamusSpawn : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Int32 : System.Object, {[Barotrauma.EventSet]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerationParams
+---@class System.Collections.Generic.List*1Barotrauma*LevelObject : System.Object, {[System.Int32]:Barotrauma.LevelObject}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Generic.HashSet*1Barotrauma*LevelObject : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LevelObject
+---@class Barotrauma.LevelObjectManager.SpawnPosition : System.Object
+---@class System.Collections.Generic.IEnumerable*1Voronoi2*VoronoiCell
+---@class Barotrauma.LevelObjectPrefab.SpawnPosType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*LevelObjectManager*SpawnPosition : System.Object, {[System.Int32]:Barotrauma.LevelObjectManager.SpawnPosition}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IList*1Barotrauma*LevelObjectPrefab : {[System.Int32]:Barotrauma.LevelObjectPrefab}
+---@class System.Collections.Generic.List*1Barotrauma*ContentXElement : System.Object, {[System.Int32]:Barotrauma.ContentXElement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single : System.Object, {[Barotrauma.Identifier]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Particles*ParticleEmitterPrefab : System.Object, {[System.Int32]:Barotrauma.Particles.ParticleEmitterPrefab}, {[System.Int32]:System.Object}
+---@class Barotrauma.Particles.ParticleEmitterPrefab : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab*SoundConfig : System.Object, {[System.Int32]:Barotrauma.LevelObjectPrefab.SoundConfig}, {[System.Int32]:System.Object}
+---@class Barotrauma.LevelObjectPrefab.SoundConfig : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Lights*LightSourceParams : System.Object, {[System.Int32]:Barotrauma.Lights.LightSourceParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*SpriteDeformations*SpriteDeformation : System.Object, {[System.Int32]:Barotrauma.SpriteDeformations.SpriteDeformation}, {[System.Int32]:System.Object}
+---@class Barotrauma.SpriteDeformations.SpriteDeformation : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Sprite : System.Object, {[System.Int32]:Barotrauma.Sprite}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Sprite*1System*Xml*Linq*XElement : System.Object, {[Barotrauma.Sprite]:System.Xml.Linq.XElement}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab*ChildObject : System.Object, {[System.Int32]:Barotrauma.LevelObjectPrefab.ChildObject}, {[System.Int32]:System.Object}
+---@class Barotrauma.LevelObjectPrefab.ChildObject : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab : System.Object, {[System.Int32]:Barotrauma.LevelObjectPrefab}, {[System.Int32]:System.Object}
+---@class Barotrauma.Lights.LightSource-arr : System.Array
+---@class Barotrauma.LevelTrigger-arr : System.Array
+---@class Barotrauma.Particles.ParticleEmitter-arr : System.Array
+---@class Barotrauma.RoundSound-arr : System.Array
+---@class Barotrauma.Sounds.SoundChannel-arr : System.Array
+---@class Microsoft.Xna.Framework.Vector2[,] : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*LevelTrigger : System.Object, {[System.Int32]:Barotrauma.LevelTrigger}, {[System.Int32]:System.Object}
+---@class Barotrauma.SpriteDeformations.PositionalDeformation : Barotrauma.SpriteDeformations.SpriteDeformation
+---@class System.Action*1Barotrauma*LevelTrigger*1Barotrauma*Entity : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*Attack : System.Object, {[System.Int32]:Barotrauma.Attack}, {[System.Int32]:System.Object}
+---@class Barotrauma.LevelTrigger.TriggererType : System.Enum
+---@class System.Collections.Generic.HashSet*1System*String : System.Object
+---@class Barotrauma.LevelTrigger.TriggerForceMode : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Entity*1Microsoft*Xna*Framework*Vector2 : System.Object, {[Barotrauma.Entity]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class FarseerPhysics.Dynamics.Category : System.Enum
+---@class FarseerPhysics.Dynamics.Contacts.Contact : System.Object
+---@class System.ValueTuple*1System*Boolean*1Barotrauma*Submarine : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.IDamageable
+---@class Microsoft.Xna.Framework.Graphics.VertexBuffer : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---@class System.Collections.Generic.List*1Barotrauma*LevelWallVertexBuffer : System.Object, {[System.Int32]:Barotrauma.LevelWallVertexBuffer}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableHashSet*1System*Int32 : System.Object
+---@class System.Nullable*1Barotrauma*Biome*SubmarineAvailability : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Biome*SubmarineAvailability : System.Object
+---@class Barotrauma.Biome.SubmarineAvailability : System.ValueType
+---@class Barotrauma.PrefabCollection*1Barotrauma*Biome : System.Object, {[Barotrauma.Identifier]:Barotrauma.Biome}, {[System.String]:Barotrauma.Biome}
+---@class Barotrauma.SubmarineClass : System.Enum
+---@class System.Collections.Generic.Queue*1Barotrauma*Map*MapAnim : System.Object
+---@class Barotrauma.Map.MapAnim : System.Object
+---@class Barotrauma.Sprite[,] : System.Array
+---@class System.Boolean[,] : System.Array
+---@class System.Nullable*1System*ValueTuple*2Microsoft*Xna*Framework*Rectangle*2Barotrauma*RichString : System.ValueType
+---@class Barotrauma.SubmarineInfo.PendingSubInfo : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Map*MapNotification : System.Object, {[System.Int32]:Barotrauma.Map.MapNotification}, {[System.Int32]:System.Object}
+---@class Barotrauma.Map.MapNotification : System.Object
+---@class Barotrauma.MapGenerationParams : Barotrauma.Prefab
+---@class System.Action*1Barotrauma*Location*1Barotrauma*LocationConnection : System.MulticastDelegate
+---@class System.Action*1Barotrauma*LocationConnection*1System*Collections*Generic*IEnumerable*2Barotrauma*Mission : System.MulticastDelegate
+---@class Barotrauma.NamedEvent*1Barotrauma*Map*LocationChangeInfo : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Location : System.Object, {[System.Int32]:Barotrauma.Location}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Location : {[System.Int32]:Barotrauma.Location}
+---@class System.Collections.Generic.List*1Barotrauma*LocationConnection : System.Object, {[System.Int32]:Barotrauma.LocationConnection}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*Int32
+---@class System.Func*1Barotrauma*Location*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1Barotrauma*LocationConnection*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.RadiationParams : System.Object
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single : {[Barotrauma.Identifier]:System.Single}
+---@class Barotrauma.PriceInfo-ref
+---@class System.Collections.Generic.List*1Barotrauma*PriceInfo : System.Object, {[System.Int32]:Barotrauma.PriceInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Single*2System*Boolean : System.ValueType, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean}
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1System*Single : System.Object, {[System.Int32]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1System*Int32 : System.Object, {[System.Int32]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LocationTypeChange : System.Object, {[System.Int32]:Barotrauma.LocationTypeChange}, {[System.Int32]:System.Object}
+---@class System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier : System.ValueType
+---@class System.Nullable*1System*Collections*Immutable*ImmutableArray*2System*String : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Location
+---@class System.Func*1Barotrauma*LocationType*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*LocationTypeChange*Requirement*1System*Int32 : System.Object, {[Barotrauma.LocationTypeChange.Requirement]:System.Int32}, {[System.Object]:System.Object}
+---@class Barotrauma.LocationTypeChange.Requirement : System.Object
+---@class System.Nullable*1System*ValueTuple*2Barotrauma*LocationTypeChange*2System*Int32*2Barotrauma*MissionPrefab : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Location*TakenItem : System.Object, {[System.Int32]:Barotrauma.Location.TakenItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Location.TakenItem : System.Object
+---@class System.Collections.Generic.HashSet*1System*Int32 : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Location*LoadedMission : System.Object, {[System.Int32]:Barotrauma.Location.LoadedMission}, {[System.Int32]:System.Object}
+---@class Barotrauma.Location.LoadedMission : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Location*StoreInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.Location.StoreInfo}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Location*TakenItem
+---@class Barotrauma.LocationConnection-ref
+---@class System.Collections.Generic.List*1Barotrauma*LocationTypeChange*Requirement : System.Object, {[System.Int32]:Barotrauma.LocationTypeChange.Requirement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*EventManager*DebugLine : System.Object, {[System.Int32]:Barotrauma.EventManager.DebugLine}, {[System.Int32]:System.Object}
+---@class Barotrauma.EventManager.DebugLine : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*EventSet : System.Object, {[System.Int32]:Barotrauma.EventSet}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Collections*Generic*List*2Barotrauma*Event : System.Object, {[Barotrauma.EventSet]:(System.Collections.Generic.List*1Barotrauma*Event)|(Barotrauma.Event[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Event : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*Event : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*Identifier : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*EventManager*TimeStamp : System.Object, {[System.Int32]:Barotrauma.EventManager.TimeStamp}, {[System.Int32]:System.Object}
+---@class Barotrauma.EventManager.TimeStamp : System.ValueType
+---@class Barotrauma.EventLog : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Event
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*EventSet : {[System.Int32]:Barotrauma.EventSet}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*EventSet
+---@class System.Linq.IOrderedEnumerable*1Barotrauma*EventManagerSettings
+---@class Barotrauma.T-ref
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single : System.Object, {[Barotrauma.Identifier]:System.Single}, {[Barotrauma.Identifier]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet*SubEventPrefab : System.ValueType, {[System.Int32]:Barotrauma.EventSet.SubEventPrefab}, {[System.Int32]:Barotrauma.EventSet.SubEventPrefab}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.EventSet.SubEventPrefab}
+---@class Barotrauma.EventSet.SubEventPrefab : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet : System.ValueType, {[System.Int32]:Barotrauma.EventSet}, {[System.Int32]:Barotrauma.EventSet}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.EventSet}
+---@class System.Func*1Barotrauma*MonsterEvent*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Character : {[System.Int32]:Barotrauma.Character}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*ScriptedEvent*TargetPredicate : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*ScriptedEvent*TargetPredicate)|(Barotrauma.ScriptedEvent.TargetPredicate[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*ScriptedEvent*TargetPredicate : System.Object, {[System.Int32]:Barotrauma.ScriptedEvent.TargetPredicate}, {[System.Int32]:System.Object}
+---@class Barotrauma.ScriptedEvent.TargetPredicate : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Entity : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])}, {[System.Object]:System.Object}
+---@class Barotrauma.OnRoundEndAction : Barotrauma.EventAction
+---@class System.Collections.Generic.List*1Barotrauma*EventAction : System.Object, {[System.Int32]:Barotrauma.EventAction}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*Int32*2Barotrauma*EventAction : System.Object, {[System.Int32]:System.ValueTuple*1System*Int32*1Barotrauma*EventAction}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Int32*1Barotrauma*EventAction : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.ScriptedEvent.TargetPredicate.EntityType : System.Enum
+---@class System.Predicate*1Barotrauma*Entity : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Entity : System.Object, {[System.UInt16]:Barotrauma.Entity}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Entity
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Entity*2System*Boolean : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Entity*1System*Boolean}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Entity*1System*Boolean : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Queue*1Barotrauma*Either*2Barotrauma*EntitySpawner*IEntitySpawnInfo*2Barotrauma*Entity : System.Object
+---@class Barotrauma.Either*1Barotrauma*EntitySpawner*IEntitySpawnInfo*1Barotrauma*Entity : System.Object
+---@class System.Action*1Barotrauma*Item : System.MulticastDelegate
+---@class System.Predicate*1Barotrauma*EntitySpawner*IEntitySpawnInfo : System.MulticastDelegate
+---@class Barotrauma.EntitySpawner.IEntitySpawnInfo
+---@class System.Collections.Generic.List : System.Array
+---@class System.Action*1Microsoft*Xna*Framework*Rectangle : System.MulticastDelegate
+---@class System.Collections.Generic.List*1System*UInt16 : System.Object, {[System.Int32]:System.UInt16}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Upgrade : System.Object, {[System.Int32]:Barotrauma.Upgrade}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*MapEntity : System.Object
+---@class Barotrauma.Quad2D : System.ValueType
+---@class System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T : System.Object
+---@class Barotrauma.MapEntity.T : Barotrauma.MapEntity
+---@class System.Func*1Barotrauma*MapEntity*T*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T : System.Object
+---@class Barotrauma.MapEntity.T : Barotrauma.MapEntity
+---@class System.Func*1Barotrauma*MapEntity*T*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Items*Components*Door*1Barotrauma*Gap : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MapEntityPrefab
+---@class System.Collections.Immutable.ImmutableHashSet*1System*String : System.Object
+---@class System.Predicate*1Barotrauma*MapEntityPrefab : System.MulticastDelegate
+---@class Barotrauma.PrefabCollection*1Barotrauma*CoreEntityPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.CoreEntityPrefab}, {[System.String]:Barotrauma.CoreEntityPrefab}
+---@class System.Action*1Barotrauma*ItemPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*ItemPrefab : System.MulticastDelegate
+---@class System.Action*1Barotrauma*ContentFile : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab : System.ValueType
+---@class System.Collections.Generic.HashSet*1Barotrauma*ContentFile : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*ItemPrefab
+---@class Barotrauma.ItemPrefab-ref
+---@class System.Predicate*1Barotrauma*ItemPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*ItemPrefab
+---@class System.Action*1Barotrauma*JobPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*JobPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*JobPrefab)|(fun():(Barotrauma.JobPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*JobPrefab
+---@class Barotrauma.JobPrefab-ref
+---@class System.Predicate*1Barotrauma*JobPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*JobPrefab
+---@class System.Action*1Barotrauma*CharacterPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*CharacterPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*CharacterPrefab)|(fun():(Barotrauma.CharacterPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*CharacterPrefab
+---@class Barotrauma.CharacterPrefab-ref
+---@class System.Predicate*1Barotrauma*CharacterPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*CharacterPrefab
+---@class System.Action*1Barotrauma*HumanPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*HumanPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*HumanPrefab)|(fun():(Barotrauma.HumanPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*HumanPrefab
+---@class Barotrauma.HumanPrefab-ref
+---@class System.Predicate*1Barotrauma*HumanPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*HumanPrefab
+---@class System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*AfflictionPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*AfflictionPrefab)|(fun():(Barotrauma.AfflictionPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*AfflictionPrefab
+---@class Barotrauma.AfflictionPrefab-ref
+---@class System.Predicate*1Barotrauma*AfflictionPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*AfflictionPrefab
+---@class System.Action*1Barotrauma*TalentPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*TalentPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*TalentPrefab)|(fun():(Barotrauma.TalentPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentPrefab
+---@class Barotrauma.TalentPrefab-ref
+---@class System.Predicate*1Barotrauma*TalentPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*TalentPrefab
+---@class System.Action*1Barotrauma*TalentTree*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*TalentTree : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*TalentTree)|(fun():(Barotrauma.TalentTree))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentTree
+---@class Barotrauma.TalentTree-ref
+---@class System.Predicate*1Barotrauma*TalentTree : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*TalentTree
+---@class System.Action*1Barotrauma*OrderPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*OrderPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*OrderPrefab)|(fun():(Barotrauma.OrderPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*OrderPrefab
+---@class Barotrauma.OrderPrefab-ref
+---@class System.Predicate*1Barotrauma*OrderPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*OrderPrefab
+---@class System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*LevelGenerationParams : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*LevelGenerationParams)|(fun():(Barotrauma.LevelGenerationParams))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LevelGenerationParams
+---@class Barotrauma.LevelGenerationParams-ref
+---@class System.Predicate*1Barotrauma*LevelGenerationParams : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*LevelGenerationParams
+---@class System.Action*1Barotrauma*LocationType*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*LocationType : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*LocationType)|(fun():(Barotrauma.LocationType))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LocationType
+---@class Barotrauma.LocationType-ref
+---@class System.Predicate*1Barotrauma*LocationType : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*LocationType
+---@class System.Action*1Barotrauma*EventPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*EventPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*EventPrefab)|(fun():(Barotrauma.EventPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventPrefab
+---@class Barotrauma.EventPrefab-ref
+---@class System.Predicate*1Barotrauma*EventPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*EventPrefab
+---@class System.Action*1Barotrauma*EventSet*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*EventSet : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*EventSet)|(fun():(Barotrauma.EventSet))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventSet
+---@class Barotrauma.EventSet-ref
+---@class System.Predicate*1Barotrauma*EventSet : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*EventSet
+---@class System.Action*1Barotrauma*EventManagerSettings*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*EventManagerSettings : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventManagerSettings
+---@class Barotrauma.EventManagerSettings-ref
+---@class System.Predicate*1Barotrauma*EventManagerSettings : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*EventManagerSettings
+---@class System.Action*1Barotrauma*GUIPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*GUIPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUIPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*GUIPrefab)|(fun():(Barotrauma.GUIPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUIPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*GUIPrefab
+---@class Barotrauma.GUIPrefab-ref
+---@class System.Predicate*1Barotrauma*GUIPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*GUIPrefab
+---@class System.Action*1Barotrauma*SoundPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*SoundPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*SoundPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*SoundPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*SoundPrefab
+---@class Barotrauma.SoundPrefab-ref
+---@class System.Predicate*1Barotrauma*SoundPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*SoundPrefab
+---@class System.Action*1Barotrauma*BackgroundMusic*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*BackgroundMusic : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*BackgroundMusic : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*BackgroundMusic)|(fun():(Barotrauma.BackgroundMusic))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*BackgroundMusic : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*BackgroundMusic
+---@class Barotrauma.BackgroundMusic-ref
+---@class System.Predicate*1Barotrauma*BackgroundMusic : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*BackgroundMusic
+---@class System.Action*1Barotrauma*GUISound*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*GUISound : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUISound : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*GUISound)|(fun():(Barotrauma.GUISound))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*GUISound : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*GUISound
+---@class Barotrauma.GUISound-ref
+---@class System.Predicate*1Barotrauma*GUISound : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*GUISound
+---@class System.Action*1Barotrauma*DamageSound*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*DamageSound : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*DamageSound : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*DamageSound)|(fun():(Barotrauma.DamageSound))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*DamageSound : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*DamageSound
+---@class Barotrauma.DamageSound-ref
+---@class System.Predicate*1Barotrauma*DamageSound : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*DamageSound
+---@class System.Collections.Generic.List*1Barotrauma*SoundPrefab : System.Object, {[System.Int32]:Barotrauma.SoundPrefab}, {[System.Int32]:System.Object}
+---@class System.Action*1Barotrauma*Particles*ParticlePrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Particles*ParticlePrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*Particles*ParticlePrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*Particles*ParticlePrefab)|(fun():(Barotrauma.Particles.ParticlePrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*Particles*ParticlePrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*Particles*ParticlePrefab
+---@class Barotrauma.Particles.ParticlePrefab-ref
+---@class System.Predicate*1Barotrauma*Particles*ParticlePrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*Particles*ParticlePrefab
+---@class System.Collections.Generic.List*1Barotrauma*SkillSettings : System.Object, {[System.Int32]:Barotrauma.SkillSettings}, {[System.Int32]:System.Object}
+---@class System.Action*1Barotrauma*SkillSettings : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*SkillSettings
+---@class System.Collections.Generic.List*1Barotrauma*WearableSprite : System.Object, {[System.Int32]:Barotrauma.WearableSprite}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*WearableType*1Microsoft*Xna*Framework*Graphics*SpriteBatch*EffectWithParams : System.Object, {[Barotrauma.WearableType]:Microsoft.Xna.Framework.Graphics.SpriteBatch.EffectWithParams}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single : System.ValueType, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single}, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Collections*Generic*List*2Barotrauma*SavedStatValue : System.Object, {[Barotrauma.StatTypes]:(System.Collections.Generic.List*1Barotrauma*SavedStatValue)|(Barotrauma.SavedStatValue[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*SavedStatValue : System.Object, {[System.Int32]:Barotrauma.SavedStatValue}, {[System.Int32]:System.Object}
+---@class Barotrauma.SavedStatValue : System.Object
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*StatTypes : System.Object, {[Barotrauma.Identifier]:Barotrauma.StatTypes}, {[Barotrauma.Identifier]:Barotrauma.StatTypes}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement : {[System.Int32]:Barotrauma.ContentXElement}
+---@class Barotrauma.MultiplayerPreferences : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Single
+---@class Barotrauma.Order-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*LinkedSubmarine : System.Object, {[System.Int32]:Barotrauma.LinkedSubmarine}, {[System.Int32]:System.Object}
+---@class Barotrauma.LinkedSubmarine : Barotrauma.MapEntity
+---@class System.Func*1Barotrauma*AfflictionPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Character
+---@class System.Nullable*1Barotrauma*WearableType : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray
+---@class Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo*HeadPreset : System.ValueType, {[System.Int32]:Barotrauma.CharacterInfo.HeadPreset}, {[System.Int32]:Barotrauma.CharacterInfo.HeadPreset}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CharacterInfo.HeadPreset}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterSound : System.Object, {[System.Int32]:Barotrauma.CharacterSound}, {[System.Int32]:System.Object}
+---@class Barotrauma.CharacterSound : System.Object
+---@class System.Collections.Generic.Dictionary*1System*Object*1Barotrauma*HUDProgressBar : System.Object, {[System.Object]:Barotrauma.HUDProgressBar}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*Collections*Generic*KeyValuePair*2System*Object*2Barotrauma*HUDProgressBar : System.Object, {[System.Int32]:System.Collections.Generic.KeyValuePair*1System*Object*1Barotrauma*HUDProgressBar}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1System*Object*1Barotrauma*HUDProgressBar : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Character*GUIMessage : System.Object, {[System.Int32]:Barotrauma.Character.GUIMessage}, {[System.Int32]:System.Object}
+---@class Barotrauma.Character.GUIMessage : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Character*ObjectiveEntity : System.Object, {[System.Int32]:Barotrauma.Character.ObjectiveEntity}, {[System.Int32]:System.Object}
+---@class Barotrauma.Character.ObjectiveEntity : System.Object
+---@class Barotrauma.Character.SpeechBubble : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Item*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Item*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Item*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Key-arr : System.Array
+---@class System.Collections.Generic.HashSet*1Barotrauma*LatchOntoAI : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Projectile : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*ActiveTeamChange : System.Object, {[System.String]:Barotrauma.ActiveTeamChange}, {[System.Object]:System.Object}
+---@class Barotrauma.ActiveTeamChange : System.Object
+---@class Barotrauma.CombatAction : Barotrauma.EventAction
+---@class System.Collections.Generic.List*1Barotrauma*Character*Attacker : System.Object, {[System.Int32]:Barotrauma.Character.Attacker}, {[System.Int32]:System.Object}
+---@class Barotrauma.Character.Attacker : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Double : System.Object, {[Barotrauma.ItemPrefab]:System.Double}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect : System.Object, {[Barotrauma.ActionType]:(System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])}, {[System.Object]:System.Object}
+---@class System.Action*1Barotrauma*Character*1Barotrauma*Character : System.MulticastDelegate
+---@class Barotrauma.ConversationAction : Barotrauma.EventAction
+---@class Barotrauma.Character.OnDeathHandler : System.MulticastDelegate
+---@class Barotrauma.Character.OnAttackedHandler : System.MulticastDelegate
+---@class Barotrauma.Character.AttackTargetData : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*AIChatMessage : System.Object, {[System.Int32]:Barotrauma.AIChatMessage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*AttackContext : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Hull : System.Object, {[System.Int32]:Barotrauma.Hull}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Hull : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*CharacterTalent : System.Object, {[System.Int32]:Barotrauma.CharacterTalent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single : System.Object, {[Barotrauma.StatTypes]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*TalentResistanceIdentifier*1System*Single : System.Object, {[Barotrauma.TalentResistanceIdentifier]:System.Single}, {[System.Object]:System.Object}
+---@class Barotrauma.TalentResistanceIdentifier : System.ValueType
+---@class Barotrauma.Character.InputNetFlags : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Character*NetInputMem : System.Object, {[System.Int32]:Barotrauma.Character.NetInputMem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Character.NetInputMem : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*CharacterStateInfo : System.Object, {[System.Int32]:Barotrauma.CharacterStateInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.CharacterStateInfo : Barotrauma.PosInfo
+---@class Barotrauma.PosInfo : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Character*SpeechBubble : System.Object, {[System.Int32]:Barotrauma.Character.SpeechBubble}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Particles*ParticleEmitter
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Character*ObjectiveEntity
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Character*Attacker
+---@class Barotrauma.AnimController.Animation : System.Enum
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterTalent
+---@class System.Func*1Barotrauma*Order*1System*Boolean : System.MulticastDelegate
+---@class System.Nullable*1Barotrauma*Networking*ChatMessageType : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Affliction
+---@class Barotrauma.Limb-ref
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext
+---@class System.Nullable*1Barotrauma*InvSlotType : System.ValueType
+---@class System.Func*1Barotrauma*InvSlotType*1System*Boolean : System.MulticastDelegate
+---@class System.ValueTuple
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType
+---@class Barotrauma.CharacterInventory.AccessLevel : System.Enum
+---@class Barotrauma.Item-ref
+---@class System.Func*1Barotrauma*Item*1System*Single : System.MulticastDelegate
+---@class Barotrauma.CharacterSound.SoundType : System.Enum
+---@class System.Func*1Barotrauma*CharacterSound*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AfflictionPrefab*1System*Single : System.Object, {[Barotrauma.AfflictionPrefab]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Affliction*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Affliction*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Affliction*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*CharacterHealth*LimbHealth*2Barotrauma*AfflictionPrefab*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*AfflictionPrefab*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*AfflictionPrefab*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*AfflictionPrefab*PeriodicEffect*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*AfflictionPrefab*PeriodicEffect*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*AfflictionPrefab*PeriodicEffect*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterHealth*LimbHealth : System.Object, {[System.Int32]:Barotrauma.CharacterHealth.LimbHealth}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth : System.Object, {[Barotrauma.Affliction]:Barotrauma.CharacterHealth.LimbHealth}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Affliction : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*CharacterHealth*LimbHealth*2Barotrauma*Affliction : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*Affliction}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*Affliction : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*Collections*Generic*KeyValuePair*2Barotrauma*Affliction*2Barotrauma*CharacterHealth*LimbHealth : System.Object, {[System.Int32]:System.Collections.Generic.KeyValuePair*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth : System.ValueType
+---@class Barotrauma.CharacterHealth.T : Barotrauma.Affliction
+---@class System.Func*1Barotrauma*Affliction*1System*Boolean : System.MulticastDelegate
+---@class System.Nullable*1Barotrauma*ActionType : System.ValueType
+---@class System.ValueTuple*1Barotrauma*CauseOfDeathType*1Barotrauma*Affliction : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Affliction
+---@class Barotrauma.CharacterInventory.Layout : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*InvSlotType*1Barotrauma*Sprite : System.Object, {[Barotrauma.InvSlotType]:Barotrauma.Sprite}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Inventory*SlotReference : System.Object, {[System.Int32]:Barotrauma.Inventory.SlotReference}, {[System.Int32]:System.Object}
+---@class Barotrauma.Inventory.SlotReference : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*InvSlotType : System.Object, {[System.Int32]:Barotrauma.InvSlotType}, {[System.Int32]:System.Object}
+---@class Barotrauma.InvSlotType-arr : System.Array
+---@class Barotrauma.CharacterInventory.QuickUseAction : System.Enum
+---@class System.Nullable*1Barotrauma*CharacterInventory*QuickUseAction : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AbilityEffectType*1System*Collections*Generic*List*2Barotrauma*Abilities*CharacterAbilityGroupEffect : System.Object, {[Barotrauma.AbilityEffectType]:(System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupEffect)|(Barotrauma.Abilities.CharacterAbilityGroupEffect[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupEffect : System.Object, {[System.Int32]:Barotrauma.Abilities.CharacterAbilityGroupEffect}, {[System.Int32]:System.Object}
+---@class Barotrauma.Abilities.CharacterAbilityGroupEffect : Barotrauma.Abilities.CharacterAbilityGroup
+---@class Barotrauma.Abilities.CharacterAbilityGroup : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupInterval : System.Object, {[System.Int32]:Barotrauma.Abilities.CharacterAbilityGroupInterval}, {[System.Int32]:System.Object}
+---@class Barotrauma.Abilities.CharacterAbilityGroupInterval : Barotrauma.Abilities.CharacterAbilityGroup
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*SubParam : System.Object, {[System.Int32]:Barotrauma.CharacterParams.SubParam}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*SoundParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.SoundParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.ParticleParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.InventoryParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.CharacterParams.T : Barotrauma.CharacterParams.SubParam
+---@class System.Collections.Generic.IList*1Barotrauma*CharacterParams*T : {[System.Int32]:Barotrauma.CharacterParams.T}
+---@class System.Func*1Barotrauma*ContentXElement*1Barotrauma*CharacterParams*1Barotrauma*CharacterParams*T : System.MulticastDelegate
+---@class Barotrauma.CharacterParams.T : Barotrauma.CharacterParams.SubParam
+---@class Barotrauma.T-ref
+---@class System.Collections.Generic.IList*1Barotrauma*CharacterParams*T : {[System.Int32]:Barotrauma.CharacterParams.T}
+---@class System.Func*1System*Collections*Generic*IList*2Barotrauma*CharacterParams*T*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*TargetParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.TargetParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.WallTargetingMethod : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams
+---@class Barotrauma.TargetParams-ref
+---@class System.Func*1Barotrauma*CharacterParams*TargetParams*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams*InventoryItem : System.Object, {[System.Int32]:Barotrauma.CharacterParams.InventoryParams.InventoryItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.CharacterParams.InventoryParams.InventoryItem : Barotrauma.CharacterParams.SubParam
+---@class Barotrauma.CharacterParams.SubParam.T : Barotrauma.CharacterParams.SubParam
+---@class System.Collections.Generic.IList*1Barotrauma*CharacterParams*SubParam*T : {[System.Int32]:Barotrauma.CharacterParams.SubParam.T}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CharacterFile
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*VineTileType*1Barotrauma*Items*Components*VineSprite : System.Object, {[Barotrauma.Items.Components.VineTileType]:Barotrauma.Items.Components.VineSprite}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.VineTileType : System.Enum
+---@class System.Collections.Generic.List*1System*Tuple*2Microsoft*Xna*Framework*Vector2*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerTransfer : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerContainer : System.Object
+---@class System.Collections.Generic.List*1System*Tuple*2System*UInt16*2System*Int32 : System.Object, {[System.Int32]:System.Tuple*1System*UInt16*1System*Int32}, {[System.Int32]:System.Object}
+---@class System.Tuple*1System*UInt16*1System*Int32 : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior*AITarget : System.Object, {[System.Int32]:Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AITarget}, {[System.Int32]:System.Object}
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AITarget : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch : System.Object, {[System.Int32]:Barotrauma.MapCreatures.Behavior.BallastFloraBranch}, {[System.Int32]:System.Object}
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraStateMachine : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior : System.Object, {[System.Int32]:Barotrauma.MapCreatures.Behavior.BallastFloraBehavior}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior
+---@class Barotrauma.Items.Components.TileSide : System.Enum
+---@class System.Collections.Generic.List
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AttackType : System.Enum
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.NetworkHeader : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch : System.Object, {[Barotrauma.Items.Components.TileSide]:Barotrauma.MapCreatures.Behavior.BallastFloraBranch}, {[System.Object]:System.Object}
+---@class System.Nullable*1Barotrauma*Items*Components*FoliageConfig : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*PetBehavior*ItemProduction : System.Object, {[System.Int32]:Barotrauma.PetBehavior.ItemProduction}, {[System.Int32]:System.Object}
+---@class Barotrauma.PetBehavior.ItemProduction : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*PetBehavior*Food : System.Object, {[System.Int32]:Barotrauma.PetBehavior.Food}, {[System.Int32]:System.Object}
+---@class Barotrauma.PetBehavior.Food : System.Object
+---@class Barotrauma.PetBehavior.StatusIndicatorType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*AICharacter : System.Object, {[System.Int32]:Barotrauma.AICharacter}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*AICharacter : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AICharacter
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Joints*Joint : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Joints.Joint}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.Joints.Joint : System.Object
+---@class System.Nullable*1Barotrauma*OrderCategory : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[System.Object]:System.Object}
+---@class Barotrauma.ListDictionary*1Barotrauma*Identifier*1Barotrauma*LocalizedString : System.Object, {[Barotrauma.Identifier]:Barotrauma.LocalizedString}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*LocalizedString : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*Sprite : System.Object, {[Barotrauma.Identifier]:Barotrauma.Sprite}, {[Barotrauma.Identifier]:Barotrauma.Sprite}, {[System.Object]:System.Object}
+---@class Barotrauma.OrderPrefab.OrderTargetType : System.Enum
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Identifier : {[System.Int32]:Barotrauma.Identifier}
+---@class Barotrauma.Items.Components.ItemComponent-ref
+---@class Barotrauma.Order.OrderType : System.Enum
+---@class Barotrauma.Order.OrderTargetType : System.Enum
+---@class System.Collections.Immutable.ImmutableArray
+---@class System.Nullable*1Barotrauma*Order*OrderType : System.ValueType
+---@class System.Nullable*1Barotrauma*Order*OrderTargetType : System.ValueType
+---@class Barotrauma.EnemyTargetingRestrictions : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AITarget*1Barotrauma*AITargetMemory : System.Object, {[Barotrauma.AITarget]:Barotrauma.AITargetMemory}, {[System.Object]:System.Object}
+---@class Barotrauma.CirclePhase : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Limb : System.Object, {[System.Int32]:Barotrauma.Limb}, {[System.Int32]:System.Object}
+---@class Barotrauma.EnemyAIController.WallTarget : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2FarseerPhysics*Dynamics*Body*2System*Int32*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.ValueTuple*1FarseerPhysics*Dynamics*Body*1System*Int32*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1FarseerPhysics*Dynamics*Body*1System*Int32*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*AITarget : System.Object, {[System.Int32]:Barotrauma.AITarget}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*AITarget : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*StatusEffect*AITrigger*1Barotrauma*CharacterParams*TargetParams : System.Object, {[Barotrauma.StatusEffect.AITrigger]:Barotrauma.CharacterParams.TargetParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*StatusEffect*AITrigger : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*IEnumerable*2Barotrauma*CharacterParams*TargetParams : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*CharacterParams*TargetParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.CharacterParams.TargetParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Character*1Barotrauma*AttackResult : System.Object, {[Barotrauma.Character]:Barotrauma.AttackResult}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Barotrauma*HumanAIController*HullSafety : System.Object, {[Barotrauma.Hull]:Barotrauma.HumanAIController.HullSafety}, {[System.Object]:System.Object}
+---@class Barotrauma.HumanAIController.HullSafety : System.Object
+---@class Barotrauma.HumanAIController.FindItemState : System.Enum
+---@class Barotrauma.MentalStateManager : System.Object
+---@class Barotrauma.ShipCommandManager : System.Object
+---@class System.Func*1Barotrauma*HumanAIController*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1Barotrauma*AIObjective*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable
+---@class Barotrauma.HumanAIController.T2 : System.Object
+---@class Barotrauma.HumanAIController.T2 : System.Object
+---@class System.Func*1Barotrauma*Character*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*HumanAIController : System.MulticastDelegate
+---@class Barotrauma.AITarget.TargetType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*AIObjective : System.Object, {[System.Int32]:Barotrauma.AIObjective}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*1Barotrauma*CoroutineHandle : System.Object, {[Barotrauma.AIObjective]:Barotrauma.CoroutineHandle}, {[System.Object]:System.Object}
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AIObjectiveManager*T
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class System.Func*1Barotrauma*AIObjectiveManager*T*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective
+---@class Barotrauma.T-ref
+---@class Barotrauma.AIObjective.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*T1*1Barotrauma*AIObjective*T2 : System.Object, {[Barotrauma.AIObjective.T1]:Barotrauma.AIObjective.T2}, {[System.Object]:System.Object}
+---@class Barotrauma.AIObjective.T1 : System.Object
+---@class Barotrauma.AIObjective.T2 : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective*T1
+---@class Barotrauma.T-ref
+---@class System.Func*1Barotrauma*AIObjective*T : System.MulticastDelegate
+---@class Barotrauma.AIObjective.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*PowerContainer : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Item : Barotrauma.AIObjective
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*ItemComponent : System.Object
+---@class System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body
+---@class System.Func*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemComponent
+---@class System.Collections.Generic.ICollection*1Barotrauma*Items*Components*ItemComponent
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Hull : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Character : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveFindSafety.HullSearchStatus : System.Enum
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Gap : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Gap
+---@class System.Func*1Barotrauma*Item*1Barotrauma*Identifier*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.AIObjectiveIdle.BehaviorType : System.Enum
+---@class Barotrauma.AIObjectiveOperateItem.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*Pump : Barotrauma.AIObjective
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Pump : System.Object, {[System.Int32]:Barotrauma.Items.Components.Pump}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Pump
+---@class Barotrauma.AIObjectiveRepairItems.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.Dictionary*1Barotrauma*DecorativeSprite*1Barotrauma*Limb*SpriteState : System.Object, {[Barotrauma.DecorativeSprite]:Barotrauma.Limb.SpriteState}, {[System.Object]:System.Object}
+---@class Barotrauma.Limb.SpriteState : System.Object
+---@class System.Collections.Generic.Dictionary*1System*Int32*1System*Collections*Generic*List*2Barotrauma*DecorativeSprite : System.Object, {[System.Int32]:(System.Collections.Generic.List*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*DecorativeSprite : System.Object, {[System.Int32]:Barotrauma.DecorativeSprite}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*WearableType : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*WearableSprite*1System*Collections*Generic*Dictionary*2System*String*2System*Object : System.Object, {[Barotrauma.WearableSprite]:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})}, {[System.Object]:System.Object}
+---@class Barotrauma.RagdollParams.LimbParams : Barotrauma.RagdollParams.SubParam
+---@class Barotrauma.RagdollParams.SubParam : System.Object
+---@class FarseerPhysics.Dynamics.Joints.FixedMouseJoint : FarseerPhysics.Dynamics.Joints.Joint
+---@class Barotrauma.Direction : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*DamageModifier : System.Object, {[System.Int32]:Barotrauma.DamageModifier}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.Joints.WeldJoint : FarseerPhysics.Dynamics.Joints.Joint
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*ConditionalSprite*2System*Collections*Generic*IEnumerable*3Barotrauma*SpriteDeformations*SpriteDeformation : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*ConditionalSprite*1System*Collections*Generic*IEnumerable*2Barotrauma*SpriteDeformations*SpriteDeformation}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*ConditionalSprite*1System*Collections*Generic*IEnumerable*2Barotrauma*SpriteDeformations*SpriteDeformation : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*ConditionalSprite : System.Object, {[System.Int32]:Barotrauma.ConditionalSprite}, {[System.Int32]:System.Object}
+---@class Barotrauma.AttackResult-ref
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LimbJoint
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Limb
+---@class Barotrauma.RagdollParams.SpriteParams : Barotrauma.RagdollParams.SubParam
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Color*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.RagdollParams.JointParams : Barotrauma.RagdollParams.SubParam
+---@class FarseerPhysics.Dynamics.Joints.RevoluteJoint : FarseerPhysics.Dynamics.Joints.Joint
+---@class Barotrauma.Limb-arr : System.Array
+---@class System.Collections.Generic.Queue*1Barotrauma*Ragdoll*Impact : System.Object
+---@class Barotrauma.Ragdoll.Impact : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*LimbType*1Barotrauma*Limb : System.Object, {[Barotrauma.LimbType]:Barotrauma.Limb}, {[System.Object]:System.Object}
+---@class Barotrauma.LimbJoint-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*PhysicsBody : System.Object, {[System.Int32]:Barotrauma.PhysicsBody}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LimbJoint : System.Object, {[System.Int32]:Barotrauma.LimbJoint}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Ragdoll : System.Object, {[System.Int32]:Barotrauma.Ragdoll}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*SpriteDeformations*SpriteDeformation : System.Object
+---@class Barotrauma.PhysicsBody-ref
+---@class System.Func*1Barotrauma*Limb*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimController*AnimSwap : System.Object, {[Barotrauma.AnimationType]:Barotrauma.AnimController.AnimSwap}, {[System.Object]:System.Object}
+---@class Barotrauma.AnimationType : System.Enum
+---@class Barotrauma.AnimController.AnimSwap : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*AnimationType : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimationParams : System.Object, {[Barotrauma.AnimationType]:Barotrauma.AnimationParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*AnimationParams : System.Object, {[System.Int32]:Barotrauma.AnimationParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LimbType
+---@class Barotrauma.Either*1System*String*1Barotrauma*ContentPath : System.Object
+---@class Barotrauma.AnimationParams-ref
+---@class Barotrauma.IFishAnimation
+---@class Barotrauma.IHumanAnimation
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*RagdollParams : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RagdollParams)|({[System.String]:(Barotrauma.RagdollParams)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RagdollParams : System.Object, {[System.String]:Barotrauma.RagdollParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*RagdollParams*ColliderParams : System.Object, {[System.Int32]:Barotrauma.RagdollParams.ColliderParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.RagdollParams.ColliderParams : Barotrauma.RagdollParams.SubParam
+---@class System.Collections.Generic.List*1Barotrauma*RagdollParams*LimbParams : System.Object, {[System.Int32]:Barotrauma.RagdollParams.LimbParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*RagdollParams*JointParams : System.Object, {[System.Int32]:Barotrauma.RagdollParams.JointParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.Memento*1Barotrauma*RagdollParams : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*RagdollParams*SubParam
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*AnimationParams : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.Dictionary*1System*String*1Barotrauma*AnimationParams)|({[System.String]:(Barotrauma.AnimationParams)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*AnimationParams : System.Object, {[System.String]:Barotrauma.AnimationParams}, {[System.Object]:System.Object}
+---@class Barotrauma.Memento*1Barotrauma*AnimationParams : System.Object
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Skill : System.Object, {[Barotrauma.Identifier]:Barotrauma.Skill}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Skill
+---@class Barotrauma.JobPrefab.JobItem : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab*JobItem
+---@class Barotrauma.Skill-arr : System.Array
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*JobPrefab*JobItem : System.Object, {[System.Int32]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem)|(Barotrauma.JobPrefab.JobItem[])}, {[System.Int32]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem)|(Barotrauma.JobPrefab.JobItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem : System.ValueType, {[System.Int32]:Barotrauma.JobPrefab.JobItem}, {[System.Int32]:Barotrauma.JobPrefab.JobItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.JobPrefab.JobItem}
+---@class System.Collections.Generic.List*1Barotrauma*SkillPrefab : System.Object, {[System.Int32]:Barotrauma.SkillPrefab}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*AutonomousObjective : System.Object, {[System.Int32]:Barotrauma.AutonomousObjective}, {[System.Int32]:System.Object}
+---@class Barotrauma.AutonomousObjective : System.Object
+---@class Barotrauma.GUIComponent-ref
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Sprite
+---@class System.Func*1Barotrauma*JobPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*BackgroundSection : System.Object
+---@class Barotrauma.BackgroundSection : System.Object
+---@class Barotrauma.PrefabCollection*1Barotrauma*DecalPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.DecalPrefab}, {[System.String]:Barotrauma.DecalPrefab}
+---@class Barotrauma.PrefabCollection*1Barotrauma*GrimeSprite : System.Object, {[Barotrauma.Identifier]:Barotrauma.GrimeSprite}, {[System.String]:Barotrauma.GrimeSprite}
+---@class Barotrauma.GrimeSprite : Barotrauma.Prefab
+---@class Barotrauma.Option*1System*ValueTuple*2Barotrauma*Identifier*2System*Int32 : System.ValueType
+---@class Barotrauma.Option*1Microsoft*Xna*Framework*Color : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*TalentMigration : System.Object
+---@class Barotrauma.TalentMigration : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentOption : System.ValueType, {[System.Int32]:Barotrauma.TalentOption}, {[System.Int32]:Barotrauma.TalentOption}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TalentOption}
+---@class Barotrauma.TalentTreeType : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentSubTree : System.ValueType, {[System.Int32]:Barotrauma.TalentSubTree}, {[System.Int32]:Barotrauma.TalentSubTree}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TalentSubTree}
+---@class Barotrauma.TalentTree.TalentStages : System.Enum
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*DamageModifier : {[System.Int32]:Barotrauma.DamageModifier}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*DecorativeSprite : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])}, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite : System.ValueType, {[System.Int32]:Barotrauma.DecorativeSprite}, {[System.Int32]:Barotrauma.DecorativeSprite}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.DecorativeSprite}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*BrokenItemSprite : System.ValueType, {[System.Int32]:Barotrauma.BrokenItemSprite}, {[System.Int32]:Barotrauma.BrokenItemSprite}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.BrokenItemSprite}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ContainedItemSprite : System.ValueType, {[System.Int32]:Barotrauma.ContainedItemSprite}, {[System.Int32]:Barotrauma.ContainedItemSprite}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ContainedItemSprite}
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*DecorativeSprite : System.Object, {[System.Int32]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])}, {[System.Int32]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*DecorativeSprite)|(Barotrauma.DecorativeSprite[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.PriceInfo}, {[Barotrauma.Identifier]:Barotrauma.PriceInfo}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Rectangle : System.ValueType, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}, {[System.Int32]:System.Object}, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*DeconstructItem : System.ValueType, {[System.Int32]:Barotrauma.DeconstructItem}, {[System.Int32]:Barotrauma.DeconstructItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.DeconstructItem}
+---@class System.Collections.Immutable.ImmutableDictionary*1System*UInt32*1Barotrauma*FabricationRecipe : System.Object, {[System.UInt32]:Barotrauma.FabricationRecipe}, {[System.UInt32]:Barotrauma.FabricationRecipe}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*PreferredContainer : System.ValueType, {[System.Int32]:Barotrauma.PreferredContainer}, {[System.Int32]:Barotrauma.PreferredContainer}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.PreferredContainer}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*SkillRequirementHint : System.ValueType, {[System.Int32]:Barotrauma.SkillRequirementHint}, {[System.Int32]:Barotrauma.SkillRequirementHint}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.SkillRequirementHint}
+---@class Barotrauma.SkillRequirementHint : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*CommonnessInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.CommonnessInfo}, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.CommonnessInfo}, {[System.Object]:System.Object}
+---@class Barotrauma.ItemPrefab.CommonnessInfo : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*FixedQuantityResourceInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.FixedQuantityResourceInfo}, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.FixedQuantityResourceInfo}, {[System.Object]:System.Object}
+---@class Barotrauma.ItemPrefab.FixedQuantityResourceInfo : System.ValueType
+---@class System.Nullable*1Barotrauma*ItemPrefab*CommonnessInfo : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemAssemblyPrefab*DisplayEntity : System.ValueType, {[System.Int32]:Barotrauma.ItemAssemblyPrefab.DisplayEntity}, {[System.Int32]:Barotrauma.ItemAssemblyPrefab.DisplayEntity}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ItemAssemblyPrefab.DisplayEntity}
+---@class Barotrauma.ItemAssemblyPrefab.DisplayEntity : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*PosInfo : System.Object, {[System.Int32]:Barotrauma.PosInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemComponent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*SerializableEntityEditor : System.Object, {[System.Int32]:Barotrauma.SerializableEntityEditor}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*DecorativeSprite*1Barotrauma*DecorativeSprite*State : System.Object, {[Barotrauma.DecorativeSprite]:Barotrauma.DecorativeSprite.State}, {[System.Object]:System.Object}
+---@class Barotrauma.DecorativeSprite.State : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*ColoredText : System.Object, {[System.Int32]:Barotrauma.ColoredText}, {[System.Int32]:System.Object}
+---@class Barotrauma.ColoredText : System.ValueType
+---@class System.Collections.Generic.Dictionary*1System*Type*1Barotrauma*Items*Components*ItemComponent : System.Object, {[System.Type]:Barotrauma.Items.Components.ItemComponent}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*IDrawableComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.IDrawableComponent}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.IDrawableComponent
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Fixture}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Items*Components*Connection : System.Object, {[System.String]:Barotrauma.Items.Components.Connection}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Repairable : System.Object, {[System.Int32]:Barotrauma.Items.Components.Repairable}, {[System.Int32]:System.Object}
+---@class System.Collections.Concurrent.ConcurrentQueue*1System*Single : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemInventory : System.ValueType, {[System.Int32]:Barotrauma.ItemInventory}, {[System.Int32]:Barotrauma.ItemInventory}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ItemInventory}
+---@class System.Collections.Generic.HashSet*1Barotrauma*ItemPrefab : System.Object
+---@class Barotrauma.ItemStatManager : System.Object
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Items*Components*Signal*2Barotrauma*Items*Components*Connection : System.Object
+---@class System.ValueTuple*1Barotrauma*Items*Components*Signal*1Barotrauma*Items*Components*Connection : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier : System.ValueType, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}
+---@class FarseerPhysics.BodyType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Connection : System.Object, {[System.Int32]:Barotrauma.Items.Components.Connection}, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*Items*Components*Connection*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Items.Components.Controller-ref
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*Object*2Barotrauma*SerializableProperty : System.Object, {[System.Int32]:System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Option*1System*UInt16 : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*ItemPrefab : System.Object, {[Barotrauma.Item]:Barotrauma.ItemPrefab}, {[System.Object]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Item*T
+---@class Barotrauma.Item.T : System.Object
+---@class Barotrauma.Items.Components.Quality.StatType : System.Enum
+---@class System.Func*1Barotrauma*Inventory*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.ContainerTagPrefab : Barotrauma.Prefab
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ContainerTagPrefab*ItemAndProbability : System.ValueType, {[System.Int32]:Barotrauma.ContainerTagPrefab.ItemAndProbability}, {[System.Int32]:Barotrauma.ContainerTagPrefab.ItemAndProbability}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ContainerTagPrefab.ItemAndProbability}
+---@class Barotrauma.ContainerTagPrefab.ItemAndProbability : System.ValueType
+---@class Barotrauma.Item.InteractionVisibility : System.Enum
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Items.Components.ItemComponent.IEventData
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client
+---@class Barotrauma.RelatedItem.RelationType : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*RelatedItem*RelationType*1System*Collections*Generic*List*2Barotrauma*RelatedItem : System.Object, {[Barotrauma.RelatedItem.RelationType]:(System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*StatTypes*1System*Single : System.Object, {[Barotrauma.StatTypes]:System.Single}, {[Barotrauma.StatTypes]:System.Single}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.IdCard.OwnerAppearance : System.ValueType
+---@class System.Collections.Generic.Queue*1FarseerPhysics*Dynamics*Fixture : System.Object
+---@class Barotrauma.Items.Components.Propulsion.UseEnvironment : System.Enum
+---@class System.Collections.Generic.IReadOnlySet*1Barotrauma*Identifier
+---@class Barotrauma.Items.Components.RangedWeapon.ChargingState : System.Enum
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*RelatedItem*2Barotrauma*Particles*ParticleEmitter : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*RelatedItem*1Barotrauma*Particles*ParticleEmitter}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*RelatedItem*1Barotrauma*Particles*ParticleEmitter : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.RepairTool.UseEnvironment : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*BackgroundSection : System.Object, {[System.Int32]:Barotrauma.BackgroundSection}, {[System.Int32]:System.Object}
+---@class Microsoft.Xna.Framework.Point-arr : System.Array
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color : System.Object, {[Barotrauma.Identifier]:Microsoft.Xna.Framework.Color}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.Throwable.ThrowState : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*LimbPos : System.Object, {[System.Int32]:Barotrauma.Items.Components.LimbPos}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*LimbPos
+---@class Barotrauma.Items.Components.Controller.UseEnvironment : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Item : System.ValueType, {[System.Int32]:Barotrauma.Item}, {[System.Int32]:Barotrauma.Item}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Item}
+---@class System.Collections.Generic.List*1Barotrauma*DeconstructItem : System.Object, {[System.Int32]:Barotrauma.DeconstructItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Item*2Barotrauma*DeconstructItem
+---@class System.ValueTuple*1Barotrauma*Item*1Barotrauma*DeconstructItem : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Nullable*1Barotrauma*MapEntityCategory : System.ValueType
+---@class Barotrauma.Items.Components.Fabricator.ToolTip : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*FabricationRecipe*RequiredItem*1System*Int32 : System.Object, {[Barotrauma.FabricationRecipe.RequiredItem]:System.Int32}, {[System.Object]:System.Object}
+---@class Barotrauma.Option*1Barotrauma*Items*Components*Fabricator*SelectedRecipe : System.ValueType
+---@class Barotrauma.Items.Components.Fabricator.FabricatorState : System.Enum
+---@class System.Collections.Generic.Dictionary*1System*UInt32*1System*Int32 : System.Object, {[System.UInt32]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Action*1Barotrauma*Item*1Barotrauma*Character : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*Inventory : System.Object
+---@class Barotrauma.Items.Components.Fabricator.SelectedRecipe : System.ValueType
+---@class Barotrauma.Items.Components.Fabricator.QualityResult : System.ValueType
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item : {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Skill : System.ValueType, {[System.Int32]:Barotrauma.Skill}, {[System.Int32]:Barotrauma.Skill}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Skill}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Barotrauma*Items*Components*MiniMap*HullData : System.Object, {[Barotrauma.Hull]:Barotrauma.Items.Components.MiniMap.HullData}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.MiniMap.HullData : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*MiniMapSprite : System.Object
+---@class Barotrauma.Items.Components.MiniMapSprite : System.ValueType
+---@class Barotrauma.Items.Components.MiniMapMode : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*GUIButton : System.ValueType, {[System.Int32]:Barotrauma.GUIButton}, {[System.Int32]:Barotrauma.GUIButton}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.GUIButton}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*MapEntity*1Barotrauma*Items*Components*MiniMapGUIComponent : System.Object, {[Barotrauma.MapEntity]:Barotrauma.Items.Components.MiniMapGUIComponent}, {[Barotrauma.MapEntity]:Barotrauma.Items.Components.MiniMapGUIComponent}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.MiniMapGUIComponent : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Items*Components*MiniMapGUIComponent*1Barotrauma*GUIComponent : System.Object, {[Barotrauma.Items.Components.MiniMapGUIComponent]:Barotrauma.GUIComponent}, {[Barotrauma.Items.Components.MiniMapGUIComponent]:Barotrauma.GUIComponent}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*ItemPrefab : System.Object
+---@class System.Collections.Immutable.ImmutableHashSet*1Microsoft*Xna*Framework*Vector2 : System.Object
+---@class Microsoft.Xna.Framework.Graphics.ISpriteBatch
+---@class Barotrauma.Items.Components.MiniMapSettings : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Hull : System.ValueType, {[System.Int32]:Barotrauma.Hull}, {[System.Int32]:Barotrauma.Hull}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Hull}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Hull*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Hull : System.Object, {[Barotrauma.Hull]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Hull)|(Barotrauma.Hull[])}, {[Barotrauma.Hull]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Hull)|(Barotrauma.Hull[])}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.MiniMapHullData : System.ValueType
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*Vent*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Items*Components*Vent*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Items*Components*Vent*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Vector2*2Barotrauma*Particles*ParticleEmitter : System.Object, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Barotrauma*Particles*ParticleEmitter}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Barotrauma*Particles*ParticleEmitter : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*GUIButton : System.Object, {[System.String]:Barotrauma.GUIButton}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.PowerPriority : System.Enum
+---@class System.Collections.Generic.IList*1Barotrauma*Items*Components*Reactor*T : {[System.Int32]:Barotrauma.Items.Components.Reactor.T}
+---@class Barotrauma.Items.Components.Reactor.T : System.Object
+---@class Barotrauma.Items.Components.PowerRange : System.ValueType
+---@class Barotrauma.Sprite-arr : System.Array
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Tuple*2Barotrauma*Sprite*2Microsoft*Xna*Framework*Color : System.Object, {[Barotrauma.Identifier]:System.Tuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Color}, {[System.Object]:System.Object}
+---@class System.Tuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Color : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*SonarBlip : System.Object, {[System.Int32]:Barotrauma.Items.Components.SonarBlip}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.SonarBlip : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Vector2*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Object*1Barotrauma*CachedDistance : System.Object, {[System.Object]:Barotrauma.CachedDistance}, {[System.Object]:System.Object}
+---@class Barotrauma.CachedDistance : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*GUITextBlock : System.Object, {[System.Int32]:Barotrauma.GUITextBlock}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*CachedLocation : System.Object, {[Barotrauma.Identifier]:Barotrauma.CachedLocation}, {[System.Object]:System.Object}
+---@class Barotrauma.CachedLocation : System.ValueType
+---@class Barotrauma.Items.Components.Sonar.Mode : System.Enum
+---@class Barotrauma.Items.Components.ActivePing-arr : System.Array
+---@class Barotrauma.Items.Components.Sonar.ActivePing : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Sonar*ConnectedTransducer : System.Object, {[System.Int32]:Barotrauma.Items.Components.Sonar.ConnectedTransducer}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Sonar.ConnectedTransducer : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Sonar*BlipType*1Microsoft*Xna*Framework*Color-arr : System.Object, {[Barotrauma.Items.Components.Sonar.BlipType]:(Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.Sonar.BlipType : System.Enum
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Barotrauma*Character : System.Object, {[System.String]:(System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Vector2*2System*Collections*Generic*List*3Barotrauma*Item : System.Object, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1System*Collections*Generic*List*2Barotrauma*Item}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1System*Collections*Generic*List*2Barotrauma*Item : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*SonarTransducer
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AITarget
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*DockingPort : System.Object, {[System.Int32]:Barotrauma.Items.Components.DockingPort}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Steering*ObstacleDebugInfo : System.Object, {[System.Int32]:Barotrauma.Items.Components.Steering.ObstacleDebugInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Steering.ObstacleDebugInfo : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Powered : System.Object, {[System.Int32]:Barotrauma.Items.Components.Powered}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*GridInfo : System.Object, {[System.Int32]:Barotrauma.Items.Components.GridInfo}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.GridInfo : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Powered
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Boolean : System.Object, {[Barotrauma.Items.Components.Connection]:System.Boolean}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Collections*Generic*HashSet*2Barotrauma*Items*Components*Connection : System.Object, {[Barotrauma.Items.Components.Connection]:(System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.BooleanOperatorComponent : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Character-arr : System.Array
+---@class System.ValueTuple*1System*Int32*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxConnection : System.Object, {[System.Int32]:Barotrauma.CircuitBoxConnection}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*UInt16*2System*Nullable*3System*Int32 : System.Object, {[System.Int32]:System.ValueTuple*1System*UInt16*1System*Nullable*2System*Int32}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt16*1System*Nullable*2System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Wire
+---@class System.ValueTuple
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*CustomInterface*CustomInterfaceElement : System.Object, {[System.Int32]:Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*Items*Components*DelayComponent*DelayedSignal : System.Object
+---@class Barotrauma.Items.Components.DelayComponent.DelayedSignal : System.Object
+---@class Barotrauma.Items.Components.FunctionComponent.FunctionType : System.Enum
+---@class Barotrauma.Items.Components.MotionSensor.TargetType : System.Enum
+---@class Barotrauma.Items.Components.OscillatorComponent.WaveType : System.Enum
+---@class System.Text.RegularExpressions.GroupCollection : System.Object, {[System.Int32]:System.Text.RegularExpressions.Group}, {[System.String]:System.Text.RegularExpressions.Group}, {[System.Int32]:System.Text.RegularExpressions.Group}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*TerminalMessage : System.Object, {[System.Int32]:Barotrauma.Items.Components.TerminalMessage}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.TerminalMessage : System.ValueType
+---@class Barotrauma.Items.Components.TrigonometricFunctionComponent.FunctionType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*WifiComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.WifiComponent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*WifiComponent
+---@class Barotrauma.Items.Components.Wire.VisualSignal : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Wire*WireSection : System.Object, {[System.Int32]:Barotrauma.Items.Components.Wire.WireSection}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Wire.WireSection : System.Object
+---@class Barotrauma.Items.Components.Connection-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Wire : System.Object, {[System.Int32]:Barotrauma.Items.Components.Wire}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Microsoft*Xna*Framework*Vector2
+---@class Barotrauma.Lights.ConvexHull-arr : System.Array
+---@class Barotrauma.Lights.ConvexHull : System.Object
+---@class Barotrauma.Hull-arr : System.Array
+---@class FarseerPhysics.Dynamics.Body-arr : System.Array
+---@class Barotrauma.Items.Components.DockingPort.AllowOutpostAutoDocking : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*DockingPort
+---@class Barotrauma.Items.Components.DockingPort.DirectionType : System.Enum
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Door : System.Object
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Door
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger*Node : System.Object, {[System.Int32]:Barotrauma.Items.Components.ElectricalDischarger.Node}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ElectricalDischarger.Node : System.ValueType
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*Items*Components*ElectricalDischarger*Node : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Character*1Barotrauma*Items*Components*ElectricalDischarger*Node}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Character*1Barotrauma*Items*Components*ElectricalDischarger*Node : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger : System.Object, {[System.Int32]:Barotrauma.Items.Components.ElectricalDischarger}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger*Node
+---@class Barotrauma.Items.Components.EntitySpawnerComponent.AreaShape : System.Enum
+---@class Barotrauma.Items.Components.GeneticMaterial.CombineResult : System.Enum
+---@class System.Collections.Generic.HashSet*1Microsoft*Xna*Framework*Rectangle : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ProducedItem : System.Object, {[System.Int32]:Barotrauma.Items.Components.ProducedItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*VineTile : System.Object, {[System.Int32]:Barotrauma.Items.Components.VineTile}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.PlantSlot : System.ValueType
+---@class Barotrauma.GUINumberInput-arr : System.Array
+---@class Barotrauma.Items.Components.FoliageConfig : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Microsoft*Xna*Framework*Vector2 : System.Object, {[Barotrauma.Items.Components.TileSide]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*Items*Components*ItemSound : System.Object, {[Barotrauma.ActionType]:(System.Collections.Generic.List*1Barotrauma*Items*Components*ItemSound)|(Barotrauma.Items.Components.ItemSound[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemSound : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemSound}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1Barotrauma*Items*Components*SoundSelectionMode : System.Object, {[Barotrauma.ActionType]:Barotrauma.Items.Components.SoundSelectionMode}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Sounds*SoundChannel : System.Object, {[System.Int32]:Barotrauma.Sounds.SoundChannel}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Skill : System.Object, {[System.Int32]:Barotrauma.Skill}, {[System.Int32]:System.Object}
+---@class Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemComponent*ItemUseInfo : System.Object
+---@class Barotrauma.Items.Components.ItemComponent.GUILayoutSettings : System.Object
+---@class Barotrauma.Skill-ref
+---@class Barotrauma.Items.Components.ItemComponent.T : System.Object
+---@class Barotrauma.Items.Components.T-ref
+---@class Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemContainer : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ActiveContainedItem : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.ActiveContainedItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ItemContainer.ActiveContainedItem : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ContainedItem : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.ContainedItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ItemContainer.ContainedItem : System.ValueType
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Items*Components*ItemContainer*SlotRestrictions : System.ValueType, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.SlotRestrictions}, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.SlotRestrictions}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.SlotRestrictions}
+---@class Barotrauma.Items.Components.ItemContainer.SlotRestrictions : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Ladder : System.Object, {[System.Int32]:Barotrauma.Items.Components.Ladder}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*PlantSlot : System.Object, {[System.Int32]:Barotrauma.Items.Components.PlantSlot}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.Growable-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.LightComponent}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.SuitablePlantItem : System.ValueType
+---@class System.Collections.Generic.Queue*1Barotrauma*Items*Components*Projectile*Impact : System.Object
+---@class Barotrauma.Items.Components.Projectile.Impact : System.ValueType
+---@class System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1System*Single : System.ValueType, {[System.Int32]:System.Single}, {[System.Int32]:System.Single}, {[System.Int32]:System.Object}, {[System.Int32]:System.Single}
+---@class FarseerPhysics.Dynamics.Fixture-ref
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile*HitscanResult : System.Object, {[System.Int32]:Barotrauma.Items.Components.Projectile.HitscanResult}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Projectile.HitscanResult : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Quality*StatType*1System*Single : System.Object, {[Barotrauma.Items.Components.Quality.StatType]:System.Single}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.Repairable.FixActions : System.Enum
+---@class System.Action*1Barotrauma*Items*Components*Scanner : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Widget : System.Object, {[System.String]:Barotrauma.Widget}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Sprite*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Turret.ChargingState : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile : System.Object, {[System.Int32]:Barotrauma.Items.Components.Projectile}, {[System.Int32]:System.Object}
+---@class System.Action*1Barotrauma*Widget : System.MulticastDelegate
+---@class Barotrauma.ContentXElement-arr : System.Array
+---@class Barotrauma.WearableSprite-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*DamageModifier
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Character*1Barotrauma*CircuitBoxCursor : System.Object, {[Barotrauma.Character]:Barotrauma.CircuitBoxCursor}, {[System.Object]:System.Object}
+---@class Barotrauma.CircuitBoxCursor : System.Object
+---@class Barotrauma.Option*1Barotrauma*ItemPrefab : System.ValueType
+---@class Barotrauma.Option*1Microsoft*Xna*Framework*Vector2 : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxInputConnection : System.ValueType, {[System.Int32]:Barotrauma.CircuitBoxInputConnection}, {[System.Int32]:Barotrauma.CircuitBoxInputConnection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CircuitBoxInputConnection}
+---@class Barotrauma.CircuitBoxInputConnection : Barotrauma.CircuitBoxConnection
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxOutputConnection : System.ValueType, {[System.Int32]:Barotrauma.CircuitBoxOutputConnection}, {[System.Int32]:Barotrauma.CircuitBoxOutputConnection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CircuitBoxOutputConnection}
+---@class Barotrauma.CircuitBoxOutputConnection : Barotrauma.CircuitBoxConnection
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxComponent : System.Object, {[System.Int32]:Barotrauma.CircuitBoxComponent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxInputOutputNode : System.Object, {[System.Int32]:Barotrauma.CircuitBoxInputOutputNode}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxLabelNode : System.Object, {[System.Int32]:Barotrauma.CircuitBoxLabelNode}, {[System.Int32]:System.Object}
+---@class Barotrauma.CircuitBoxLabelNode : Barotrauma.CircuitBoxNode
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxWire : System.Object, {[System.Int32]:Barotrauma.CircuitBoxWire}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ItemContainer-arr : System.Array
+---@class Barotrauma.Option*1Barotrauma*ContentXElement : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxOpcode : System.Object
+---@class Barotrauma.CircuitBoxOpcode : System.Enum
+---@class System.Collections.Generic.IReadOnlyCollection*1System*UInt16
+---@class Barotrauma.Option*1Barotrauma*Item : System.ValueType
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxComponent
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxWire
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxNode
+---@class Barotrauma.NetLimitedString : System.ValueType
+---@class Barotrauma.CircuitBoxResizeDirection : System.Enum
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxLabelNode
+---@class Barotrauma.Option*1Barotrauma*Identifier : System.ValueType
+---@class Barotrauma.NetCircuitBoxCursorInfo : System.ValueType
+---@class Barotrauma.CircuitBoxServerCreateComponentEvent : System.ValueType
+---@class Barotrauma.CircuitBoxServerCreateWireEvent : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*CircuitBoxConnection : System.ValueType
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Item : System.Object, {[System.UInt16]:Barotrauma.Item}, {[System.Object]:System.Object}
+---@class System.Action*1Barotrauma*Items*Components*CircuitBox*CreatedWire : System.MulticastDelegate
+---@class Barotrauma.Items.Components.CircuitBox.CreatedWire : System.ValueType
+---@class Barotrauma.CircuitBoxInputOutputNode.Type : System.Enum
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxSelectable
+---@class System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16 : System.Object, {[System.UInt16]:Barotrauma.Option*1System*UInt16}, {[System.UInt16]:Barotrauma.Option*1System*UInt16}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*CircuitBoxInputOutputNode*Type*1Barotrauma*Option*2System*UInt16 : System.Object, {[Barotrauma.CircuitBoxInputOutputNode.Type]:Barotrauma.Option*1System*UInt16}, {[Barotrauma.CircuitBoxInputOutputNode.Type]:Barotrauma.Option*1System*UInt16}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxInputOutputNode*Type
+---@class Barotrauma.Option*1Barotrauma*Items*Components*CircuitBox : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*LocalizedString : System.ValueType
+---@class System.Nullable*1Barotrauma*CircuitBoxLabel : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*GUIComponent : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*CircuitBoxComponent : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxConnection : System.ValueType, {[System.Int32]:Barotrauma.CircuitBoxConnection}, {[System.Int32]:Barotrauma.CircuitBoxConnection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CircuitBoxConnection}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection : {[System.Int32]:Barotrauma.CircuitBoxConnection}
+---@class Barotrauma.Option*1Barotrauma*CircuitBoxWire : System.ValueType
+---@class Microsoft.Xna.Framework.Vector2-arr-arr : System.Array
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxNode : System.Object
+---@class Barotrauma.Option*1System*ValueTuple*2Barotrauma*CircuitBoxResizeDirection*2Barotrauma*CircuitBoxNode : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CircuitBoxNode
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxWire : {[System.Int32]:Barotrauma.CircuitBoxWire}
+---@class Barotrauma.Option*1Microsoft*Xna*Framework*RectangleF : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxWireRenderer : System.Object, {[System.Int32]:Barotrauma.CircuitBoxWireRenderer}, {[System.Int32]:System.Object}
+---@class Barotrauma.Option*1Barotrauma*CircuitBoxWireRenderer : System.ValueType
+---@class Barotrauma.SubmarineInfo.CrewExperienceLevel : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Character : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])}, {[System.Object]:System.Object}
+---@class Barotrauma.SubmarineTag : System.Enum
+---@class Barotrauma.BeaconStationInfo : Barotrauma.ExtraSubmarineInfo
+---@class Barotrauma.ExtraSubmarineInfo : System.Object
+---@class Barotrauma.WreckInfo : Barotrauma.ExtraSubmarineInfo
+---@class Barotrauma.EnemySubmarineInfo : Barotrauma.ExtraSubmarineInfo
+---@class System.IO.MemoryStream : System.IO.Stream
+---@class Barotrauma.PendingSubInfo-ref
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1Barotrauma*Items*Components*DockingPort : System.Object, {[Barotrauma.Submarine]:Barotrauma.Items.Components.DockingPort}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PathNode : System.Object, {[System.Int32]:Barotrauma.PathNode}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*HashSet*2Barotrauma*PathNode : System.Object, {[Barotrauma.Submarine]:(System.Collections.Generic.HashSet*1Barotrauma*PathNode)|(Barotrauma.PathNode[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*PathNode : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Structure : System.Object, {[System.Int32]:Barotrauma.Structure}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1System*Single : System.Object, {[FarseerPhysics.Dynamics.Body]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*WayPoint : {[System.Int32]:Barotrauma.WayPoint}
+---@class Barotrauma.WreckAI : Barotrauma.SubmarineTurretAI
+---@class Barotrauma.SubmarineTurretAI : System.Object
+---@class System.Nullable*1FarseerPhysics*Dynamics*Category : System.ValueType
+---@class System.Predicate*1FarseerPhysics*Dynamics*Fixture : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*Gap : System.Object, {[System.Int32]:Barotrauma.Gap}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Submarine*T : System.Object, {[System.Int32]:Barotrauma.Submarine.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Submarine.T : Barotrauma.MapEntity
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Submarine*T
+---@class Barotrauma.Submarine.T : Barotrauma.MapEntity
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*ItemContainer*2System*Int32 : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Items*Components*ItemContainer*1System*Int32}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Items*Components*ItemContainer*1System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Predicate*1Barotrauma*MapEntity : System.MulticastDelegate
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*PerkBehaviors*SubItemSwapPerk : System.ValueType, {[System.Int32]:Barotrauma.PerkBehaviors.SubItemSwapPerk}, {[System.Int32]:Barotrauma.PerkBehaviors.SubItemSwapPerk}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.PerkBehaviors.SubItemSwapPerk}
+---@class Barotrauma.PerkBehaviors.SubItemSwapPerk : Barotrauma.PerkBehaviors.PerkBase
+---@class Barotrauma.PerkBehaviors.PerkBase : System.Object
+---@class System.Nullable*1Microsoft*Xna*Framework*Point : System.ValueType
+---@class System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity : System.MulticastDelegate
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Contacts*Contact : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Contacts.Contact}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Queue*1Barotrauma*SubmarineBody*Impact : System.Object
+---@class Barotrauma.SubmarineBody.Impact : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Contacts*Contact
+---@class System.Collections.Generic.List*1Barotrauma*Lights*ConvexHull : System.Object, {[System.Int32]:Barotrauma.Lights.ConvexHull}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Lights*LightSource : System.Object, {[System.Int32]:Barotrauma.Lights.LightSource}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1Microsoft*Xna*Framework*Vector2 : System.Object, {[FarseerPhysics.Dynamics.Body]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class Barotrauma.WallSection-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*WallSection : System.Object, {[System.Int32]:Barotrauma.WallSection}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*AfflictionPrefab*Description : System.Object, {[System.Int32]:Barotrauma.AfflictionPrefab.Description}, {[System.Int32]:Barotrauma.AfflictionPrefab.Description}, {[System.Int32]:Barotrauma.AfflictionPrefab.Description}, {[System.Int32]:System.Object}
+---@class Barotrauma.AfflictionPrefab.Description : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*Effect : System.Object, {[System.Int32]:Barotrauma.AfflictionPrefab.Effect}, {[System.Int32]:System.Object}
+---@class Barotrauma.AfflictionPrefab.Effect : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*PeriodicEffect : System.Object, {[System.Int32]:Barotrauma.AfflictionPrefab.PeriodicEffect}, {[System.Int32]:System.Object}
+---@class Barotrauma.AfflictionPrefab.PeriodicEffect : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab*Effect
+---@class System.Collections.Generic.IList*1Barotrauma*AfflictionPrefab*PeriodicEffect : {[System.Int32]:Barotrauma.AfflictionPrefab.PeriodicEffect}
+---@class Barotrauma.AfflictionPrefab.Description.TargetType : System.Enum
+---@class System.ValueTuple*1System*Single*1Barotrauma*Affliction : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AfflictionPrefab*PeriodicEffect*1System*Single : System.Object, {[Barotrauma.AfflictionPrefab.PeriodicEffect]:System.Single}, {[System.Object]:System.Object}
+---@class Barotrauma.AfflictionHusk.InfectionState : System.Enum
+---@class System.Nullable*1Barotrauma*AfflictionHusk*InfectionState : System.ValueType
+---@class Barotrauma.AfflictionPsychosis.FloodType : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1System*Xml*Linq*XElement : System.Object, {[Barotrauma.Affliction]:System.Xml.Linq.XElement}, {[System.Object]:System.Object}
+---@class Barotrauma.HitDetection : System.Enum
+---@class Barotrauma.AIBehaviorAfterAttack : System.Enum
+---@class Barotrauma.VisualSlot-arr : System.Array
+---@class Barotrauma.ItemSlot-arr : System.Array
+---@class Barotrauma.Inventory.ItemSlot : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Inventory*SlotReference : System.Object
+---@class System.ValueTuple*1Barotrauma*Item*1Barotrauma*Identifier : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Microsoft*Xna*Framework*Rectangle : {[System.Int32]:Microsoft.Xna.Framework.Rectangle}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*InventorySlotItem*1Barotrauma*Inventory : System.Object, {[Barotrauma.InventorySlotItem]:Barotrauma.Inventory}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*AddOrDeleteCommand : System.Object, {[System.Int32]:Barotrauma.AddOrDeleteCommand}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*Xml*Linq*XElement : System.Object, {[System.Int32]:System.Xml.Linq.XElement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Object*1System*Collections*Generic*List*2Barotrauma*ISerializableEntity : System.Object, {[System.Object]:(System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*InventorySlotItem : System.Object, {[System.Int32]:Barotrauma.InventorySlotItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.TraitorEvent.State : System.Enum
+---@class System.Collections.Generic.HashSet*1Barotrauma*Networking*Client : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*ReputationRequirement : System.ValueType, {[System.Int32]:Barotrauma.TraitorEventPrefab.ReputationRequirement}, {[System.Int32]:Barotrauma.TraitorEventPrefab.ReputationRequirement}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TraitorEventPrefab.ReputationRequirement}
+---@class Barotrauma.TraitorEventPrefab.ReputationRequirement : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*MissionRequirement : System.ValueType, {[System.Int32]:Barotrauma.TraitorEventPrefab.MissionRequirement}, {[System.Int32]:Barotrauma.TraitorEventPrefab.MissionRequirement}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TraitorEventPrefab.MissionRequirement}
+---@class Barotrauma.TraitorEventPrefab.MissionRequirement : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*LevelRequirement : System.ValueType, {[System.Int32]:Barotrauma.TraitorEventPrefab.LevelRequirement}, {[System.Int32]:Barotrauma.TraitorEventPrefab.LevelRequirement}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TraitorEventPrefab.LevelRequirement}
+---@class Barotrauma.TraitorEventPrefab.LevelRequirement : System.Object
+---@class FarseerPhysics.Common.Vertices : System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2
+---@class FarseerPhysics.Collision.AABB-ref
+---@class FarseerPhysics.Collision.RayCastOutput-ref
+---@class FarseerPhysics.Collision.RayCastInput-ref
+---@class FarseerPhysics.Common.FixedArray2*1FarseerPhysics*Collision*ManifoldPoint : System.ValueType, {[System.Int32]:FarseerPhysics.Collision.ManifoldPoint}
+---@class FarseerPhysics.Collision.ManifoldType : System.Enum
+---@class FarseerPhysics.Collision.EPAxisType : System.Enum
+---@class FarseerPhysics.Collision.Shapes.Shape : System.Object
+---@class FarseerPhysics.Common.Transform-ref
+---@class FarseerPhysics.Common.FixedArray2
+---@class FarseerPhysics.Collision.Manifold-ref
+---@class FarseerPhysics.Collision.Shapes.CircleShape : FarseerPhysics.Collision.Shapes.Shape
+---@class FarseerPhysics.Collision.Shapes.PolygonShape : FarseerPhysics.Collision.Shapes.Shape
+---@class FarseerPhysics.Collision.Shapes.EdgeShape : FarseerPhysics.Collision.Shapes.Shape
+---@class FarseerPhysics.Common.FixedArray2
+---@class System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Joints*Joint : System.Object
+---@class System.Func*1FarseerPhysics*Dynamics*Fixture*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1System*Int32*1System*Boolean : System.MulticastDelegate
+---@class FarseerPhysics.Collision.TOIInput : System.Object
+---@class System.Func*1FarseerPhysics*Dynamics*Fixture*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single : System.MulticastDelegate
+---@class System.Func*1FarseerPhysics*Collision*RayCastInput*1FarseerPhysics*Dynamics*FixtureProxy*1System*Single : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.FixtureProxy : System.ValueType
+---@class FarseerPhysics.Dynamics.BodyDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.FixtureDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.JointDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.ControllerDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Controllers.Controller : FarseerPhysics.Common.PhysicsLogic.FilterData
+---@class FarseerPhysics.Common.PhysicsLogic.FilterData : System.Object
+---@class System.Collections.Generic.List*1FarseerPhysics*Controllers*Controller : System.Object, {[System.Int32]:FarseerPhysics.Controllers.Controller}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.ContactManager : System.Object
+---@class FarseerPhysics.Fluids.FluidSystem2 : System.Object
+---@class FarseerPhysics.Dynamics.Contacts.ContactListHead : FarseerPhysics.Dynamics.Contacts.Contact
+---@class FarseerPhysics.Dynamics.Island : System.Object
+---@class FarseerPhysics.Dynamics.TimeStep-ref
+---@class FarseerPhysics.Dynamics.SolverIterations-ref
+---@class System.Collections.Generic.List*1FarseerPhysics*Common*Vertices : System.Object, {[System.Int32]:FarseerPhysics.Common.Vertices}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Common.Path : System.Object
+---@class FarseerPhysics.Collision.IBroadPhase
+---@class FarseerPhysics.Dynamics.AfterCollisionEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.Contacts.ContactVelocityConstraint : System.Object
+---@class FarseerPhysics.Dynamics.BeforeCollisionEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.OnCollisionEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.OnSeparationEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.FixtureProxy-arr : System.Array
+---@class FarseerPhysics.Dynamics.Category-ref
+---@class Barotrauma.PhysicsBody.Shape : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*PhysicsBody*T : System.Object, {[System.Int32]:Barotrauma.PhysicsBody.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.PhysicsBody.T : Barotrauma.PosInfo
+---@class Barotrauma.NetworkFireSource-arr : System.Array
+---@class Barotrauma.Hull.NetworkFireSource : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Hull*RemoteDecal : System.Object, {[System.Int32]:Barotrauma.Hull.RemoteDecal}, {[System.Int32]:System.Object}
+---@class Barotrauma.Hull.RemoteDecal : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Decal : System.Object
+---@class System.Action*1Barotrauma*Hull*BackgroundSectionNetworkUpdate : System.MulticastDelegate
+---@class Barotrauma.Hull.BackgroundSectionNetworkUpdate : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*BackgroundSection
+---@class Barotrauma.BackgroundSectionsEventData-ref
+---@class Barotrauma.NetworkFireSource-arr-ref
+---@class Voronoi2.Site-arr : System.Array
+---@class Voronoi2.CellType : System.Enum
+---@class System.Collections.Generic.List*1System*WeakReference*2Barotrauma*Sprite : System.Object, {[System.Int32]:System.WeakReference*1Barotrauma*Sprite}, {[System.Int32]:System.Object}
+---@class System.WeakReference*1Barotrauma*Sprite : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Sprite*TextureRefCounter : System.Object, {[Barotrauma.Identifier]:Barotrauma.Sprite.TextureRefCounter}, {[System.Object]:System.Object}
+---@class Barotrauma.Sprite.TextureRefCounter : System.Object
+---@class System.Nullable*1Microsoft*Xna*Framework*Graphics*SpriteEffects : System.ValueType
+---@class Microsoft.Xna.Framework.Rectangle-arr : System.Array
+---@class Barotrauma.WearableSprite.ObscuringMode : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*WearableType : System.Object, {[System.Int32]:Barotrauma.WearableType}, {[System.Int32]:System.Object}
+---@class Microsoft.Xna.Framework.Graphics.IndexBuffer : Microsoft.Xna.Framework.Graphics.GraphicsResource
+---@class System.Collections.Generic.List*1Barotrauma*DeformableSprite : System.Object, {[System.Int32]:Barotrauma.DeformableSprite}, {[System.Int32]:System.Object}
+---@class System.Func*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2 : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*SpriteRecorder*RecordedBuffer : System.Object, {[System.Int32]:Barotrauma.SpriteRecorder.RecordedBuffer}, {[System.Int32]:System.Object}
+---@class Barotrauma.SpriteRecorder.RecordedBuffer : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*SpriteRecorder*Command : System.Object, {[System.Int32]:Barotrauma.SpriteRecorder.Command}, {[System.Int32]:System.Object}
+---@class Barotrauma.SpriteRecorder.Command : System.ValueType
+---@class Barotrauma.DecorativeSprite.AnimationType : System.Enum
+---@class System.Func*1Barotrauma*PropertyConditional*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.ContainedItemSprite.DecorativeSpriteBehaviorType : System.Enum
+---@class System.Lazy*1Barotrauma*LocalizedString : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*FabricationRecipe*RequiredItem : System.ValueType, {[System.Int32]:Barotrauma.FabricationRecipe.RequiredItem}, {[System.Int32]:Barotrauma.FabricationRecipe.RequiredItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.FabricationRecipe.RequiredItem}
+---@class System.Collections.Generic.List*1Barotrauma*ItemPrefab : System.Object, {[System.Int32]:Barotrauma.ItemPrefab}, {[System.Int32]:System.Object}
+---@class Barotrauma.SoldItem.SellOrigin : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*StartItem : System.ValueType, {[System.Int32]:Barotrauma.StartItem}, {[System.Int32]:Barotrauma.StartItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.StartItem}
+---@class Barotrauma.PrefabCollection*1Barotrauma*UpgradeCategory : System.Object, {[Barotrauma.Identifier]:Barotrauma.UpgradeCategory}, {[System.String]:Barotrauma.UpgradeCategory}
+---@class System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade : System.Object, {[System.Int32]:Barotrauma.PurchasedUpgrade}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PurchasedItemSwap : System.Object, {[System.Int32]:Barotrauma.PurchasedItemSwap}, {[System.Int32]:System.Object}
+---@class Barotrauma.NamedEvent*1Barotrauma*UpgradeManager : System.Object
+---@class System.Collections.Generic.ICollection*1Barotrauma*Item
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*UpgradeMaxLevelMod : System.ValueType, {[System.Int32]:Barotrauma.UpgradeMaxLevelMod}, {[System.Int32]:Barotrauma.UpgradeMaxLevelMod}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.UpgradeMaxLevelMod}
+---@class Barotrauma.UpgradeMaxLevelMod : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*UpgradeResourceCost : System.Object
+---@class Barotrauma.UpgradeResourceCost : System.ValueType
+---@class Barotrauma.PrefabCollection*1Barotrauma*UpgradePrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.UpgradePrefab}, {[System.String]:Barotrauma.UpgradePrefab}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*UpgradeCategory
+---@class System.Collections.Generic.Dictionary*1System*String*1System*String-arr : System.Object, {[System.String]:(System.String-arr)|(System.String[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ApplicableResourceCollection : System.ValueType, {[System.Int32]:Barotrauma.ApplicableResourceCollection}, {[System.Int32]:Barotrauma.ApplicableResourceCollection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ApplicableResourceCollection}
+---@class Barotrauma.ApplicableResourceCollection : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ISerializableEntity*1Barotrauma*PropertyReference-arr : System.Object, {[Barotrauma.ISerializableEntity]:(Barotrauma.PropertyReference-arr)|(Barotrauma.PropertyReference[])}, {[System.Object]:System.Object}
+---@class Barotrauma.PropertyReference-arr : System.Array
+---@class Barotrauma.PropertyReference : System.Object
+---@class Barotrauma.ISerializableEntity-arr : System.Array
+---@class Barotrauma.UpgradePrefab-ref
+---@class Barotrauma.UpgradeCategory-ref
+---@class Barotrauma.AIObjectiveManager.ObjectiveType : System.Enum
+---@class Barotrauma.Character.ItemTeamChange : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Boolean : System.Object, {[Barotrauma.Identifier]:System.Boolean}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerSettings*SettingsTab*1Barotrauma*GUIComponent : System.Object, {[Barotrauma.Networking.ServerSettings.SettingsTab]:Barotrauma.GUIComponent}, {[System.Object]:System.Object}
+---@class Barotrauma.Networking.ServerSettings.SettingsTab : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerSettings*SettingsTab*1Barotrauma*GUIButton : System.Object, {[Barotrauma.Networking.ServerSettings.SettingsTab]:Barotrauma.GUIButton}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*UInt32*1Barotrauma*Networking*ServerSettings*NetPropertyData : System.Object, {[System.UInt32]:Barotrauma.Networking.ServerSettings.NetPropertyData}, {[System.Object]:System.Object}
+---@class Barotrauma.Networking.ServerSettings.NetPropertyData : System.Object
+---@class Barotrauma.Networking.PlayStyle : System.Enum
+---@class Barotrauma.Networking.RespawnMode : System.Enum
+---@class Barotrauma.Networking.SelectionMode : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Networking*ServerSettings*SavedClientPermission : System.Object, {[System.Int32]:Barotrauma.Networking.ServerSettings.SavedClientPermission}, {[System.Int32]:System.Object}
+---@class Barotrauma.Networking.ServerSettings.SavedClientPermission : System.Object
+---@class Barotrauma.PvpTeamSelectionMode : System.Enum
+---@class Barotrauma.LosMode : System.Enum
+---@class Barotrauma.EnemyHealthBarMode : System.Enum
+---@class Barotrauma.Networking.LootedMoneyDestination : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Range*2System*Int32 : System.Object, {[System.Int32]:Barotrauma.Range*1System*Int32}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Boolean : {[Barotrauma.Identifier]:System.Boolean}
+---@class System.Action*1Barotrauma*Identifier*1System*Object : System.MulticastDelegate
+---@class Barotrauma.Networking.ServerSettings.NetFlags : System.Enum
+---@class Barotrauma.Items.Components.WifiComponent-ref
+---@class System.Collections.Generic.HashSet*1Barotrauma*DebugConsole*Command : System.Object
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client : {[System.Int32]:Barotrauma.Networking.Client}
+---@class Barotrauma.Networking.Client.T : System.Object
+---@class Barotrauma.Networking.ClientPermissions-ref
+---@class System.Collections.Generic.List
+---@class Barotrauma.INetSerializableStruct.T : System.Object
+---@class Barotrauma.ReadOnlyBitField : System.Object
+---@class Barotrauma.INetSerializableStruct.T : System.Object
+---@class Barotrauma.WriteOnlyBitField : System.Object
+---@class Barotrauma.T-ref
+---@class Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*PipeEndpoint : Barotrauma.Networking.NetworkConnection
+---@class Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*LidgrenEndpoint : Barotrauma.Networking.NetworkConnection
+---@class Lidgren.Network.NetConnection : System.Object
+---@class Barotrauma.Networking.P2PConnection*1Barotrauma*Networking*SteamP2PEndpoint : Barotrauma.Networking.P2PConnection
+---@class System.Nullable*1System*TimeSpan : System.ValueType
+---@class System.Collections.Generic.List*1System*UInt32 : System.Object, {[System.Int32]:System.UInt32}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Networking*BannedPlayer : System.Object, {[System.Int32]:Barotrauma.Networking.BannedPlayer}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*BannedPlayer : {[System.Int32]:Barotrauma.Networking.BannedPlayer}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Either*2Barotrauma*Networking*Address*2Barotrauma*Networking*AccountId
+---@class Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId : System.Object
+---@class Barotrauma.Networking.NetStats : System.Object
+---@class Barotrauma.CameraTransition : System.Object
+---@class System.Nullable*1System*UInt16 : System.ValueType, integer
+---@class Barotrauma.Networking.GameClient.RoundInitStatus : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Networking*Client : System.Object, {[System.Int32]:Barotrauma.Networking.Client}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Networking*ChatMessage : System.Object, {[System.Int32]:Barotrauma.Networking.ChatMessage}, {[System.Int32]:System.Object}
+---@class Barotrauma.Networking.FileReceiver : System.Object
+---@class Barotrauma.Networking.ClientEntityEventManager : Barotrauma.Networking.NetEntityEventManager
+---@class Barotrauma.Networking.NetEntityEventManager : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*Endpoint : System.ValueType, {[System.Int32]:Barotrauma.Networking.Endpoint}, {[System.Int32]:Barotrauma.Networking.Endpoint}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Networking.Endpoint}
+---@class Barotrauma.NamedEvent*1Barotrauma*Networking*GameClient*PermissionChangedEvent : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Networking*IReadMessage : System.Object, {[System.Int32]:Barotrauma.Networking.IReadMessage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Networking*IServerSerializable : System.Object, {[System.Int32]:Barotrauma.Networking.IServerSerializable}, {[System.Int32]:System.Object}
+---@class Barotrauma.Networking.IServerSerializable
+---@class Barotrauma.Option*1System*UInt32 : System.ValueType
+---@class Barotrauma.Networking.ClientNetError : System.Enum
+---@class Barotrauma.Networking.ServerInfo : System.Object
+---@class Barotrauma.Networking.PeerDisconnectPacket : System.ValueType
+---@class Barotrauma.Networking.FileTransferType : System.Enum
+---@class Barotrauma.Networking.FileReceiver.FileTransferIn : System.Object
+---@class Barotrauma.Networking.ClientPeer.Callbacks : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*AuthenticationTicket : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*ServerContentPackage : System.ValueType, {[System.Int32]:Barotrauma.Networking.ServerContentPackage}, {[System.Int32]:Barotrauma.Networking.ServerContentPackage}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Networking.ServerContentPackage}
+---@class Barotrauma.Networking.ServerContentPackage : System.Object
+---@class Barotrauma.Networking.PeerPacketHeaders : System.ValueType
+---@class System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Networking*AccountId : System.Threading.Tasks.Task
+---@class Barotrauma.Networking.ClientPeer.IncomingInitializationMessage : System.ValueType
+---@class Barotrauma.Networking.ClientPeer*1Barotrauma*Networking*LidgrenEndpoint : Barotrauma.Networking.ClientPeer
+---@class Lidgren.Network.NetClient : Lidgren.Network.NetPeer
+---@class Lidgren.Network.NetPeer : System.Object
+---@class Lidgren.Network.NetPeerConfiguration : System.Object
+---@class System.Collections.Generic.List*1Lidgren*Network*NetIncomingMessage : System.Object, {[System.Int32]:Lidgren.Network.NetIncomingMessage}, {[System.Int32]:System.Object}
+---@class Lidgren.Network.NetIncomingMessage : Lidgren.Network.NetBuffer
+---@class Lidgren.Network.NetBuffer : System.Object
+---@class Lidgren.Network.NetSendResult : System.Enum
+---@class EventInput.IKeyboardSubscriber
+---@class Microsoft.Xna.Framework.TextEditingEventArgs : System.EventArgs
+---@class EventInput.CharacterEventArgs : System.ValueType
+---@class Microsoft.Xna.Framework.GameWindow : System.Object
+---@class Microsoft.Xna.Framework.Input.Keys-ref
+---@class Barotrauma.Particles.Particle-arr : System.Array
+---@class System.Collections.Generic.LinkedList*1Barotrauma*Particles*Particle : System.Object
+---@class Barotrauma.Particles.ParticleDrawOrder : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Particles*ParticlePrefab : System.Object, {[System.Int32]:Barotrauma.Particles.ParticlePrefab}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Particles*ParticlePrefab*1System*Int32 : System.Object, {[Barotrauma.Particles.ParticlePrefab]:System.Int32}, {[System.Object]:System.Object}
+---@class Barotrauma.Particles.ParticleBlendState : System.Enum
+---@class Barotrauma.Particles.ParticlePrefab.DrawTargetType : System.Enum
+---@class Barotrauma.Particles.Particle.UpdateResult : System.Enum
+---@class SharpFont.Face : SharpFont.NativeObject
+---@class SharpFont.NativeObject : System.Object
+---@class System.Collections.Generic.Dictionary*1System*UInt32*1Barotrauma*ScalableFont*GlyphData : System.Object, {[System.UInt32]:Barotrauma.ScalableFont.GlyphData}, {[System.Object]:System.Object}
+---@class Barotrauma.ScalableFont.GlyphData : System.ValueType
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Graphics*Texture2D : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Graphics.Texture2D}, {[System.Int32]:System.Object}
+---@class System.UInt32-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*ScalableFont : System.Object, {[System.Int32]:Barotrauma.ScalableFont}, {[System.Int32]:System.Object}
+---@class SharpFont.Library : System.Object
+---@class Barotrauma.ForceUpperCase : System.Enum
+---@class System.Nullable
+---@class Microsoft.Xna.Framework.Vector2-arr-ref
+---@class System.ValueTuple*1Barotrauma*ScalableFont*GlyphData*1Microsoft*Xna*Framework*Graphics*Texture2D : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.ChatManager : System.Object
+---@class Barotrauma.GUITextBox.OnEnterHandler : System.MulticastDelegate
+---@class Barotrauma.ChatBox.ChatKeyStates : System.ValueType
+---@class System.IO.FileSystemWatcher : System.ComponentModel.Component
+---@class System.ComponentModel.Component : System.MarshalByRefObject
+---@class System.Action*1System*String : System.MulticastDelegate
+---@class System.IO.FileSystemEventArgs : System.EventArgs
+---@class Barotrauma.Graph.GraphDelegate : System.MulticastDelegate
+---@class System.Nullable*1Barotrauma*CampaignUI*PlayerBalanceElement : System.ValueType
+---@class Barotrauma.HRManagerUI.SortingMethod : System.Enum
+---@class System.ValueTuple*1Barotrauma*CharacterInfo*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*GUIMessage : System.Object, {[System.Int32]:Barotrauma.GUIMessage}, {[System.Int32]:System.Object}
+---@class Barotrauma.GUI.SavingIndicatorState : System.Enum
+---@class System.Collections.Generic.HashSet*1Barotrauma*GUIComponent : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*GUIComponent : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:Microsoft.Xna.Framework.Vector2}, {[System.Int32]:Microsoft.Xna.Framework.Vector2}, {[System.Int32]:System.Object}, {[System.Int32]:Microsoft.Xna.Framework.Vector2}
+---@class Barotrauma.GUISelector*1Barotrauma*GUICursorPrefab : System.Object
+---@class System.Nullable*1Barotrauma*Pivot : System.ValueType
+---@class System.Func*1System*Int32*1System*Int32 : System.MulticastDelegate
+---@class System.Func*1Barotrauma*RectTransform*1Barotrauma*GUI*T : System.MulticastDelegate
+---@class Barotrauma.GUI.T : Barotrauma.GUIComponent
+---@class System.Collections.Generic.List*1Barotrauma*GUI*T : System.Object, {[System.Int32]:Barotrauma.GUI.T}, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*RectTransform*1Barotrauma*GUI*T : System.MulticastDelegate
+---@class Barotrauma.GUI.T : Barotrauma.GUIComponent
+---@class System.Collections.Generic.List*1Barotrauma*GUI*T : System.Object, {[System.Int32]:Barotrauma.GUI.T}, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*RectTransform*1Barotrauma*GUI*T : System.MulticastDelegate
+---@class Barotrauma.GUI.T : Barotrauma.GUIComponent
+---@class System.Collections.Generic.List*1Barotrauma*GUI*T : System.Object, {[System.Int32]:Barotrauma.GUI.T}, {[System.Int32]:System.Object}
+---@class System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Point : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IList*1Barotrauma*GUIComponent : {[System.Int32]:Barotrauma.GUIComponent}
+---@class System.Collections.Generic.IList*1Microsoft*Xna*Framework*Rectangle : {[System.Int32]:Microsoft.Xna.Framework.Rectangle}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent
+---@class Barotrauma.Range
+---@class Barotrauma.GUI.OutlinePosition : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*GUIComponent*ComponentState*1System*Collections*Generic*List*2Barotrauma*UISprite : System.Object, {[Barotrauma.GUIComponent.ComponentState]:(System.Collections.Generic.List*1Barotrauma*UISprite)|(Barotrauma.UISprite[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*UISprite : System.Object, {[System.Int32]:Barotrauma.UISprite}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUIComponentStyle : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUIComponentStyle}, {[System.Object]:System.Object}
+---@class Microsoft.Xna.Framework.Input.MouseState : System.ValueType
+---@class Microsoft.Xna.Framework.Input.KeyboardState : System.ValueType, {[Microsoft.Xna.Framework.Input.Keys]:Microsoft.Xna.Framework.Input.KeyState}
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Input*Keys : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Input.Keys}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*TextManager*SpeciallyHandledCharCategory*1Barotrauma*ScalableFont : System.Object, {[Barotrauma.TextManager.SpeciallyHandledCharCategory]:Barotrauma.ScalableFont}, {[Barotrauma.TextManager.SpeciallyHandledCharCategory]:Barotrauma.ScalableFont}, {[System.Object]:System.Object}
+---@class Barotrauma.GUISelector*1Barotrauma*GUISpritePrefab : System.Object
+---@class Barotrauma.GUISelector*1Barotrauma*GUISpriteSheetPrefab : System.Object
+---@class Barotrauma.GUIButton.OnClickedHandler : System.MulticastDelegate
+---@class Barotrauma.GUIButton.OnPressedHandler : System.MulticastDelegate
+---@class Barotrauma.GUIButton.OnButtonDownHandler : System.MulticastDelegate
+---@class System.Collections.Generic.List*1System*WeakReference*2Barotrauma*RectTransform : System.Object, {[System.Int32]:System.WeakReference*1Barotrauma*RectTransform}, {[System.Int32]:System.Object}
+---@class System.WeakReference*1Barotrauma*RectTransform : System.Object
+---@class Barotrauma.GUISelector*1Barotrauma*GUIColorPrefab : System.Object
+---@class Barotrauma.GUIColorPicker.OnColorSelectedHandler : System.MulticastDelegate
+---@class Microsoft.Xna.Framework.Color-arr-ref
+---@class System.Func*1System*Single*1System*Single*1Microsoft*Xna*Framework*Color : System.MulticastDelegate
+---@class Barotrauma.GUIComponent.SecondaryButtonDownHandler : System.MulticastDelegate
+---@class System.Action*1Barotrauma*GUIComponent : System.MulticastDelegate
+---@class Barotrauma.SlideDirection : System.Enum
+---@class System.Nullable*1Barotrauma*Anchor : System.ValueType
+---@class Barotrauma.GUIComponent.T : Barotrauma.GUIComponent
+---@class Barotrauma.GUIComponent.T : Barotrauma.GUIComponent
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*GUIComponent*T
+---@class Barotrauma.GUIComponent.T : Barotrauma.GUIComponent
+---@class System.Func*1Barotrauma*GUIComponent*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ContextMenuOption*1Barotrauma*GUITextBlock : System.Object, {[Barotrauma.ContextMenuOption]:Barotrauma.GUITextBlock}, {[System.Object]:System.Object}
+---@class Barotrauma.ContextMenuOption-arr : System.Array
+---@class System.Action*1System*Single*1Barotrauma*GUICustomComponent : System.MulticastDelegate
+---@class Barotrauma.GUIDropDown.OnSelectedHandler : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*RectTransform : System.Object, {[System.Int32]:Barotrauma.RectTransform}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*Object
+---@class System.Nullable*1Barotrauma*GUIComponent*ComponentState : System.ValueType
+---@class Barotrauma.GUIListBox.OnSelectedHandler : System.MulticastDelegate
+---@class Barotrauma.GUIListBox.CheckSelectedHandler : System.MulticastDelegate
+---@class Barotrauma.GUIListBox.OnRearrangedHandler : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*GUIComponent*1System*Boolean : System.Object, {[Barotrauma.GUIComponent]:System.Boolean}, {[System.Object]:System.Object}
+---@class Barotrauma.GUIListBox.SelectMode : System.Enum
+---@class System.Nullable*1Microsoft*Xna*Framework*Vector4 : System.ValueType
+---@class Barotrauma.GUIListBox.DragMode : System.Enum
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*GUIComponent : {[System.Int32]:Barotrauma.GUIComponent}
+---@class System.Nullable*1Barotrauma*GUISoundType : System.ValueType
+---@class Barotrauma.GUIListBox.Force : System.Enum
+---@class Barotrauma.GUIListBox.AutoScroll : System.Enum
+---@class Barotrauma.GUIListBox.TakeKeyBoardFocus : System.Enum
+---@class Barotrauma.GUIListBox.PlaySelectSound : System.Enum
+---@class System.Action*1System*Int32*1Microsoft*Xna*Framework*Point : System.MulticastDelegate
+---@class Barotrauma.GUIMessageBox.Type : System.Enum
+---@class Barotrauma.Type-arr : System.Array
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1System*Action*2Barotrauma*GUIMessageBox : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.GUINumberInput.OnValueEnteredHandler : System.MulticastDelegate
+---@class Barotrauma.GUINumberInput.OnValueChangedHandler : System.MulticastDelegate
+---@class Barotrauma.GUINumberInput.ButtonVisibility : System.Enum
+---@class System.Nullable*1System*ValueTuple*2Barotrauma*GUIButton*2Barotrauma*GUIButton : System.ValueType
+---@class Barotrauma.GUIProgressBar.ProgressGetterHandler : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*GUITickBox : System.Object, {[System.Int32]:Barotrauma.GUITickBox}, {[System.Object]:System.Object}
+---@class Barotrauma.GUIRadioButtonGroup.RadioButtonGroupDelegate : System.MulticastDelegate
+---@class System.Func*1Barotrauma*RectTransform*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.GUIScrollBar.OnMovedHandler : System.MulticastDelegate
+---@class Barotrauma.GUIScrollBar.ScrollConversion : System.MulticastDelegate
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUIFont : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUIFont}, {[Barotrauma.Identifier]:Barotrauma.GUIFont}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUISprite : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUISprite}, {[Barotrauma.Identifier]:Barotrauma.GUISprite}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUISpriteSheet : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUISpriteSheet}, {[Barotrauma.Identifier]:Barotrauma.GUISpriteSheet}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*GUIColor : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUIColor}, {[Barotrauma.Identifier]:Barotrauma.GUIColor}, {[System.Object]:System.Object}
+---@class Barotrauma.PrefabCollection*1Barotrauma*GUIComponentStyle : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUIComponentStyle}, {[System.String]:Barotrauma.GUIComponentStyle}
+---@class Barotrauma.GUITextBlock.TextGetterHandler : System.MulticastDelegate
+---@class Barotrauma.GUITextBlock.StrikethroughSettings : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*GUITextBlock*ClickableArea : System.Object, {[System.Int32]:Barotrauma.GUITextBlock.ClickableArea}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*GUITextBlock
+---@class Barotrauma.TextBoxEvent : System.MulticastDelegate
+---@class Barotrauma.GUITextBox.OnTextChangedHandler : System.MulticastDelegate
+---@class Barotrauma.Memento*1System*String : System.Object
+---@class Barotrauma.IMEPreviewTextHandler : System.Object
+---@class Barotrauma.GUITickBox.OnSelectedHandler : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentQueue*1Barotrauma*LoadingScreen*PendingSplashScreen : System.Object
+---@class Barotrauma.LoadingScreen.PendingSplashScreen : System.ValueType
+---@class Barotrauma.LanguageIdentifier-arr : System.Array
+---@class System.Nullable*1Barotrauma*MedicalClinicUI*PendingHealList : System.ValueType
+---@class System.Nullable*1Barotrauma*MedicalClinicUI*CrewHealList : System.ValueType
+---@class System.Nullable*1Barotrauma*MedicalClinicUI*PopupAfflictionList : System.ValueType
+---@class Barotrauma.MedicalClinicUI.PendingHealElement : System.ValueType
+---@class Barotrauma.MedicalClinicUI.CrewElement : System.ValueType
+---@class Barotrauma.MedicalClinicUI.CrewHealList : System.ValueType
+---@class Barotrauma.MedicalClinicUI.PendingHealList : System.ValueType
+---@class Barotrauma.MedicalClinicUI.CreatedPopupAfflictionElement : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*GUIComponent : System.ValueType, {[System.Int32]:Barotrauma.GUIComponent}, {[System.Int32]:Barotrauma.GUIComponent}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.GUIComponent}
+---@class System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*GUILayoutGroup : System.ValueType
+---@class Barotrauma.MedicalClinic.RequestResult : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetCrewMember : System.ValueType, {[System.Int32]:Barotrauma.MedicalClinic.NetCrewMember}, {[System.Int32]:Barotrauma.MedicalClinic.NetCrewMember}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.MedicalClinic.NetCrewMember}
+---@class Barotrauma.MedicalClinicUI.ElementState : System.Enum
+---@class Barotrauma.GUILayoutGroup-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*SerializableEntityEditor
+---@class System.Action*1Barotrauma*RectTransform : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*RectTransform
+---@class System.Comparison*1Barotrauma*RectTransform : System.MulticastDelegate
+---@class Barotrauma.Polygon : System.Object
+---@class System.Collections.Generic.IReadOnlyList*1Microsoft*Xna*Framework*Vector2 : {[System.Int32]:Microsoft.Xna.Framework.Vector2}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Store*StoreTab*1Barotrauma*GUIListBox : System.Object, {[Barotrauma.Store.StoreTab]:Barotrauma.GUIListBox}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Store*StoreTab*1Barotrauma*Store*SortingMethod : System.Object, {[Barotrauma.Store.StoreTab]:Barotrauma.Store.SortingMethod}, {[System.Object]:System.Object}
+---@class Barotrauma.Store.SortingMethod : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1Barotrauma*Store*ItemQuantity : System.Object, {[Barotrauma.ItemPrefab]:Barotrauma.Store.ItemQuantity}, {[System.Object]:System.Object}
+---@class Barotrauma.Store.ItemQuantity : System.Object
+---@class System.Nullable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2System*Single : System.ValueType
+---@class Barotrauma.SubmarineDisplayContent-arr : System.Array
+---@class Barotrauma.SubmarineSelection.SubmarineDisplayContent : System.ValueType
+---@class Barotrauma.UpgradeStore.UpgradeTab : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*UpgradeCategory : System.Object, {[System.Int32]:Barotrauma.UpgradeCategory}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*GUIComponent : System.Object, {[Barotrauma.Item]:Barotrauma.GUIComponent}, {[System.Object]:System.Object}
+---@class System.Func*1System*Boolean*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*UpgradePrefab : System.Object, {[System.Int32]:Barotrauma.UpgradePrefab}, {[System.Int32]:System.Object}
+---@class Barotrauma.UpgradeStore.UpgradeFrame : System.ValueType
+---@class System.Predicate*1Barotrauma*UpgradeStore*CategoryData : System.MulticastDelegate
+---@class Barotrauma.UpgradeStore.CategoryData : System.ValueType
+---@class Barotrauma.SlideshowPrefab : Barotrauma.Prefab
+---@class System.Func*1System*Int32 : System.MulticastDelegate
+---@class Barotrauma.WidgetShape : System.Enum
+---@class System.Action*1Microsoft*Xna*Framework*Graphics*SpriteBatch*1System*Single : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*Widget : System.Object, {[System.Int32]:Barotrauma.Widget}, {[System.Int32]:System.Object}
+---@class Concentus.Structs.OpusEncoder : System.Object
+---@class Concentus.Structs.OpusDecoder : System.Object
+---@class System.Byte-arr-arr : System.Array
+---@class System.Collections.Generic.Queue*1Barotrauma*Lights*LightManager*RayCastTask : System.Object
+---@class Barotrauma.Lights.LightManager.RayCastTask : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Microsoft*Xna*Framework*Rectangle : System.Object, {[Barotrauma.Hull]:Microsoft.Xna.Framework.Rectangle}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Lights*LightSource
+---@class System.Int16-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*Lights*ConvexHullList : System.Object, {[System.Int32]:Barotrauma.Lights.ConvexHullList}, {[System.Int32]:System.Object}
+---@class Barotrauma.Lights.ConvexHullList : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Lights*ConvexHull : System.Object
+---@class Barotrauma.Lights.LightSource.LightVertexState : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1Microsoft*Xna*Framework*Vector2 : System.Object, {[Barotrauma.Submarine]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class Microsoft.Xna.Framework.Graphics.DynamicVertexBuffer : Microsoft.Xna.Framework.Graphics.VertexBuffer
+---@class Microsoft.Xna.Framework.Graphics.DynamicIndexBuffer : Microsoft.Xna.Framework.Graphics.IndexBuffer
+---@class System.Collections.Generic.List*1Barotrauma*Lights*Segment : System.Object, {[System.Int32]:Barotrauma.Lights.Segment}, {[System.Int32]:System.Object}
+---@class Barotrauma.Lights.Segment : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Lights*SegmentPoint : System.Object, {[System.Int32]:Barotrauma.Lights.SegmentPoint}, {[System.Int32]:System.Object}
+---@class Barotrauma.Lights.SegmentPoint : System.ValueType
+---@class Barotrauma.Lights.SegmentPoint-arr : System.Array
+---@class System.ValueTuple*1System*Int32*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Sounds.SoundSourcePool-arr : System.Array
+---@class Barotrauma.Sounds.SoundSourcePool : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Sounds*Sound : System.Object, {[System.Int32]:Barotrauma.Sounds.Sound}, {[System.Int32]:System.Object}
+---@class Barotrauma.Sounds.SoundChannel-arr-arr : System.Array
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Sounds*SoundManager*CategoryModifier : System.Object, {[System.String]:Barotrauma.Sounds.SoundManager.CategoryModifier}, {[System.Object]:System.Object}
+---@class Barotrauma.Sounds.SoundManager.CategoryModifier : System.Object
+---@class System.Threading.ManualResetEvent : System.Threading.EventWaitHandle
+---@class System.Threading.EventWaitHandle : System.Threading.WaitHandle
+---@class System.Threading.WaitHandle : System.MarshalByRefObject
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Sounds*Sound : {[System.Int32]:Barotrauma.Sounds.Sound}
+---@class Barotrauma.Sounds.SoundManager.SourcePoolIndex : System.Enum
+---@class NVorbis.VorbisReader : System.Object
+---@class System.Threading.Tasks.Task*1Barotrauma*Sounds*OggSound*TaskResult : System.Threading.Tasks.Task
+---@class System.Collections.Generic.Queue*1System*Int16-arr : System.Object
+---@class Barotrauma.Sounds.BiQuad-arr : System.Array
+---@class Barotrauma.Sounds.BiQuad : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Networking*VoipQueue : System.Object, {[System.Int32]:Barotrauma.Networking.VoipQueue}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1System*UInt32 : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RoundSound : System.Object, {[System.String]:Barotrauma.RoundSound}, {[System.Object]:System.Object}
+---@class Barotrauma.BackgroundMusic-arr : System.Array
+---@class System.Collections.Generic.HashSet*1Barotrauma*Sounds*SoundChannel : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*BackgroundMusic
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*SoundPrefab : {[System.Int32]:Barotrauma.SoundPrefab}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*DamageSound
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Type : System.Object, {[Barotrauma.Identifier]:System.Type}, {[Barotrauma.Identifier]:System.Type}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Type*1Barotrauma*SoundPrefab*PrefabCollectionHandler : System.Object, {[System.Type]:Barotrauma.SoundPrefab.PrefabCollectionHandler}, {[System.Type]:Barotrauma.SoundPrefab.PrefabCollectionHandler}, {[System.Object]:System.Object}
+---@class Barotrauma.SoundPrefab.PrefabCollectionHandler : System.Object
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*SoundPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))}, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*SoundPrefab)|(fun():(Barotrauma.SoundPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoundPrefab : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])}, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*SoundPrefab)|(Barotrauma.SoundPrefab[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*EditorNode : System.Object, {[System.Int32]:Barotrauma.EditorNode}, {[System.Int32]:System.Object}
+---@class Barotrauma.EditorNode : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*EditorNode*1Microsoft*Xna*Framework*Vector2 : System.Object, {[Barotrauma.EditorNode]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class Barotrauma.EventEditorNodeConnection : System.Object
+---@class Barotrauma.ValueNode : Barotrauma.EditorNode
+---@class System.Collections.Generic.Dictionary*1Barotrauma*MainMenuScreen*Tab*1Barotrauma*GUIFrame : System.Object, {[Barotrauma.MainMenuScreen.Tab]:Barotrauma.GUIFrame}, {[System.Object]:System.Object}
+---@class Barotrauma.MainMenuScreen.Tab : System.Enum
+---@class Barotrauma.SinglePlayerCampaignSetupUI : Barotrauma.CampaignSetupUI
+---@class System.ValueTuple*1System*DateTime*1System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Queue*1System*UInt64 : System.Object
+---@class Barotrauma.PanelAnimator : System.Object
+---@class Barotrauma.Option*1Barotrauma*Networking*ServerInfo : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ServerListScreen*TabEnum*1Barotrauma*ServerListScreen*Tab : System.Object, {[Barotrauma.ServerListScreen.TabEnum]:Barotrauma.ServerListScreen.Tab}, {[System.Object]:System.Object}
+---@class Barotrauma.ServerListScreen.TabEnum : System.Enum
+---@class Barotrauma.ServerListScreen.Tab : System.ValueType
+---@class Barotrauma.ServerProvider : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUIDropDown : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUIDropDown}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*GUITickBox : System.Object, {[Barotrauma.Identifier]:Barotrauma.GUITickBox}, {[System.Object]:System.Object}
+---@class Barotrauma.ServerListScreen.TernaryOption : System.Enum
+---@class Barotrauma.ServerListScreen.ColumnLabel : System.Enum
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*ServerListScreen*ColumnLabel*1Barotrauma*ServerListScreen*Column : System.Object, {[Barotrauma.ServerListScreen.ColumnLabel]:Barotrauma.ServerListScreen.Column}, {[Barotrauma.ServerListScreen.ColumnLabel]:Barotrauma.ServerListScreen.Column}, {[System.Object]:System.Object}
+---@class Barotrauma.ServerListScreen.Column : System.ValueType
+---@class System.Threading.Tasks.Task*1System*String : System.Threading.Tasks.Task
+---@class System.Action*1Barotrauma*ServerListScreen*TernaryOption : System.MulticastDelegate
+---@class Barotrauma.ServerListScreen.MsgUserData : System.Enum
+---@class System.ValueTuple*1System*Action*2Barotrauma*Networking*ServerInfo*2Barotrauma*ServerProvider*1System*Action : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ServerListScreen*ReportReason
+---@class Barotrauma.ServerListScreen.ReportReason : System.Enum
+---@class System.Collections.Generic.HashSet*1Barotrauma*Sprite : System.Object
+---@class System.Collections.Generic.HashSet*1System*UInt64 : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Boolean : System.Object, {[System.String]:System.Boolean}, {[System.Object]:System.Object}
+---@class Barotrauma.SubEditorScreen.Mode : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*SubEditorScreen*WarningType : System.Object, {[System.Int32]:Barotrauma.SubEditorScreen.WarningType}, {[System.Int32]:System.Object}
+---@class Barotrauma.SubEditorScreen.WarningType : System.Enum
+---@class Barotrauma.EditorImageManager : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Command : System.Object, {[System.Int32]:Barotrauma.Command}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*SubEditorScreen*LayerData : System.Object, {[System.String]:Barotrauma.SubEditorScreen.LayerData}, {[System.Object]:System.Object}
+---@class Barotrauma.SubEditorScreen.LayerData : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*MapEntity : System.Object
+---@class Barotrauma.CharacterEditor.CharacterEditorScreen.JointCreationMode : System.Enum
+---@class Barotrauma.CharacterEditor.WallGroup-arr : System.Array
+---@class Barotrauma.CharacterEditor.CharacterEditorScreen.WallGroup : System.Object
+---@class Barotrauma.CharacterEditor.CharacterEditorScreen.ToggleButton : System.Object
+---@class System.Action*1Barotrauma*Limb : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Limb*1Barotrauma*LimbJoint : System.MulticastDelegate
+---@class Barotrauma.CharacterEditor.CharacterEditorScreen.WidgetType : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AnimationParams
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Xml*Linq*XElement : System.Object, {[System.String]:System.Xml.Linq.XElement}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Steering : System.Object, {[Barotrauma.CharacterTeamType]:(System.Collections.Generic.List*1Barotrauma*Items*Components*Steering)|(Barotrauma.Items.Components.Steering[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Steering : System.Object, {[System.Int32]:Barotrauma.Items.Components.Steering}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Door : System.Object, {[Barotrauma.CharacterTeamType]:(System.Collections.Generic.List*1Barotrauma*Items*Components*Door)|(Barotrauma.Items.Components.Door[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Door : System.Object, {[System.Int32]:Barotrauma.Items.Components.Door}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*ItemContainer : System.Object, {[Barotrauma.CharacterTeamType]:(System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer)|(Barotrauma.Items.Components.ItemContainer[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Networking*RespawnManager*TeamSpecificState : System.Object, {[Barotrauma.CharacterTeamType]:Barotrauma.Networking.RespawnManager.TeamSpecificState}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Submarine : System.Object, {[Barotrauma.CharacterTeamType]:Barotrauma.Submarine}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*VoteType*1System*Int32 : System.Object, {[Barotrauma.Networking.VoteType]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Voting*T*1System*Int32 : {[Barotrauma.Voting.T]:System.Int32}
+---@class Barotrauma.Voting.T : System.Object
+---@class Barotrauma.Voting.T : System.Object
+---@class Barotrauma.Voting.T : System.Object
+---@class System.Collections.Concurrent.ConcurrentQueue*1Barotrauma*ColoredText : System.Object
+---@class Barotrauma.NamedEvent*1Barotrauma*ColoredText : System.Object
+---@class Barotrauma.DebugConsole.QuestionCallback : System.MulticastDelegate
+---@class System.Action*1System*String-arr : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*FabricationRecipe : System.Object, {[System.Int32]:Barotrauma.FabricationRecipe}, {[System.Int32]:System.Object}
+---@class Barotrauma.DebugConsole.AdjustItemTypes : System.Enum
+---@class Barotrauma.DebugConsole.TFile : Barotrauma.BaseSubFile
+---@class System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile : System.Object, {[System.Int32]:Barotrauma.DebugConsole.TFile}, {[System.Int32]:System.Object}
+---@class Barotrauma.DebugConsole.TFile : Barotrauma.ContentFile
+---@class System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile : System.Object, {[System.Int32]:Barotrauma.DebugConsole.TFile}, {[System.Int32]:System.Object}
+---@class Barotrauma.DebugConsole.TFile : Barotrauma.BaseSubFile
+---@class System.Linq.IOrderedEnumerable*1Barotrauma*Character
+---@class System.Func*1System*String-arr-arr : System.MulticastDelegate
+---@class System.String-arr-arr : System.Array
+---@class Microsoft.Xna.Framework.Graphics.TargetBlendState : System.Object
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*TextPack : System.Object, {[System.Int32]:Barotrauma.TextPack}, {[System.Int32]:Barotrauma.TextPack}, {[System.Int32]:Barotrauma.TextPack}, {[System.Int32]:System.Object}
+---@class Barotrauma.PrefabSelector*1Barotrauma*ItemPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*JobPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*CharacterPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*HumanPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*AfflictionPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*TalentPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*TalentTree : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*OrderPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*LevelGenerationParams : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*LocationType : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*EventPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*EventSet : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*EventManagerSettings : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*GUIPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*BackgroundMusic : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*GUISound : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*DamageSound : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*Particles*ParticlePrefab : System.Object
+---@class System.Text.RegularExpressions.Group : System.Text.RegularExpressions.Capture
+---@class System.Text.RegularExpressions.Capture : System.Object
+---@class Microsoft.Xna.Framework.Input.KeyState : System.Enum
diff --git a/Meta/Types/client/compatibilitylib/GUI.lua b/Meta/Types/client/compatibilitylib/GUI.lua
new file mode 100644
index 0000000..6d1f9f5
--- /dev/null
+++ b/Meta/Types/client/compatibilitylib/GUI.lua
@@ -0,0 +1,2 @@
+---@meta
+GUI = {}
diff --git a/Meta/Types/client/compatibilitylib/Sounds.lua b/Meta/Types/client/compatibilitylib/Sounds.lua
new file mode 100644
index 0000000..eba193b
--- /dev/null
+++ b/Meta/Types/client/compatibilitylib/Sounds.lua
@@ -0,0 +1,2 @@
+---@meta
+Sounds = {}
\ No newline at end of file
diff --git a/Meta/Types/client/constants.lua b/Meta/Types/client/constants.lua
new file mode 100644
index 0000000..1179475
--- /dev/null
+++ b/Meta/Types/client/constants.lua
@@ -0,0 +1,2 @@
+CLIENT = true
+SERVER = false
\ No newline at end of file
diff --git a/Meta/Types/server/_00007FFD96515688.lua b/Meta/Types/server/_00007FFD96515688.lua
new file mode 100644
index 0000000..38cf0ed
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96515688.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class System.Object
+---@operator add(Barotrauma.LocalizedString):Barotrauma.LocalizedString
+_G['System']['Object'] = {}
+
+---`Method Public Instance`
+---@return System.Type
+_G['System']['Object'].GetType = function() end
+
+---`Method NonPublic Instance`
+---@return System.Object
+_G['System']['Object'].MemberwiseClone = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['System']['Object'].Finalize = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['System']['Object'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['System']['Object'].Equals = function(obj) end
+
+---`Method Public Static`
+---@param objA System.Object
+---@param objB System.Object
+---@return System.Boolean
+_G['System']['Object'].Equals = function(objA, objB) end
+
+---`Method Public Static`
+---@param objA System.Object
+---@param objB System.Object
+---@return System.Boolean
+_G['System']['Object'].ReferenceEquals = function(objA, objB) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Object'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return System.Object
+_G['System']['Object'] = function() end
+
+---`Constructor Public Instance`
+---@return System.Object
+_G['System']['Object'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9651BF38.lua b/Meta/Types/server/_00007FFD9651BF38.lua
new file mode 100644
index 0000000..1cf58b2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9651BF38.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class System.Boolean : System.ValueType, boolean
+---`Field Private Instance`
+---@field m_value System.Boolean
+---`Field Public Static`
+---@field TrueString System.String
+---`Field Public Static`
+---@field FalseString System.String
+_G['System']['Boolean'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Boolean'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Boolean'].ToString = function(provider) end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@return System.Boolean
+_G['System']['Boolean'].TryFormat = function(destination, charsWritten) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Boolean
+---@return System.Boolean
+_G['System']['Boolean'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Int32)
+---@param value System.Boolean
+---@return System.Int32
+_G['System']['Boolean'].CompareTo = function(value) end
+
+---`Method NonPublic Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Boolean
+_G['System']['Boolean'].IsTrueStringIgnoreCase = function(value) end
+
+---`Method NonPublic Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Boolean
+_G['System']['Boolean'].IsFalseStringIgnoreCase = function(value) end
+
+---`Method Public Static`
+---@overload fun(value:System.String):(System.Boolean)
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Boolean
+_G['System']['Boolean'].Parse = function(value) end
+
+---`Method Public Static`
+---@overload fun(value:System.String, result:System.Boolean-ref):(System.Boolean)
+---@param value System.ReadOnlySpan*1System*Char
+---@param result System.Boolean-ref
+---@return System.Boolean
+_G['System']['Boolean'].TryParse = function(value, result) end
+
+---`Method Private Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.ReadOnlySpan*1System*Char
+_G['System']['Boolean'].TrimWhiteSpaceAndNull = function(value) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Boolean'].GetTypeCode = function() end
+
+---`Constructor Private Static`
+---@return System.Boolean
+_G['System']['Boolean'] = function() end
+
+---`Constructor Private Static`
+---@return System.Boolean
+_G['System']['Boolean'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD965B3DE0.lua b/Meta/Types/server/_00007FFD965B3DE0.lua
new file mode 100644
index 0000000..ec2f47c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965B3DE0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.SByte : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.SByte
+---`Field Public Static`
+---@field MaxValue System.SByte
+---`Field Public Static`
+---@field MinValue System.SByte
+_G['System']['SByte'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Int32)
+---@param value System.SByte
+---@return System.Int32
+_G['System']['SByte'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.SByte
+---@return System.Boolean
+_G['System']['SByte'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['SByte'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['SByte'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['SByte'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['SByte'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.SByte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.SByte)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.SByte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.SByte)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.SByte
+_G['System']['SByte'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.SByte
+_G['System']['SByte'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.SByte-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.SByte-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.SByte-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.SByte-ref
+---@return System.Boolean
+_G['System']['SByte'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.SByte-ref
+---@return System.Boolean
+_G['System']['SByte'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['SByte'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965B5EB0.lua b/Meta/Types/server/_00007FFD965B5EB0.lua
new file mode 100644
index 0000000..460150e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965B5EB0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.Byte : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Byte
+---`Field Public Static`
+---@field MaxValue System.Byte
+---`Field Public Static`
+---@field MinValue System.Byte
+_G['System']['Byte'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Byte
+---@return System.Int32
+_G['System']['Byte'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Byte
+---@return System.Boolean
+_G['System']['Byte'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Byte'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Byte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Byte)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Byte)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Byte)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Byte
+_G['System']['Byte'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.Byte
+_G['System']['Byte'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Byte-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Byte-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Byte-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Byte-ref
+---@return System.Boolean
+_G['System']['Byte'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Byte-ref
+---@return System.Boolean
+_G['System']['Byte'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Byte'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Byte'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Byte'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Byte'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965B70C0.lua b/Meta/Types/server/_00007FFD965B70C0.lua
new file mode 100644
index 0000000..2e375b9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965B70C0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.Int16 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Int16
+---`Field Public Static`
+---@field MaxValue System.Int16
+---`Field Public Static`
+---@field MinValue System.Int16
+_G['System']['Int16'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Int16
+---@return System.Int32
+_G['System']['Int16'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Int16
+---@return System.Boolean
+_G['System']['Int16'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Int16'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Int16'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Int16'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Int16'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Int16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Int16)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Int16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Int16)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Int16
+_G['System']['Int16'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.Int16
+_G['System']['Int16'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Int16-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Int16-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Int16-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Int16-ref
+---@return System.Boolean
+_G['System']['Int16'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Int16-ref
+---@return System.Boolean
+_G['System']['Int16'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Int16'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965B82A8.lua b/Meta/Types/server/_00007FFD965B82A8.lua
new file mode 100644
index 0000000..b3f4d02
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965B82A8.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class System.UInt16 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.UInt16
+---`Field Public Static`
+---@field MaxValue System.UInt16
+---`Field Public Static`
+---@field MinValue System.UInt16
+_G['System']['UInt16'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.UInt16
+---@return System.Int32
+_G['System']['UInt16'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.UInt16
+---@return System.Boolean
+_G['System']['UInt16'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['UInt16'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['UInt16'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['UInt16'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['UInt16'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.UInt16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.UInt16)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.UInt16)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.UInt16)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.UInt16
+_G['System']['UInt16'].Parse = function(s, style, provider) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@return System.UInt16
+_G['System']['UInt16'].Parse = function(s, style, info) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.UInt16-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.UInt16-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.UInt16-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.UInt16-ref
+---@return System.Boolean
+_G['System']['UInt16'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.UInt16-ref
+---@return System.Boolean
+_G['System']['UInt16'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['UInt16'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965B94B0.lua b/Meta/Types/server/_00007FFD965B94B0.lua
new file mode 100644
index 0000000..3958726
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965B94B0.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class System.Int32 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Int32
+---`Field Public Static`
+---@field MaxValue System.Int32
+---`Field Public Static`
+---@field MinValue System.Int32
+_G['System']['Int32'] = {}
+
+---`Method NonPublic Static`
+---@param value System.Int32.TOther
+---@return System.Int32
+_G['System']['Int32'].Create = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Int32
+---@return System.Int32
+_G['System']['Int32'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Int32
+---@return System.Boolean
+_G['System']['Int32'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Int32'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Int32'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Int32'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Int32'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Int32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Int32)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Int32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Int32)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Int32
+_G['System']['Int32'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Int32-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Int32-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Int32-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Int32-ref
+---@return System.Boolean
+_G['System']['Int32'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Int32'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965BA670.lua b/Meta/Types/server/_00007FFD965BA670.lua
new file mode 100644
index 0000000..5c409db
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965BA670.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class System.UInt32 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.UInt32
+---`Field Public Static`
+---@field MaxValue System.UInt32
+---`Field Public Static`
+---@field MinValue System.UInt32
+_G['System']['UInt32'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.UInt32
+---@return System.Int32
+_G['System']['UInt32'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.UInt32
+---@return System.Boolean
+_G['System']['UInt32'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['UInt32'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['UInt32'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['UInt32'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['UInt32'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.UInt32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.UInt32)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.UInt32)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.UInt32)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.UInt32
+_G['System']['UInt32'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.UInt32-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.UInt32-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.UInt32-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.UInt32-ref
+---@return System.Boolean
+_G['System']['UInt32'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['UInt32'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965BB850.lua b/Meta/Types/server/_00007FFD965BB850.lua
new file mode 100644
index 0000000..057025b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965BB850.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class System.Int64 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.Int64
+---`Field Public Static`
+---@field MaxValue System.Int64
+---`Field Public Static`
+---@field MinValue System.Int64
+_G['System']['Int64'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Int64
+---@return System.Int32
+_G['System']['Int64'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Int64
+---@return System.Boolean
+_G['System']['Int64'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Int64'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Int64'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Int64'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Int64'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Int64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Int64)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Int64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Int64)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Int64
+_G['System']['Int64'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Int64-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Int64-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Int64-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Int64-ref
+---@return System.Boolean
+_G['System']['Int64'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Int64'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965BCA08.lua b/Meta/Types/server/_00007FFD965BCA08.lua
new file mode 100644
index 0000000..58ae4d4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965BCA08.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class System.UInt64 : System.ValueType, integer
+---`Field Private Instance`
+---@field m_value System.UInt64
+---`Field Public Static`
+---@field MaxValue System.UInt64
+---`Field Public Static`
+---@field MinValue System.UInt64
+_G['System']['UInt64'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.UInt64
+---@return System.Int32
+_G['System']['UInt64'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.UInt64
+---@return System.Boolean
+_G['System']['UInt64'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['UInt64'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['UInt64'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['UInt64'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['UInt64'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.UInt64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.UInt64)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.UInt64)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.UInt64)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.UInt64
+_G['System']['UInt64'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.UInt64-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.UInt64-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.UInt64-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.UInt64-ref
+---@return System.Boolean
+_G['System']['UInt64'].TryParse = function(s, style, provider, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['UInt64'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965BED08.lua b/Meta/Types/server/_00007FFD965BED08.lua
new file mode 100644
index 0000000..f77c092
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965BED08.lua
@@ -0,0 +1,142 @@
+---@meta
+---@class System.Single : System.ValueType, number
+---@operator mul(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator mul(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator mul(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---`Field Private Instance`
+---@field m_value System.Single
+---`Field Public Static`
+---@field MinValue System.Single
+---`Field Public Static`
+---@field Epsilon System.Single
+---`Field Public Static`
+---@field MaxValue System.Single
+---`Field Public Static`
+---@field PositiveInfinity System.Single
+---`Field Public Static`
+---@field NegativeInfinity System.Single
+---`Field Public Static`
+---@field NaN System.Single
+_G['System']['Single'] = {}
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsFinite = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsInfinity = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNaN = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNegative = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNegativeInfinity = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsNormal = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsPositiveInfinity = function(f) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Boolean
+_G['System']['Single'].IsSubnormal = function(f) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt32
+---@return System.Int32
+_G['System']['Single'].ExtractExponentFromBits = function(bits) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt32
+---@return System.UInt32
+_G['System']['Single'].ExtractSignificandFromBits = function(bits) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Single
+---@return System.Int32
+_G['System']['Single'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Single
+---@return System.Boolean
+_G['System']['Single'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Single'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Single'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Single'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Single'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Single)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Single)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Single)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Single)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Single
+_G['System']['Single'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Single-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Single-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Single-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Single-ref
+---@return System.Boolean
+_G['System']['Single'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Single-ref
+---@return System.Boolean
+_G['System']['Single'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Single'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965C3210.lua b/Meta/Types/server/_00007FFD965C3210.lua
new file mode 100644
index 0000000..01bf802
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965C3210.lua
@@ -0,0 +1,140 @@
+---@meta
+---@class System.Double : System.ValueType, number
+---@operator mul(System.TimeSpan):System.TimeSpan
+---`Field Private Instance`
+---@field m_value System.Double
+---`Field Public Static`
+---@field MinValue System.Double
+---`Field Public Static`
+---@field MaxValue System.Double
+---`Field Public Static`
+---@field Epsilon System.Double
+---`Field Public Static`
+---@field NegativeInfinity System.Double
+---`Field Public Static`
+---@field PositiveInfinity System.Double
+---`Field Public Static`
+---@field NaN System.Double
+_G['System']['Double'] = {}
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsFinite = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsInfinity = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNaN = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNegative = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNegativeInfinity = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsNormal = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsPositiveInfinity = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Boolean
+_G['System']['Double'].IsSubnormal = function(d) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt64
+---@return System.Int32
+_G['System']['Double'].ExtractExponentFromBits = function(bits) end
+
+---`Method NonPublic Static`
+---@param bits System.UInt64
+---@return System.UInt64
+_G['System']['Double'].ExtractSignificandFromBits = function(bits) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.Double
+---@return System.Int32
+_G['System']['Double'].CompareTo = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param obj System.Double
+---@return System.Boolean
+_G['System']['Double'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['Double'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@overload fun(provider:System.IFormatProvider):(System.String)
+---@param format System.String
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['Double'].ToString = function(format, provider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['System']['Double'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param provider? System.IFormatProvider
+---@return System.Boolean
+_G['System']['Double'].TryFormat = function(destination, charsWritten, format, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.Double)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles):(System.Double)
+---@overload fun(s:System.String, provider:System.IFormatProvider):(System.Double)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider):(System.Double)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style? System.Globalization.NumberStyles
+---@param provider? System.IFormatProvider
+---@return System.Double
+_G['System']['Double'].Parse = function(s, style, provider) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.Double-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.Double-ref):(System.Boolean)
+---@overload fun(s:System.String, style:System.Globalization.NumberStyles, provider:System.IFormatProvider, result:System.Double-ref):(System.Boolean)
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param provider System.IFormatProvider
+---@param result System.Double-ref
+---@return System.Boolean
+_G['System']['Double'].TryParse = function(s, style, provider, result) end
+
+---`Method Private Static`
+---@param s System.ReadOnlySpan*1System*Char
+---@param style System.Globalization.NumberStyles
+---@param info System.Globalization.NumberFormatInfo
+---@param result System.Double-ref
+---@return System.Boolean
+_G['System']['Double'].TryParse = function(s, style, info, result) end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['Double'].GetTypeCode = function() end
+
diff --git a/Meta/Types/server/_00007FFD965CD708.lua b/Meta/Types/server/_00007FFD965CD708.lua
new file mode 100644
index 0000000..4db5d42
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965CD708.lua
@@ -0,0 +1,736 @@
+---@meta
+---@class System.String : System.Object, {[System.Int32]:System.Char}, string
+---`Field Private Instance`
+---@field _stringLength System.Int32
+---`Field Private Instance`
+---@field _firstChar System.Char
+---`Field Public Static`
+---@field Empty System.String
+---`Getter Public Instance`
+---@field Length System.Int32
+_G['System']['String'] = {}
+
+---`Method Public Instance`
+---@overload fun(value:System.String, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, count:System.Int32, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.Char):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@param value System.String
+---@return System.Int32
+_G['System']['String'].LastIndexOf = function(value) end
+
+---`Method Public Instance`
+---@overload fun(totalWidth:System.Int32):(System.String)
+---@param totalWidth System.Int32
+---@param paddingChar System.Char
+---@return System.String
+_G['System']['String'].PadRight = function(totalWidth, paddingChar) end
+
+---`Method Public Instance`
+---@overload fun(startIndex:System.Int32, count:System.Int32):(System.String)
+---@param startIndex System.Int32
+---@return System.String
+_G['System']['String'].Remove = function(startIndex) end
+
+---`Method Public Instance`
+---@overload fun(oldValue:System.String, newValue:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.String)
+---@overload fun(oldValue:System.String, newValue:System.String, comparisonType:System.StringComparison):(System.String)
+---@overload fun(oldChar:System.Char, newChar:System.Char):(System.String)
+---@param oldValue System.String
+---@param newValue System.String
+---@return System.String
+_G['System']['String'].Replace = function(oldValue, newValue) end
+
+---`Method Private Instance`
+---@param oldValue System.String
+---@param newValue System.String
+---@param ci System.Globalization.CompareInfo
+---@param options System.Globalization.CompareOptions
+---@return System.String
+_G['System']['String'].ReplaceCore = function(oldValue, newValue, ci, options) end
+
+---`Method Private Static`
+---@param searchSpace System.ReadOnlySpan*1System*Char
+---@param oldValue System.ReadOnlySpan*1System*Char
+---@param newValue System.ReadOnlySpan*1System*Char
+---@param compareInfo System.Globalization.CompareInfo
+---@param options System.Globalization.CompareOptions
+---@return System.String
+_G['System']['String'].ReplaceCore = function(searchSpace, oldValue, newValue, compareInfo, options) end
+
+---`Method Private Instance`
+---@param oldValueLength System.Int32
+---@param newValue System.String
+---@param indices System.ReadOnlySpan*1System*Int32
+---@return System.String
+_G['System']['String'].ReplaceHelper = function(oldValueLength, newValue, indices) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param replacementText System.String
+---@return System.String
+_G['System']['String'].ReplaceLineEndings = function(replacementText) end
+
+---`Method NonPublic Static`
+---@param text System.ReadOnlySpan*1System*Char
+---@param stride System.Int32-ref
+---@return System.Int32
+_G['System']['String'].IndexOfNewlineChar = function(text, stride) end
+
+---`Method Public Instance`
+---@overload fun(separator:System.Char, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.Char, count:System.Int32, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(...:System.Char):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.Char-arr)|(System.Char[]), count:System.Int32):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.Char-arr)|(System.Char[]), options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.Char-arr)|(System.Char[]), count:System.Int32, options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.String, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.String, count:System.Int32, options?:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:(System.String-arr)|(System.String[]), options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@param separator (System.String-arr)|(System.String[])
+---@param count System.Int32
+---@param options System.StringSplitOptions
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].Split = function(separator, count, options) end
+
+---`Method Private Instance`
+---@overload fun(separators:System.ReadOnlySpan*1System*Char, count:System.Int32, options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@overload fun(separator:System.String, separators:(System.String-arr)|(System.String[]), count:System.Int32, options:System.StringSplitOptions):((System.String-arr)|(System.String[]))
+---@param separator System.String
+---@param count System.Int32
+---@param options System.StringSplitOptions
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].SplitInternal = function(separator, count, options) end
+
+---`Method Private Instance`
+---@param sepList System.ReadOnlySpan*1System*Int32
+---@param lengthList System.ReadOnlySpan*1System*Int32
+---@param defaultLength System.Int32
+---@param count System.Int32
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].SplitWithoutPostProcessing = function(sepList, lengthList, defaultLength, count) end
+
+---`Method Private Instance`
+---@param sepList System.ReadOnlySpan*1System*Int32
+---@param lengthList System.ReadOnlySpan*1System*Int32
+---@param defaultLength System.Int32
+---@param count System.Int32
+---@param options System.StringSplitOptions
+---@return (System.String-arr)|(System.String[])
+_G['System']['String'].SplitWithPostProcessing = function(sepList, lengthList, defaultLength, count, options) end
+
+---`Method Private Instance`
+---@overload fun(separators:System.ReadOnlySpan*1System*Char, sepListBuilder:System.Collections.Generic.ValueListBuilder)
+---@overload fun(separator:System.String, sepListBuilder:System.Collections.Generic.ValueListBuilder)
+---@param separators (System.String-arr)|(System.String[])
+---@param sepListBuilder System.Collections.Generic.ValueListBuilder
+---@param lengthListBuilder System.Collections.Generic.ValueListBuilder
+_G['System']['String'].MakeSeparatorList = function(separators, sepListBuilder, lengthListBuilder) end
+
+---`Method Private Instance`
+---@param sepListBuilder System.Collections.Generic.ValueListBuilder
+---@param c System.Char
+---@param c2 System.Char
+---@param c3 System.Char
+_G['System']['String'].MakeSeparatorListVectorized = function(sepListBuilder, c, c2, c3) end
+
+---`Method Private Static`
+---@param options System.StringSplitOptions
+_G['System']['String'].CheckStringSplitOptions = function(options) end
+
+---`Method Public Instance`
+---@overload fun(startIndex:System.Int32):(System.String)
+---@param startIndex System.Int32
+---@param length System.Int32
+---@return System.String
+_G['System']['String'].Substring = function(startIndex, length) end
+
+---`Method Private Instance`
+---@param startIndex System.Int32
+---@param length System.Int32
+---@return System.String
+_G['System']['String'].InternalSubString = function(startIndex, length) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param culture System.Globalization.CultureInfo
+---@return System.String
+_G['System']['String'].ToLower = function(culture) end
+
+---`Method Public Instance`
+---@return System.String
+_G['System']['String'].ToLowerInvariant = function() end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param culture System.Globalization.CultureInfo
+---@return System.String
+_G['System']['String'].ToUpper = function(culture) end
+
+---`Method Public Instance`
+---@return System.String
+_G['System']['String'].ToUpperInvariant = function() end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@overload fun(trimChar:System.Char):(System.String)
+---@param ... System.Char
+---@return System.String
+_G['System']['String'].Trim = function(...) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@overload fun(trimChar:System.Char):(System.String)
+---@param ... System.Char
+---@return System.String
+_G['System']['String'].TrimStart = function(...) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@overload fun(trimChar:System.Char):(System.String)
+---@param ... System.Char
+---@return System.String
+_G['System']['String'].TrimEnd = function(...) end
+
+---`Method Private Instance`
+---@param trimType System.Text.TrimType
+---@return System.String
+_G['System']['String'].TrimWhiteSpaceHelper = function(trimType) end
+
+---`Method Private Instance`
+---@param trimChars System.Char-ptr
+---@param trimCharsLength System.Int32
+---@param trimType System.Text.TrimType
+---@return System.String
+_G['System']['String'].TrimHelper = function(trimChars, trimCharsLength, trimType) end
+
+---`Method Private Instance`
+---@param start System.Int32
+---@param luaKey__end System.Int32
+---@return System.String
+_G['System']['String'].CreateTrimmedString = function(start, luaKey__end) end
+
+---`Method Public Instance`
+---@overload fun(value:System.String):(System.Boolean)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@overload fun(value:System.Char):(System.Boolean)
+---@param value System.Char
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['System']['String'].Contains = function(value, comparisonType) end
+
+---`Method Public Instance`
+---@overload fun(value:System.Char):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.Char, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.Char, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@overload fun(value:System.String):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, count:System.Int32):(System.Int32)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(value:System.String, startIndex:System.Int32, comparisonType:System.StringComparison):(System.Int32)
+---@param value System.String
+---@param startIndex System.Int32
+---@param count System.Int32
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].IndexOf = function(value, startIndex, count, comparisonType) end
+
+---`Method Public Instance`
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[])):(System.Int32)
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[]), startIndex:System.Int32):(System.Int32)
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].IndexOfAny = function(anyOf, startIndex, count) end
+
+---`Method Private Instance`
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].IndexOfCharArray = function(anyOf, startIndex, count) end
+
+---`Method Private Static`
+---@param charMap System.UInt32-ptr
+---@param anyOf System.ReadOnlySpan*1System*Char
+_G['System']['String'].InitializeProbabilisticMap = function(charMap, anyOf) end
+
+---`Method Private Static`
+---@param searchChar System.Char
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@return System.Boolean
+_G['System']['String'].ArrayContains = function(searchChar, anyOf) end
+
+---`Method Private Static`
+---@param charMap System.UInt32-ptr
+---@param value System.Byte
+---@return System.Boolean
+_G['System']['String'].IsCharBitSet = function(charMap, value) end
+
+---`Method Private Static`
+---@param charMap System.UInt32-ptr
+---@param value System.Byte
+_G['System']['String'].SetCharBit = function(charMap, value) end
+
+---`Method Public Instance`
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[])):(System.Int32)
+---@overload fun(anyOf:(System.Char-arr)|(System.Char[]), startIndex:System.Int32):(System.Int32)
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].LastIndexOfAny = function(anyOf, startIndex, count) end
+
+---`Method Private Instance`
+---@param anyOf (System.Char-arr)|(System.Char[])
+---@param startIndex System.Int32
+---@param count System.Int32
+---@return System.Int32
+_G['System']['String'].LastIndexOfCharArray = function(anyOf, startIndex, count) end
+
+---`Method Public Static`
+---@param value System.String
+---@return System.Boolean
+_G['System']['String'].IsNullOrEmpty = function(value) end
+
+---`Method Public Static`
+---@param value System.String
+---@return System.Boolean
+_G['System']['String'].IsNullOrWhiteSpace = function(value) end
+
+---`Method Public Instance`
+---@return System.Char-ref
+_G['System']['String'].GetPinnableReference = function() end
+
+---`Method NonPublic Instance`
+---@return System.Char-ref
+_G['System']['String'].GetRawStringData = function() end
+
+---`Method NonPublic Static`
+---@param bytes System.Byte-ptr
+---@param byteLength System.Int32
+---@param encoding System.Text.Encoding
+---@return System.String
+_G['System']['String'].CreateStringFromEncoding = function(bytes, byteLength, encoding) end
+
+---`Method NonPublic Static`
+---@overload fun(c:System.Char):(System.String)
+---@param c1 System.Char
+---@param c2 System.Char
+---@return System.String
+_G['System']['String'].CreateFromChar = function(c1, c2) end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@param provider System.IFormatProvider
+---@return System.String
+_G['System']['String'].ToString = function(provider) end
+
+---`Method Public Instance`
+---@return System.CharEnumerator
+_G['System']['String'].GetEnumerator = function() end
+
+---`Method Public Instance`
+---@return System.Text.StringRuneEnumerator
+_G['System']['String'].EnumerateRunes = function() end
+
+---`Method NonPublic Static`
+---@param ptr System.Char-ptr
+---@return System.Int32
+_G['System']['String'].wcslen = function(ptr) end
+
+---`Method NonPublic Static`
+---@param ptr System.Byte-ptr
+---@return System.Int32
+_G['System']['String'].strlen = function(ptr) end
+
+---`Method Private Static`
+_G['System']['String'].ThrowMustBeNullTerminatedString = function() end
+
+---`Method Public Instance Virtual`
+---@return System.TypeCode
+_G['System']['String'].GetTypeCode = function() end
+
+---`Method Public Instance`
+---@overload fun():(System.Boolean)
+---@param normalizationForm System.Text.NormalizationForm
+---@return System.Boolean
+_G['System']['String'].IsNormalized = function(normalizationForm) end
+
+---`Method Public Instance`
+---@overload fun():(System.String)
+---@param normalizationForm System.Text.NormalizationForm
+---@return System.String
+_G['System']['String'].Normalize = function(normalizationForm) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['System']['String'].IsAscii = function() end
+
+---`Method Private Static`
+---@param dest System.String
+---@param destPos System.Int32
+---@param src System.String
+_G['System']['String'].FillStringChecked = function(dest, destPos, src) end
+
+---`Method Public Static`
+---@overload fun(arg0:System.Object):(System.String)
+---@overload fun(arg0:System.Object, arg1:System.Object):(System.String)
+---@overload fun(arg0:System.Object, arg1:System.Object, arg2:System.Object):(System.String)
+---@overload fun(...:System.Object):(System.String)
+---@overload fun(values:(System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))):(System.String)
+---@overload fun(values:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):(System.String)
+---@overload fun(str0:System.String, str1:System.String):(System.String)
+---@overload fun(str0:System.String, str1:System.String, str2:System.String):(System.String)
+---@overload fun(str0:System.String, str1:System.String, str2:System.String, str3:System.String):(System.String)
+---@overload fun(str0:System.ReadOnlySpan*1System*Char, str1:System.ReadOnlySpan*1System*Char):(System.String)
+---@overload fun(str0:System.ReadOnlySpan*1System*Char, str1:System.ReadOnlySpan*1System*Char, str2:System.ReadOnlySpan*1System*Char):(System.String)
+---@overload fun(str0:System.ReadOnlySpan*1System*Char, str1:System.ReadOnlySpan*1System*Char, str2:System.ReadOnlySpan*1System*Char, str3:System.ReadOnlySpan*1System*Char):(System.String)
+---@param ... System.String
+---@return System.String
+_G['System']['String'].Concat = function(...) end
+
+---`Method Public Static`
+---@overload fun(format:System.String, arg0:System.Object):(System.String)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object):(System.String)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object):(System.String)
+---@overload fun(format:System.String, ...:System.Object):(System.String)
+---@overload fun(provider:System.IFormatProvider, format:System.String, arg0:System.Object):(System.String)
+---@overload fun(provider:System.IFormatProvider, format:System.String, arg0:System.Object, arg1:System.Object):(System.String)
+---@overload fun(provider:System.IFormatProvider, format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object):(System.String)
+---@param provider System.IFormatProvider
+---@param format System.String
+---@param ... System.Object
+---@return System.String
+_G['System']['String'].Format = function(provider, format, ...) end
+
+---`Method Private Static`
+---@param provider System.IFormatProvider
+---@param format System.String
+---@param args System.ParamsArray
+---@return System.String
+_G['System']['String'].FormatHelper = function(provider, format, args) end
+
+---`Method Public Instance`
+---@param startIndex System.Int32
+---@param value System.String
+---@return System.String
+_G['System']['String'].Insert = function(startIndex, value) end
+
+---`Method Public Static`
+---@overload fun(separator:System.Char, ...:System.String):(System.String)
+---@overload fun(separator:System.String, ...:System.String):(System.String)
+---@overload fun(separator:System.Char, value:(System.String-arr)|(System.String[]), startIndex:System.Int32, count:System.Int32):(System.String)
+---@overload fun(separator:System.String, value:(System.String-arr)|(System.String[]), startIndex:System.Int32, count:System.Int32):(System.String)
+---@overload fun(separator:System.String, values:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):(System.String)
+---@overload fun(separator:System.Char, ...:System.Object):(System.String)
+---@overload fun(separator:System.String, ...:System.Object):(System.String)
+---@overload fun(separator:System.Char, values:(System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))):(System.String)
+---@param separator System.String
+---@param values (System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))
+---@return System.String
+_G['System']['String'].Join = function(separator, values) end
+
+---`Method Private Static`
+---@overload fun(separator:System.ReadOnlySpan*1System*Char, value:(System.String-arr)|(System.String[]), startIndex:System.Int32, count:System.Int32):(System.String)
+---@overload fun(separator:System.ReadOnlySpan*1System*Char, values:(System.Object-arr)|(System.Object[])):(System.String)
+---@overload fun(separator:System.ReadOnlySpan*1System*Char, values:(System.Collections.Generic.IEnumerable*1System*String*T)|(fun():(System.String.T))):(System.String)
+---@param separator System.ReadOnlySpan*1System*Char
+---@param values System.ReadOnlySpan*1System*String
+---@return System.String
+_G['System']['String'].JoinCore = function(separator, values) end
+
+---`Method Public Instance`
+---@overload fun(totalWidth:System.Int32):(System.String)
+---@param totalWidth System.Int32
+---@param paddingChar System.Char
+---@return System.String
+_G['System']['String'].PadLeft = function(totalWidth, paddingChar) end
+
+---`Method NonPublic Static`
+---@param length System.Int32
+---@return System.String
+_G['System']['String'].FastAllocateString = function(length) end
+
+---`Method NonPublic Instance`
+---@param data System.Byte
+_G['System']['String'].SetTrailByte = function(data) end
+
+---`Method NonPublic Instance`
+---@param data System.Byte-ref
+---@return System.Boolean
+_G['System']['String'].TryGetTrailByte = function(data) end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['String'].Intern = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['System']['String'].Intern = function(str) end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['String'].IsInterned = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['System']['String'].IsInterned = function(str) end
+
+---`Method NonPublic Static`
+---@param src System.String
+---@param dest System.IntPtr
+---@param len System.Int32
+_G['System']['String'].InternalCopy = function(src, dest, len) end
+
+---`Method NonPublic Instance`
+---@param pbNativeBuffer System.Byte-ptr
+---@param cbNativeBuffer System.Int32
+---@param encoding System.Text.Encoding
+---@return System.Int32
+_G['System']['String'].GetBytesFromEncoding = function(pbNativeBuffer, cbNativeBuffer, encoding) end
+
+---`Method Private Static`
+---@param strA System.String
+---@param strB System.String
+---@return System.Boolean
+_G['System']['String'].EqualsHelper = function(strA, strB) end
+
+---`Method Private Static`
+---@overload fun(strA:System.String, indexA:System.Int32, countA:System.Int32, strB:System.String, indexB:System.Int32, countB:System.Int32):(System.Int32)
+---@param strA System.String
+---@param strB System.String
+---@return System.Int32
+_G['System']['String'].CompareOrdinalHelper = function(strA, strB) end
+
+---`Method NonPublic Static`
+---@param strA System.String
+---@param strB System.String
+---@return System.Boolean
+_G['System']['String'].EqualsOrdinalIgnoreCase = function(strA, strB) end
+
+---`Method Private Static`
+---@param strA System.String
+---@param strB System.String
+---@return System.Boolean
+_G['System']['String'].EqualsOrdinalIgnoreCaseNoLengthCheck = function(strA, strB) end
+
+---`Method Public Static`
+---@overload fun(strA:System.String, strB:System.String):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, ignoreCase:System.Boolean):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, comparisonType:System.StringComparison):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, culture:System.Globalization.CultureInfo, options:System.Globalization.CompareOptions):(System.Int32)
+---@overload fun(strA:System.String, strB:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32, ignoreCase:System.Boolean):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Int32)
+---@overload fun(strA:System.String, indexA:System.Int32, strB:System.String, indexB:System.Int32, length:System.Int32, culture:System.Globalization.CultureInfo, options:System.Globalization.CompareOptions):(System.Int32)
+---@param strA System.String
+---@param indexA System.Int32
+---@param strB System.String
+---@param indexB System.Int32
+---@param length System.Int32
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].Compare = function(strA, indexA, strB, indexB, length, comparisonType) end
+
+---`Method Public Static`
+---@overload fun(strA:System.String, strB:System.String):(System.Int32)
+---@param strA System.String
+---@param indexA System.Int32
+---@param strB System.String
+---@param indexB System.Int32
+---@param length System.Int32
+---@return System.Int32
+_G['System']['String'].CompareOrdinal = function(strA, indexA, strB, indexB, length) end
+
+---`Method NonPublic Static`
+---@param strA System.ReadOnlySpan*1System*Char
+---@param strB System.ReadOnlySpan*1System*Char
+---@return System.Int32
+_G['System']['String'].CompareOrdinal = function(strA, strB) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param strB System.String
+---@return System.Int32
+_G['System']['String'].CompareTo = function(strB) end
+
+---`Method Public Instance`
+---@overload fun(value:System.String):(System.Boolean)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@overload fun(value:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Boolean)
+---@param value System.Char
+---@return System.Boolean
+_G['System']['String'].EndsWith = function(value) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param value System.String
+---@return System.Boolean
+_G['System']['String'].Equals = function(value) end
+
+---`Method Public Instance`
+---@param value System.String
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['System']['String'].Equals = function(value, comparisonType) end
+
+---`Method Public Static`
+---@overload fun(a:System.String, b:System.String):(System.Boolean)
+---@param a System.String
+---@param b System.String
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['System']['String'].Equals = function(a, b, comparisonType) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['System']['String'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].GetHashCode = function(comparisonType) end
+
+---`Method Public Static`
+---@overload fun(value:System.ReadOnlySpan*1System*Char):(System.Int32)
+---@param value System.ReadOnlySpan*1System*Char
+---@param comparisonType System.StringComparison
+---@return System.Int32
+_G['System']['String'].GetHashCode = function(value, comparisonType) end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['System']['String'].GetHashCodeOrdinalIgnoreCase = function() end
+
+---`Method NonPublic Static`
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.Int32
+_G['System']['String'].GetHashCodeOrdinalIgnoreCase = function(value) end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['System']['String'].GetNonRandomizedHashCode = function() end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['System']['String'].GetNonRandomizedHashCodeOrdinalIgnoreCase = function() end
+
+---`Method Public Instance`
+---@overload fun(value:System.String):(System.Boolean)
+---@overload fun(value:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@overload fun(value:System.String, ignoreCase:System.Boolean, culture:System.Globalization.CultureInfo):(System.Boolean)
+---@param value System.Char
+---@return System.Boolean
+_G['System']['String'].StartsWith = function(value) end
+
+---`Method NonPublic Static`
+---@param comparisonType System.StringComparison
+_G['System']['String'].CheckStringComparison = function(comparisonType) end
+
+---`Method NonPublic Static`
+---@param comparisonType System.StringComparison
+---@return System.Globalization.CompareOptions
+_G['System']['String'].GetCaseCompareOfComparisonCulture = function(comparisonType) end
+
+---`Method Private Static`
+---@param comparisonType System.StringComparison
+---@return System.Globalization.CompareOptions
+_G['System']['String'].GetCompareOptionsFromOrdinalStringComparison = function(comparisonType) end
+
+---`Method Private Instance`
+---@overload fun(value:(System.Char-arr)|(System.Char[])):(System.String)
+---@overload fun(value:(System.Char-arr)|(System.Char[]), startIndex:System.Int32, length:System.Int32):(System.String)
+---@overload fun(ptr:System.Char-ptr):(System.String)
+---@overload fun(ptr:System.Char-ptr, startIndex:System.Int32, length:System.Int32):(System.String)
+---@overload fun(value:System.SByte-ptr):(System.String)
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32):(System.String)
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32, enc:System.Text.Encoding):(System.String)
+---@overload fun(c:System.Char, count:System.Int32):(System.String)
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.String
+_G['System']['String'].Ctor = function(value) end
+
+---`Method Private Static`
+---@param pb System.Byte-ptr
+---@param numBytes System.Int32
+---@return System.String
+_G['System']['String'].CreateStringForSByteConstructor = function(pb, numBytes) end
+
+---`Method Public Static`
+---@overload fun(length:System.Int32, state:System.String.TState, action:(System.Buffers.SpanAction*1System*Char*1System*String*TState)|(fun(span:System.Span*1System*Char, arg:System.String.TState))):(System.String)
+---@overload fun(provider:System.IFormatProvider, handler:System.Runtime.CompilerServices.DefaultInterpolatedStringHandler-ref):(System.String)
+---@param provider System.IFormatProvider
+---@param initialBuffer System.Span*1System*Char
+---@param handler System.Runtime.CompilerServices.DefaultInterpolatedStringHandler-ref
+---@return System.String
+_G['System']['String'].Create = function(provider, initialBuffer, handler) end
+
+---`Method NonPublic Instance`
+---@param startIndex System.Int32
+---@param count System.Int32
+---@param slice System.ReadOnlySpan
+---@return System.Boolean
+_G['System']['String'].TryGetSpan = function(startIndex, count, slice) end
+
+---`Method Public Instance Virtual`
+---@return System.Object
+_G['System']['String'].Clone = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['System']['String'].Copy = function(str) end
+
+---`Method Public Instance`
+---@overload fun(sourceIndex:System.Int32, destination:(System.Char-arr)|(System.Char[]), destinationIndex:System.Int32, count:System.Int32)
+---@param destination System.Span*1System*Char
+_G['System']['String'].CopyTo = function(destination) end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Char
+---@return System.Boolean
+_G['System']['String'].TryCopyTo = function(destination) end
+
+---`Method Public Instance`
+---@overload fun():((System.Char-arr)|(System.Char[]))
+---@param startIndex System.Int32
+---@param length System.Int32
+---@return (System.Char-arr)|(System.Char[])
+_G['System']['String'].ToCharArray = function(startIndex, length) end
+
+---`Constructor Public Instance`
+---@overload fun(value:(System.Char-arr)|(System.Char[])):System.String
+---@overload fun(value:(System.Char-arr)|(System.Char[]), startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.Char-ptr):System.String
+---@overload fun(value:System.Char-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32, enc:System.Text.Encoding):System.String
+---@overload fun(c:System.Char, count:System.Int32):System.String
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.String
+_G['System']['String'] = function(value) end
+
+---`Constructor Public Instance`
+---@overload fun(value:(System.Char-arr)|(System.Char[])):System.String
+---@overload fun(value:(System.Char-arr)|(System.Char[]), startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.Char-ptr):System.String
+---@overload fun(value:System.Char-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32):System.String
+---@overload fun(value:System.SByte-ptr, startIndex:System.Int32, length:System.Int32, enc:System.Text.Encoding):System.String
+---@overload fun(c:System.Char, count:System.Int32):System.String
+---@param value System.ReadOnlySpan*1System*Char
+---@return System.String
+_G['System']['String'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD965CF0B8.lua b/Meta/Types/server/_00007FFD965CF0B8.lua
new file mode 100644
index 0000000..96e2162
--- /dev/null
+++ b/Meta/Types/server/_00007FFD965CF0B8.lua
@@ -0,0 +1,206 @@
+---@meta
+---@class System.Exception : System.Object
+---`Field Private Instance`
+---@field _exceptionMethod System.Reflection.MethodBase
+---`Field NonPublic Instance`
+---@field _message System.String
+---`Field Private Instance`
+---@field _data System.Collections.IDictionary
+---`Field Private Instance`
+---@field _innerException System.Exception
+---`Field Private Instance`
+---@field _helpURL System.String
+---`Field Private Instance`
+---@field _stackTrace (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field _watsonBuckets (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field _stackTraceString System.String
+---`Field Private Instance`
+---@field _remoteStackTraceString System.String
+---`Field Private Instance`
+---@field _dynamicMethods (System.Object-arr)|(System.Object[])
+---`Field Private Instance`
+---@field _source System.String
+---`Field Private Instance`
+---@field _ipForWatsonBuckets System.UIntPtr
+---`Field Private Instance`
+---@field _xptrs System.IntPtr
+---`Field Private Instance`
+---@field _xcode System.Int32
+---`Field Private Instance`
+---@field _HResult System.Int32
+---`Field Private Static`
+---@field _COMPlusExceptionCode System.Int32
+---`Field NonPublic Static`
+---@field InnerExceptionPrefix System.String
+---`Getter Public Instance`
+---@field TargetSite System.Reflection.MethodBase
+---`Getter Private Instance`
+---@field HasBeenThrown System.Boolean
+---`Getter Private Instance`
+---@field SerializationWatsonBuckets System.Object
+---`Getter Public Instance Virtual`
+---@field Message System.String
+---`Getter Public Instance Virtual`
+---@field Data System.Collections.IDictionary
+---`Getter Public Instance`
+---@field InnerException System.Exception
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HelpLink System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Source System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HResult System.Int32
+---`Getter Public Instance Virtual`
+---@field StackTrace System.String
+---`Getter Private Instance`
+---@field SerializationStackTraceString System.String
+_G['System']['Exception'] = {}
+
+---`Method Private Instance`
+---@return System.Collections.IDictionary
+_G['System']['Exception'].CreateDataContainer = function() end
+
+---`Method Private Static`
+---@param e System.Exception
+---@return System.Boolean
+_G['System']['Exception'].IsImmutableAgileException = function(e) end
+
+---`Method Private Static`
+---@param stackTrace System.Object
+---@return System.IRuntimeMethodInfo
+_G['System']['Exception'].GetMethodFromStackTrace = function(stackTrace) end
+
+---`Method Private Instance`
+---@return System.Reflection.MethodBase
+_G['System']['Exception'].GetExceptionMethodFromStackTrace = function() end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['Exception'].CreateSourceName = function() end
+
+---`Method Private Instance`
+---@param context System.Runtime.Serialization.StreamingContext
+_G['System']['Exception'].OnDeserialized = function(context) end
+
+---`Method NonPublic Instance`
+_G['System']['Exception'].InternalPreserveStackTrace = function() end
+
+---`Method Private Static`
+_G['System']['Exception'].PrepareForForeignExceptionRaise = function() end
+
+---`Method Private Static`
+---@param exception System.Exception
+---@param currentStackTrace System.Byte-arr-ref
+---@param dynamicMethodArray System.Object-arr-ref
+_G['System']['Exception'].GetStackTracesDeepCopy = function(exception, currentStackTrace, dynamicMethodArray) end
+
+---`Method NonPublic Static`
+---@param exception System.Exception
+---@param currentStackTrace (System.Byte-arr)|(System.Byte[])
+---@param dynamicMethodArray (System.Object-arr)|(System.Object[])
+_G['System']['Exception'].SaveStackTracesFromDeepCopy = function(exception, currentStackTrace, dynamicMethodArray) end
+
+---`Method NonPublic Static`
+---@return System.UInt32
+_G['System']['Exception'].GetExceptionCount = function() end
+
+---`Method NonPublic Instance`
+---@param dispatchState System.DispatchState-ref
+_G['System']['Exception'].RestoreDispatchState = function(dispatchState) end
+
+---`Method NonPublic Static`
+---@param kind System.Exception.ExceptionMessageKind
+---@return System.String
+_G['System']['Exception'].GetMessageFromNativeResources = function(kind) end
+
+---`Method Private Static`
+---@param kind System.Exception.ExceptionMessageKind
+---@param retMesg System.Runtime.CompilerServices.StringHandleOnStack
+_G['System']['Exception'].GetMessageFromNativeResources = function(kind, retMesg) end
+
+---`Method NonPublic Instance`
+---@return System.Exception.DispatchState
+_G['System']['Exception'].CaptureDispatchState = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['System']['Exception'].CanSetRemoteStackTrace = function() end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['Exception'].GetClassName = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Exception
+_G['System']['Exception'].GetBaseException = function() end
+
+---`Method Public Instance Virtual`
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+_G['System']['Exception'].GetObjectData = function(info, context) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['System']['Exception'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Type
+_G['System']['Exception'].GetType = function() end
+
+---`Method Private Instance`
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+_G['System']['Exception'].RestoreRemoteStackTrace = function(info, context) end
+
+---`Method Private Instance`
+---@return System.String
+_G['System']['Exception'].GetStackTrace = function() end
+
+---`Method NonPublic Instance`
+_G['System']['Exception'].SetCurrentStackTrace = function() end
+
+---`Method NonPublic Instance`
+---@param stackTrace System.String
+_G['System']['Exception'].SetRemoteStackTrace = function(stackTrace) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'] = function(info, context) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'].__new = function(info, context) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'] = function(info, context) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Exception
+---@overload fun(message:System.String):System.Exception
+---@overload fun(message:System.String, innerException:System.Exception):System.Exception
+---@param info System.Runtime.Serialization.SerializationInfo
+---@param context System.Runtime.Serialization.StreamingContext
+---@return System.Exception
+_G['System']['Exception'].__new = function(info, context) end
+
diff --git a/Meta/Types/server/_00007FFD9670A770.lua b/Meta/Types/server/_00007FFD9670A770.lua
new file mode 100644
index 0000000..339d738
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9670A770.lua
@@ -0,0 +1,279 @@
+---@meta
+---@class System.TimeSpan : System.ValueType
+---@operator unm:System.TimeSpan
+---@operator sub(System.TimeSpan):System.TimeSpan
+---@operator add(System.TimeSpan):System.TimeSpan
+---@operator mul(System.Double):System.TimeSpan
+---@operator div(System.Double):System.TimeSpan
+---@operator div(System.TimeSpan):System.Double
+---`Field NonPublic Instance`
+---@field _ticks System.Int64
+---`Field Public Static`
+---@field Zero System.TimeSpan
+---`Field Public Static`
+---@field MaxValue System.TimeSpan
+---`Field Public Static`
+---@field MinValue System.TimeSpan
+---`Field Public Static`
+---@field TicksPerMillisecond System.Int64
+---`Field Public Static`
+---@field TicksPerSecond System.Int64
+---`Field Public Static`
+---@field TicksPerMinute System.Int64
+---`Field Public Static`
+---@field TicksPerHour System.Int64
+---`Field Public Static`
+---@field TicksPerDay System.Int64
+---`Getter Public Instance`
+---@field Ticks System.Int64
+---`Getter Public Instance`
+---@field Days System.Int32
+---`Getter Public Instance`
+---@field Hours System.Int32
+---`Getter Public Instance`
+---@field Milliseconds System.Int32
+---`Getter Public Instance`
+---@field Minutes System.Int32
+---`Getter Public Instance`
+---@field Seconds System.Int32
+---`Getter Public Instance`
+---@field TotalDays System.Double
+---`Getter Public Instance`
+---@field TotalHours System.Double
+---`Getter Public Instance`
+---@field TotalMilliseconds System.Double
+---`Getter Public Instance`
+---@field TotalMinutes System.Double
+---`Getter Public Instance`
+---@field TotalSeconds System.Double
+_G['TimeSpan'] = {}
+
+---`Method Public Instance`
+---@param ts System.TimeSpan
+---@return System.TimeSpan
+_G['TimeSpan'].Add = function(ts) end
+
+---`Method Public Static`
+---@param t1 System.TimeSpan
+---@param t2 System.TimeSpan
+---@return System.Int32
+_G['TimeSpan'].Compare = function(t1, t2) end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Int32)
+---@param value System.TimeSpan
+---@return System.Int32
+_G['TimeSpan'].CompareTo = function(value) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromDays = function(value) end
+
+---`Method Public Instance`
+---@return System.TimeSpan
+_G['TimeSpan'].Duration = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun(value:System.Object):(System.Boolean)
+---@param obj System.TimeSpan
+---@return System.Boolean
+_G['TimeSpan'].Equals = function(obj) end
+
+---`Method Public Static`
+---@param t1 System.TimeSpan
+---@param t2 System.TimeSpan
+---@return System.Boolean
+_G['TimeSpan'].Equals = function(t1, t2) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['TimeSpan'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromHours = function(value) end
+
+---`Method Private Static`
+---@param value System.Double
+---@param scale System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].Interval = function(value, scale) end
+
+---`Method Private Static`
+---@param ticks System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].IntervalFromDoubleTicks = function(ticks) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromMilliseconds = function(value) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromMinutes = function(value) end
+
+---`Method Public Instance`
+---@return System.TimeSpan
+_G['TimeSpan'].Negate = function() end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].FromSeconds = function(value) end
+
+---`Method Public Instance`
+---@param ts System.TimeSpan
+---@return System.TimeSpan
+_G['TimeSpan'].Subtract = function(ts) end
+
+---`Method Public Instance`
+---@param factor System.Double
+---@return System.TimeSpan
+_G['TimeSpan'].Multiply = function(factor) end
+
+---`Method Public Instance`
+---@overload fun(divisor:System.Double):(System.TimeSpan)
+---@param ts System.TimeSpan
+---@return System.Double
+_G['TimeSpan'].Divide = function(ts) end
+
+---`Method Public Static`
+---@param value System.Int64
+---@return System.TimeSpan
+_G['TimeSpan'].FromTicks = function(value) end
+
+---`Method NonPublic Static`
+---@param hour System.Int32
+---@param minute System.Int32
+---@param second System.Int32
+---@return System.Int64
+_G['TimeSpan'].TimeToTicks = function(hour, minute, second) end
+
+---`Method Private Static`
+---@param style System.Globalization.TimeSpanStyles
+---@param parameterName System.String
+_G['TimeSpan'].ValidateStyles = function(style, parameterName) end
+
+---`Method Public Static`
+---@overload fun(s:System.String):(System.TimeSpan)
+---@overload fun(input:System.String, formatProvider:System.IFormatProvider):(System.TimeSpan)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formatProvider? System.IFormatProvider
+---@return System.TimeSpan
+_G['TimeSpan'].Parse = function(input, formatProvider) end
+
+---`Method Public Static`
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider):(System.TimeSpan)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider):(System.TimeSpan)
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles):(System.TimeSpan)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, format:System.ReadOnlySpan*1System*Char, formatProvider:System.IFormatProvider, styles?:System.Globalization.TimeSpanStyles):(System.TimeSpan)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles):(System.TimeSpan)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formats (System.String-arr)|(System.String[])
+---@param formatProvider System.IFormatProvider
+---@param styles? System.Globalization.TimeSpanStyles
+---@return System.TimeSpan
+_G['TimeSpan'].ParseExact = function(input, formats, formatProvider, styles) end
+
+---`Method Public Static`
+---@overload fun(s:System.String, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(s:System.ReadOnlySpan*1System*Char, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formatProvider System.IFormatProvider
+---@param result System.TimeSpan-ref
+---@return System.Boolean
+_G['TimeSpan'].TryParse = function(input, formatProvider, result) end
+
+---`Method Public Static`
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, format:System.ReadOnlySpan*1System*Char, formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, format:System.String, formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.ReadOnlySpan*1System*Char, format:System.ReadOnlySpan*1System*Char, formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles, result:System.TimeSpan-ref):(System.Boolean)
+---@overload fun(input:System.String, formats:(System.String-arr)|(System.String[]), formatProvider:System.IFormatProvider, styles:System.Globalization.TimeSpanStyles, result:System.TimeSpan-ref):(System.Boolean)
+---@param input System.ReadOnlySpan*1System*Char
+---@param formats (System.String-arr)|(System.String[])
+---@param formatProvider System.IFormatProvider
+---@param styles System.Globalization.TimeSpanStyles
+---@param result System.TimeSpan-ref
+---@return System.Boolean
+_G['TimeSpan'].TryParseExact = function(input, formats, formatProvider, styles, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun():(System.String)
+---@param format System.String
+---@param formatProvider System.IFormatProvider
+---@return System.String
+_G['TimeSpan'].ToString = function(format, formatProvider) end
+
+---`Method Public Instance`
+---@param format System.String
+---@return System.String
+_G['TimeSpan'].ToString = function(format) end
+
+---`Method Public Instance Virtual`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@param format? System.ReadOnlySpan*1System*Char
+---@param formatProvider? System.IFormatProvider
+---@return System.Boolean
+_G['TimeSpan'].TryFormat = function(destination, charsWritten, format, formatProvider) end
+
+---`Constructor Private Static`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'] = function(days, hours, minutes, seconds, milliseconds) end
+
+---`Constructor Private Static`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'].__new = function(days, hours, minutes, seconds, milliseconds) end
+
+---`Constructor Public Instance`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'] = function(days, hours, minutes, seconds, milliseconds) end
+
+---`Constructor Public Instance`
+---@overload fun():System.TimeSpan
+---@overload fun(ticks:System.Int64):System.TimeSpan
+---@overload fun(hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@overload fun(days:System.Int32, hours:System.Int32, minutes:System.Int32, seconds:System.Int32):System.TimeSpan
+---@param days System.Int32
+---@param hours System.Int32
+---@param minutes System.Int32
+---@param seconds System.Int32
+---@param milliseconds System.Int32
+---@return System.TimeSpan
+_G['TimeSpan'].__new = function(days, hours, minutes, seconds, milliseconds) end
+
diff --git a/Meta/Types/server/_00007FFD9670BFA0.lua b/Meta/Types/server/_00007FFD9670BFA0.lua
new file mode 100644
index 0000000..ff43983
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9670BFA0.lua
@@ -0,0 +1,258 @@
+---@meta
+---@class System.Console : System.Object
+---`Field Private Static`
+---@field s_syncObject System.Object
+---`Field Private Static`
+---@field s_in System.IO.TextReader
+---`Field Private Static`
+---@field s_out System.IO.TextWriter
+---`Field Private Static`
+---@field s_error System.IO.TextWriter
+---`Field Private Static`
+---@field s_inputEncoding System.Text.Encoding
+---`Field Private Static`
+---@field s_outputEncoding System.Text.Encoding
+---`Field Private Static`
+---@field s_isOutTextWriterRedirected System.Boolean
+---`Field Private Static`
+---@field s_isErrorTextWriterRedirected System.Boolean
+---`Field Private Static`
+---@field s_cancelCallbacks (System.ConsoleCancelEventHandler)|(fun(sender:System.Object, e:System.ConsoleCancelEventArgs))
+---`Field Private Static`
+---@field s_sigIntRegistration System.Runtime.InteropServices.PosixSignalRegistration
+---`Field Private Static`
+---@field s_sigQuitRegistration System.Runtime.InteropServices.PosixSignalRegistration
+---`Field Private Static`
+---@field _isStdInRedirected System.Runtime.CompilerServices.StrongBox*1System*Boolean
+---`Field Private Static`
+---@field _isStdOutRedirected System.Runtime.CompilerServices.StrongBox*1System*Boolean
+---`Field Private Static`
+---@field _isStdErrRedirected System.Runtime.CompilerServices.StrongBox*1System*Boolean
+---`Getter Public Static`
+---@field In System.IO.TextReader
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field InputEncoding System.Text.Encoding
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field OutputEncoding System.Text.Encoding
+---`Getter Public Static`
+---@field KeyAvailable System.Boolean
+---`Getter Public Static`
+---@field Out System.IO.TextWriter
+---`Getter Public Static`
+---@field Error System.IO.TextWriter
+---`Getter Public Static`
+---@field IsInputRedirected System.Boolean
+---`Getter Public Static`
+---@field IsOutputRedirected System.Boolean
+---`Getter Public Static`
+---@field IsErrorRedirected System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorSize System.Int32
+---`Getter Public Static`
+---@field NumberLock System.Boolean
+---`Getter Public Static`
+---@field CapsLock System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BackgroundColor System.ConsoleColor
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field ForegroundColor System.ConsoleColor
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BufferWidth System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BufferHeight System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowLeft System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowTop System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowWidth System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field WindowHeight System.Int32
+---`Getter Public Static`
+---@field LargestWindowWidth System.Int32
+---`Getter Public Static`
+---@field LargestWindowHeight System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorVisible System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorLeft System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field CursorTop System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Title System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field TreatControlCAsInput System.Boolean
+_G['System']['Console'] = {}
+
+---`Method Public Static`
+---@overload fun(format:System.String, arg0:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object)
+---@overload fun(format:System.String, ...:System.Object)
+---@overload fun()
+---@overload fun(value:System.Boolean)
+---@overload fun(value:System.Char)
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]))
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]), index:System.Int32, count:System.Int32)
+---@overload fun(value:System.Decimal)
+---@overload fun(value:System.Double)
+---@overload fun(value:System.Single)
+---@overload fun(value:System.Int32)
+---@overload fun(value:System.UInt32)
+---@overload fun(value:System.Int64)
+---@overload fun(value:System.UInt64)
+---@overload fun(value:System.Object)
+---@param value System.String
+_G['System']['Console'].WriteLine = function(value) end
+
+---`Method Public Static`
+---@overload fun(format:System.String, arg0:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object)
+---@overload fun(format:System.String, arg0:System.Object, arg1:System.Object, arg2:System.Object)
+---@overload fun(format:System.String, ...:System.Object)
+---@overload fun(value:System.Boolean)
+---@overload fun(value:System.Char)
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]))
+---@overload fun(buffer:(System.Char-arr)|(System.Char[]), index:System.Int32, count:System.Int32)
+---@overload fun(value:System.Double)
+---@overload fun(value:System.Decimal)
+---@overload fun(value:System.Single)
+---@overload fun(value:System.Int32)
+---@overload fun(value:System.UInt32)
+---@overload fun(value:System.Int64)
+---@overload fun(value:System.UInt64)
+---@overload fun(value:System.Object)
+---@param value System.String
+_G['System']['Console'].Write = function(value) end
+
+---`Method Private Static`
+---@param ctx System.Runtime.InteropServices.PosixSignalContext
+_G['System']['Console'].HandlePosixSignal = function(ctx) end
+
+---`Method Public Static`
+---@overload fun():(System.ConsoleKeyInfo)
+---@param intercept System.Boolean
+---@return System.ConsoleKeyInfo
+_G['System']['Console'].ReadKey = function(intercept) end
+
+---`Method Private Static`
+---@param outputStream System.IO.Stream
+---@return System.IO.TextWriter
+_G['System']['Console'].CreateOutputWriter = function(outputStream) end
+
+---`Method Public Static`
+_G['System']['Console'].ResetColor = function() end
+
+---`Method Public Static`
+---@param width System.Int32
+---@param height System.Int32
+_G['System']['Console'].SetBufferSize = function(width, height) end
+
+---`Method Public Static`
+---@param left System.Int32
+---@param top System.Int32
+_G['System']['Console'].SetWindowPosition = function(left, top) end
+
+---`Method Public Static`
+---@param width System.Int32
+---@param height System.Int32
+_G['System']['Console'].SetWindowSize = function(width, height) end
+
+---`Method Public Static`
+---@return System.ValueTuple*1System*Int32*1System*Int32
+_G['System']['Console'].GetCursorPosition = function() end
+
+---`Method Public Static`
+---@overload fun()
+---@param frequency System.Int32
+---@param duration System.Int32
+_G['System']['Console'].Beep = function(frequency, duration) end
+
+---`Method Public Static`
+---@overload fun(sourceLeft:System.Int32, sourceTop:System.Int32, sourceWidth:System.Int32, sourceHeight:System.Int32, targetLeft:System.Int32, targetTop:System.Int32)
+---@param sourceLeft System.Int32
+---@param sourceTop System.Int32
+---@param sourceWidth System.Int32
+---@param sourceHeight System.Int32
+---@param targetLeft System.Int32
+---@param targetTop System.Int32
+---@param sourceChar System.Char
+---@param sourceForeColor System.ConsoleColor
+---@param sourceBackColor System.ConsoleColor
+_G['System']['Console'].MoveBufferArea = function(sourceLeft, sourceTop, sourceWidth, sourceHeight, targetLeft, targetTop, sourceChar, sourceForeColor, sourceBackColor) end
+
+---`Method Public Static`
+_G['System']['Console'].Clear = function() end
+
+---`Method Public Static`
+---@param left System.Int32
+---@param top System.Int32
+_G['System']['Console'].SetCursorPosition = function(left, top) end
+
+---`Method Public Static`
+---@overload fun():(System.IO.Stream)
+---@param bufferSize System.Int32
+---@return System.IO.Stream
+_G['System']['Console'].OpenStandardInput = function(bufferSize) end
+
+---`Method Public Static`
+---@overload fun():(System.IO.Stream)
+---@param bufferSize System.Int32
+---@return System.IO.Stream
+_G['System']['Console'].OpenStandardOutput = function(bufferSize) end
+
+---`Method Public Static`
+---@overload fun():(System.IO.Stream)
+---@param bufferSize System.Int32
+---@return System.IO.Stream
+_G['System']['Console'].OpenStandardError = function(bufferSize) end
+
+---`Method Public Static`
+---@param newIn System.IO.TextReader
+_G['System']['Console'].SetIn = function(newIn) end
+
+---`Method Public Static`
+---@param newOut System.IO.TextWriter
+_G['System']['Console'].SetOut = function(newOut) end
+
+---`Method Public Static`
+---@param newError System.IO.TextWriter
+_G['System']['Console'].SetError = function(newError) end
+
+---`Method Private Static`
+---@param obj System.Object
+---@param paramName System.String
+_G['System']['Console'].CheckNonNull = function(obj, paramName) end
+
+---`Method Public Static`
+---@return System.Int32
+_G['System']['Console'].Read = function() end
+
+---`Method Public Static`
+---@return System.String
+_G['System']['Console'].ReadLine = function() end
+
+---`Constructor Private Static`
+---@return System.Console
+_G['System']['Console'] = function() end
+
+---`Constructor Private Static`
+---@return System.Console
+_G['System']['Console'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9670D638.lua b/Meta/Types/server/_00007FFD9670D638.lua
new file mode 100644
index 0000000..0c35b2a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9670D638.lua
@@ -0,0 +1,373 @@
+---@meta
+---@class Microsoft.Xna.Framework.Matrix : System.ValueType, {[System.Int32]:System.Single}
+---@operator add(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator div(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator div(System.Single):Microsoft.Xna.Framework.Matrix
+---@operator mul(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator mul(System.Single):Microsoft.Xna.Framework.Matrix
+---@operator sub(Microsoft.Xna.Framework.Matrix):Microsoft.Xna.Framework.Matrix
+---@operator unm:Microsoft.Xna.Framework.Matrix
+---`Field Public Instance`
+---@field M11 System.Single
+---`Field Public Instance`
+---@field M12 System.Single
+---`Field Public Instance`
+---@field M13 System.Single
+---`Field Public Instance`
+---@field M14 System.Single
+---`Field Public Instance`
+---@field M21 System.Single
+---`Field Public Instance`
+---@field M22 System.Single
+---`Field Public Instance`
+---@field M23 System.Single
+---`Field Public Instance`
+---@field M24 System.Single
+---`Field Public Instance`
+---@field M31 System.Single
+---`Field Public Instance`
+---@field M32 System.Single
+---`Field Public Instance`
+---@field M33 System.Single
+---`Field Public Instance`
+---@field M34 System.Single
+---`Field Public Instance`
+---@field M41 System.Single
+---`Field Public Instance`
+---@field M42 System.Single
+---`Field Public Instance`
+---@field M43 System.Single
+---`Field Public Instance`
+---@field M44 System.Single
+---`Field Private Static`
+---@field identity Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Backward Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Down Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Forward Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Identity Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Left Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Right Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Translation Microsoft.Xna.Framework.Vector3
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Up Microsoft.Xna.Framework.Vector3
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Matrix'] = {}
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix-ref, matrix2:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, scaleFactor:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix-ref, scaleFactor:System.Single, result:Microsoft.Xna.Framework.Matrix-ref)
+---@param matrix1 Microsoft.Xna.Framework.Matrix
+---@param matrix2 Microsoft.Xna.Framework.Matrix
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'].Multiply = function(matrix1, matrix2) end
+
+---`Method Public Static`
+---@param matrix Microsoft.Xna.Framework.Matrix
+---@return (System.Single-arr)|(System.Single[])
+_G['Matrix'].ToFloatArray = function(matrix) end
+
+---`Method Public Static`
+---@overload fun(matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Negate = function(matrix, result) end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param matrix2 Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Subtract = function(matrix1, matrix2, result) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Matrix'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Transpose = function(matrix, result) end
+
+---`Method Private Static`
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param major System.Single-ref
+---@param minor1 System.Single-ref
+---@param minor2 System.Single-ref
+---@param minor3 System.Single-ref
+---@param minor4 System.Single-ref
+---@param minor5 System.Single-ref
+---@param minor6 System.Single-ref
+---@param minor7 System.Single-ref
+---@param minor8 System.Single-ref
+---@param minor9 System.Single-ref
+---@param minor10 System.Single-ref
+---@param minor11 System.Single-ref
+---@param minor12 System.Single-ref
+_G['Matrix'].FindDeterminants = function(matrix, major, minor1, minor2, minor3, minor4, minor5, minor6, minor7, minor8, minor9, minor10, minor11, minor12) end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param matrix2 Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Add = function(matrix1, matrix2, result) end
+
+---`Method Public Static`
+---@overload fun(objectPosition:Microsoft.Xna.Framework.Vector3, cameraPosition:Microsoft.Xna.Framework.Vector3, cameraUpVector:Microsoft.Xna.Framework.Vector3, cameraForwardVector:System.Nullable*1Microsoft*Xna*Framework*Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param objectPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraUpVector Microsoft.Xna.Framework.Vector3-ref
+---@param cameraForwardVector System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateBillboard = function(objectPosition, cameraPosition, cameraUpVector, cameraForwardVector, result) end
+
+---`Method Public Static`
+---@overload fun(objectPosition:Microsoft.Xna.Framework.Vector3, cameraPosition:Microsoft.Xna.Framework.Vector3, rotateAxis:Microsoft.Xna.Framework.Vector3, cameraForwardVector:System.Nullable*1Microsoft*Xna*Framework*Vector3, objectForwardVector:System.Nullable*1Microsoft*Xna*Framework*Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param objectPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraPosition Microsoft.Xna.Framework.Vector3-ref
+---@param rotateAxis Microsoft.Xna.Framework.Vector3-ref
+---@param cameraForwardVector System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param objectForwardVector System.Nullable*1Microsoft*Xna*Framework*Vector3
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateConstrainedBillboard = function(objectPosition, cameraPosition, rotateAxis, cameraForwardVector, objectForwardVector, result) end
+
+---`Method Public Static`
+---@overload fun(axis:Microsoft.Xna.Framework.Vector3, angle:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param axis Microsoft.Xna.Framework.Vector3-ref
+---@param angle System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateFromAxisAngle = function(axis, angle, result) end
+
+---`Method Public Static`
+---@overload fun(quaternion:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Matrix)
+---@param quaternion Microsoft.Xna.Framework.Quaternion-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateFromQuaternion = function(quaternion, result) end
+
+---`Method Public Static`
+---@overload fun(yaw:System.Single, pitch:System.Single, roll:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param yaw System.Single
+---@param pitch System.Single
+---@param roll System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateFromYawPitchRoll = function(yaw, pitch, roll, result) end
+
+---`Method Public Static`
+---@overload fun(cameraPosition:Microsoft.Xna.Framework.Vector3, cameraTarget:Microsoft.Xna.Framework.Vector3, cameraUpVector:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param cameraPosition Microsoft.Xna.Framework.Vector3-ref
+---@param cameraTarget Microsoft.Xna.Framework.Vector3-ref
+---@param cameraUpVector Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateLookAt = function(cameraPosition, cameraTarget, cameraUpVector, result) end
+
+---`Method Public Static`
+---@overload fun(width:System.Single, height:System.Single, zNearPlane:System.Single, zFarPlane:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param width System.Single
+---@param height System.Single
+---@param zNearPlane System.Single
+---@param zFarPlane System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateOrthographic = function(width, height, zNearPlane, zFarPlane, result) end
+
+---`Method Public Static`
+---@overload fun(left:System.Single, right:System.Single, bottom:System.Single, top:System.Single, zNearPlane:System.Single, zFarPlane:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(viewingVolume:Microsoft.Xna.Framework.Rectangle, zNearPlane:System.Single, zFarPlane:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param left System.Single
+---@param right System.Single
+---@param bottom System.Single
+---@param top System.Single
+---@param zNearPlane System.Single
+---@param zFarPlane System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateOrthographicOffCenter = function(left, right, bottom, top, zNearPlane, zFarPlane, result) end
+
+---`Method Public Static`
+---@overload fun(width:System.Single, height:System.Single, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param width System.Single
+---@param height System.Single
+---@param nearPlaneDistance System.Single
+---@param farPlaneDistance System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreatePerspective = function(width, height, nearPlaneDistance, farPlaneDistance, result) end
+
+---`Method Public Static`
+---@overload fun(fieldOfView:System.Single, aspectRatio:System.Single, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param fieldOfView System.Single
+---@param aspectRatio System.Single
+---@param nearPlaneDistance System.Single
+---@param farPlaneDistance System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreatePerspectiveFieldOfView = function(fieldOfView, aspectRatio, nearPlaneDistance, farPlaneDistance, result) end
+
+---`Method Public Static`
+---@overload fun(left:System.Single, right:System.Single, bottom:System.Single, top:System.Single, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(viewingVolume:Microsoft.Xna.Framework.Rectangle, nearPlaneDistance:System.Single, farPlaneDistance:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param left System.Single
+---@param right System.Single
+---@param bottom System.Single
+---@param top System.Single
+---@param nearPlaneDistance System.Single
+---@param farPlaneDistance System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreatePerspectiveOffCenter = function(left, right, bottom, top, nearPlaneDistance, farPlaneDistance, result) end
+
+---`Method Public Static`
+---@overload fun(radians:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param radians System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateRotationX = function(radians, result) end
+
+---`Method Public Static`
+---@overload fun(radians:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param radians System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateRotationY = function(radians, result) end
+
+---`Method Public Static`
+---@overload fun(radians:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param radians System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateRotationZ = function(radians, result) end
+
+---`Method Public Static`
+---@overload fun(scale:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(scale:System.Single, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(xScale:System.Single, yScale:System.Single, zScale:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(xScale:System.Single, yScale:System.Single, zScale:System.Single, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(scales:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param scales Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateScale = function(scales, result) end
+
+---`Method Public Static`
+---@overload fun(lightDirection:Microsoft.Xna.Framework.Vector3, plane:Microsoft.Xna.Framework.Plane):(Microsoft.Xna.Framework.Matrix)
+---@param lightDirection Microsoft.Xna.Framework.Vector3-ref
+---@param plane Microsoft.Xna.Framework.Plane-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateShadow = function(lightDirection, plane, result) end
+
+---`Method Public Static`
+---@overload fun(xPosition:System.Single, yPosition:System.Single, zPosition:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(position:Microsoft.Xna.Framework.Vector3-ref, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(position:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param xPosition System.Single
+---@param yPosition System.Single
+---@param zPosition System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateTranslation = function(xPosition, yPosition, zPosition, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Plane):(Microsoft.Xna.Framework.Matrix)
+---@param value Microsoft.Xna.Framework.Plane-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateReflection = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector3, forward:Microsoft.Xna.Framework.Vector3, up:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Matrix)
+---@param position Microsoft.Xna.Framework.Vector3-ref
+---@param forward Microsoft.Xna.Framework.Vector3-ref
+---@param up Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].CreateWorld = function(position, forward, up, result) end
+
+---`Method Public Instance`
+---@param scale Microsoft.Xna.Framework.Vector3-ref
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param translation Microsoft.Xna.Framework.Vector3-ref
+---@return System.Boolean
+_G['Matrix'].Decompose = function(scale, rotation, translation) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Matrix'].Determinant = function() end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix-ref, matrix2:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Matrix-ref)
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, divider:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param divider System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Divide = function(matrix1, divider, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(other:Microsoft.Xna.Framework.Matrix):(System.Boolean)
+---@param obj System.Object
+---@return System.Boolean
+_G['Matrix'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Matrix'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Matrix)
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Invert = function(matrix, result) end
+
+---`Method Public Static`
+---@overload fun(matrix1:Microsoft.Xna.Framework.Matrix, matrix2:Microsoft.Xna.Framework.Matrix, amount:System.Single):(Microsoft.Xna.Framework.Matrix)
+---@param matrix1 Microsoft.Xna.Framework.Matrix-ref
+---@param matrix2 Microsoft.Xna.Framework.Matrix-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Matrix-ref
+_G['Matrix'].Lerp = function(matrix1, matrix2, amount, result) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'] = function(row1, row2, row3, row4) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'].__new = function(row1, row2, row3, row4) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'] = function(row1, row2, row3, row4) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Matrix
+---@overload fun(m11:System.Single, m12:System.Single, m13:System.Single, m14:System.Single, m21:System.Single, m22:System.Single, m23:System.Single, m24:System.Single, m31:System.Single, m32:System.Single, m33:System.Single, m34:System.Single, m41:System.Single, m42:System.Single, m43:System.Single, m44:System.Single):Microsoft.Xna.Framework.Matrix
+---@param row1 Microsoft.Xna.Framework.Vector4
+---@param row2 Microsoft.Xna.Framework.Vector4
+---@param row3 Microsoft.Xna.Framework.Vector4
+---@param row4 Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Matrix
+_G['Matrix'].__new = function(row1, row2, row3, row4) end
+
diff --git a/Meta/Types/server/_00007FFD9670DF90.lua b/Meta/Types/server/_00007FFD9670DF90.lua
new file mode 100644
index 0000000..87b4fc2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9670DF90.lua
@@ -0,0 +1,261 @@
+---@meta
+---@class Microsoft.Xna.Framework.Vector2 : System.ValueType
+---@operator unm:Microsoft.Xna.Framework.Vector2
+---@operator add(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator sub(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator mul(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator mul(System.Single):Microsoft.Xna.Framework.Vector2
+---@operator div(Microsoft.Xna.Framework.Vector2):Microsoft.Xna.Framework.Vector2
+---@operator div(System.Single):Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field X System.Single
+---`Field Public Instance`
+---@field Y System.Single
+---`Field Private Static`
+---@field zeroVector Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field unitVector Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field unitXVector Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field unitYVector Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field One Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field UnitX Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field UnitY Microsoft.Xna.Framework.Vector2
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Vector2'] = {}
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Add = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, value3:Microsoft.Xna.Framework.Vector2, amount1:System.Single, amount2:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param value3 Microsoft.Xna.Framework.Vector2-ref
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Barycentric = function(value1, value2, value3, amount1, amount2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, value3:Microsoft.Xna.Framework.Vector2, value4:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param value3 Microsoft.Xna.Framework.Vector2-ref
+---@param value4 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].CatmullRom = function(value1, value2, value3, value4, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, min:Microsoft.Xna.Framework.Vector2, max:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param min Microsoft.Xna.Framework.Vector2-ref
+---@param max Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Clamp = function(value1, min, max, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result System.Single-ref
+_G['Vector2'].Distance = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result System.Single-ref
+_G['Vector2'].DistanceSquared = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2-ref, value2:Microsoft.Xna.Framework.Vector2-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, divider:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param divider System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Divide = function(value1, divider, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result System.Single-ref
+_G['Vector2'].Dot = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Vector2'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Vector2'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, tangent1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, tangent2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param tangent1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param tangent2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Hermite = function(value1, tangent1, value2, tangent2, amount, result) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector2'].Length = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector2'].LengthSquared = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Lerp = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].LerpPrecise = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Max = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Min = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2-ref, value2:Microsoft.Xna.Framework.Vector2-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, scaleFactor:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param scaleFactor System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Multiply = function(value1, scaleFactor, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Negate = function(value, result) end
+
+---`Method Public Instance`
+_G['Vector2'].Normalize = function() end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Normalize = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector2, normal:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param vector Microsoft.Xna.Framework.Vector2-ref
+---@param normal Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Reflect = function(vector, normal, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].SmoothStep = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector2, value2:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param value1 Microsoft.Xna.Framework.Vector2-ref
+---@param value2 Microsoft.Xna.Framework.Vector2-ref
+---@param result Microsoft.Xna.Framework.Vector2-ref
+_G['Vector2'].Subtract = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Vector2'].ToString = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Point
+_G['Vector2'].ToPoint = function() end
+
+---`Method Public Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(position:Microsoft.Xna.Framework.Vector2-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), sourceIndex:System.Int32, rotation:Microsoft.Xna.Framework.Quaternion-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]))
+---@param sourceArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['Vector2'].Transform = function(sourceArray, rotation, destinationArray) end
+
+---`Method Public Static`
+---@overload fun(normal:Microsoft.Xna.Framework.Vector2, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(normal:Microsoft.Xna.Framework.Vector2-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), destinationIndex:System.Int32, length:System.Int32)
+---@param sourceArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['Vector2'].TransformNormal = function(sourceArray, matrix, destinationArray) end
+
+---`Method Public Instance`
+---@param x System.Single-ref
+---@param y System.Single-ref
+_G['Vector2'].Deconstruct = function(x, y) end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Single, y:System.Single):Microsoft.Xna.Framework.Vector2
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Vector2'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9670EA60.lua b/Meta/Types/server/_00007FFD9670EA60.lua
new file mode 100644
index 0000000..0008dc3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9670EA60.lua
@@ -0,0 +1,307 @@
+---@meta
+---@class Microsoft.Xna.Framework.Vector3 : System.ValueType
+---@operator unm:Microsoft.Xna.Framework.Vector3
+---@operator sub(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator mul(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator mul(System.Single):Microsoft.Xna.Framework.Vector3
+---@operator div(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---@operator div(System.Single):Microsoft.Xna.Framework.Vector3
+---@operator add(Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Vector3
+---`Field Public Instance`
+---@field X System.Single
+---`Field Public Instance`
+---@field Y System.Single
+---`Field Public Instance`
+---@field Z System.Single
+---`Field Private Static`
+---@field zero Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field one Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field unitX Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field unitY Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field unitZ Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field up Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field down Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field right Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field left Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field forward Microsoft.Xna.Framework.Vector3
+---`Field Private Static`
+---@field backward Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field One Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field UnitX Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field UnitY Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field UnitZ Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Up Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Down Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Right Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Left Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Forward Microsoft.Xna.Framework.Vector3
+---`Getter Public Static`
+---@field Backward Microsoft.Xna.Framework.Vector3
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Vector3'] = {}
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Add = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, value3:Microsoft.Xna.Framework.Vector3, amount1:System.Single, amount2:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param value3 Microsoft.Xna.Framework.Vector3-ref
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Barycentric = function(value1, value2, value3, amount1, amount2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, value3:Microsoft.Xna.Framework.Vector3, value4:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param value3 Microsoft.Xna.Framework.Vector3-ref
+---@param value4 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].CatmullRom = function(value1, value2, value3, value4, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, min:Microsoft.Xna.Framework.Vector3, max:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param min Microsoft.Xna.Framework.Vector3-ref
+---@param max Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Clamp = function(value1, min, max, result) end
+
+---`Method Public Static`
+---@overload fun(vector1:Microsoft.Xna.Framework.Vector3, vector2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param vector1 Microsoft.Xna.Framework.Vector3-ref
+---@param vector2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Cross = function(vector1, vector2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result System.Single-ref
+_G['Vector3'].Distance = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result System.Single-ref
+_G['Vector3'].DistanceSquared = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, divider:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3-ref, divider:System.Single, result:Microsoft.Xna.Framework.Vector3-ref)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Divide = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result System.Single-ref
+_G['Vector3'].Dot = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Vector3
+---@return System.Boolean
+_G['Vector3'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Vector3'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, tangent1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, tangent2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param tangent1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param tangent2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Hermite = function(value1, tangent1, value2, tangent2, amount, result) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector3'].Length = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector3'].LengthSquared = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Lerp = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].LerpPrecise = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Max = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Min = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, scaleFactor:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3-ref, scaleFactor:System.Single, result:Microsoft.Xna.Framework.Vector3-ref)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Multiply = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Negate = function(value, result) end
+
+---`Method Public Instance`
+_G['Vector3'].Normalize = function() end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Normalize = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector3, normal:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param vector Microsoft.Xna.Framework.Vector3-ref
+---@param normal Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Reflect = function(vector, normal, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3, amount:System.Single):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].SmoothStep = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector3, value2:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@param value1 Microsoft.Xna.Framework.Vector3-ref
+---@param value2 Microsoft.Xna.Framework.Vector3-ref
+---@param result Microsoft.Xna.Framework.Vector3-ref
+_G['Vector3'].Subtract = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Vector3'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector3, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(position:Microsoft.Xna.Framework.Vector3-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector3-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector3-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), sourceIndex:System.Int32, rotation:Microsoft.Xna.Framework.Quaternion-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]))
+---@param sourceArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+_G['Vector3'].Transform = function(sourceArray, rotation, destinationArray) end
+
+---`Method Public Static`
+---@overload fun(normal:Microsoft.Xna.Framework.Vector3, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(normal:Microsoft.Xna.Framework.Vector3-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector3-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[]), destinationIndex:System.Int32, length:System.Int32)
+---@param sourceArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+---@param matrix Microsoft.Xna.Framework.Matrix-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector3-arr)|(Microsoft.Xna.Framework.Vector3[])
+_G['Vector3'].TransformNormal = function(sourceArray, matrix, destinationArray) end
+
+---`Method Public Instance`
+---@param x System.Single-ref
+---@param y System.Single-ref
+---@param z System.Single-ref
+_G['Vector3'].Deconstruct = function(x, y, z) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'] = function(value, z) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'].__new = function(value, z) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'] = function(value, z) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector3
+---@overload fun(x:System.Single, y:System.Single, z:System.Single):Microsoft.Xna.Framework.Vector3
+---@overload fun(value:System.Single):Microsoft.Xna.Framework.Vector3
+---@param value Microsoft.Xna.Framework.Vector2
+---@param z System.Single
+---@return Microsoft.Xna.Framework.Vector3
+_G['Vector3'].__new = function(value, z) end
+
diff --git a/Meta/Types/server/_00007FFD9670F490.lua b/Meta/Types/server/_00007FFD9670F490.lua
new file mode 100644
index 0000000..c8fb1f5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9670F490.lua
@@ -0,0 +1,275 @@
+---@meta
+---@class Microsoft.Xna.Framework.Vector4 : System.ValueType
+---@operator div(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator div(System.Single):Microsoft.Xna.Framework.Vector4
+---@operator unm:Microsoft.Xna.Framework.Vector4
+---@operator add(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator sub(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator mul(Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Vector4
+---@operator mul(System.Single):Microsoft.Xna.Framework.Vector4
+---`Field Public Instance`
+---@field X System.Single
+---`Field Public Instance`
+---@field Y System.Single
+---`Field Public Instance`
+---@field Z System.Single
+---`Field Public Instance`
+---@field W System.Single
+---`Field Private Static`
+---@field zero Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field one Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitX Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitY Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitZ Microsoft.Xna.Framework.Vector4
+---`Field Private Static`
+---@field unitW Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field One Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitX Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitY Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitZ Microsoft.Xna.Framework.Vector4
+---`Getter Public Static`
+---@field UnitW Microsoft.Xna.Framework.Vector4
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Vector4'] = {}
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Add = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, value3:Microsoft.Xna.Framework.Vector4, amount1:System.Single, amount2:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param value3 Microsoft.Xna.Framework.Vector4-ref
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Barycentric = function(value1, value2, value3, amount1, amount2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, value3:Microsoft.Xna.Framework.Vector4, value4:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param value3 Microsoft.Xna.Framework.Vector4-ref
+---@param value4 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].CatmullRom = function(value1, value2, value3, value4, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, min:Microsoft.Xna.Framework.Vector4, max:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param min Microsoft.Xna.Framework.Vector4-ref
+---@param max Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Clamp = function(value1, min, max, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result System.Single-ref
+_G['Vector4'].Distance = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result System.Single-ref
+_G['Vector4'].DistanceSquared = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, divider:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4-ref, divider:System.Single, result:Microsoft.Xna.Framework.Vector4-ref)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Divide = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(System.Single)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result System.Single-ref
+_G['Vector4'].Dot = function(value1, value2, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Vector4
+---@return System.Boolean
+_G['Vector4'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Vector4'].GetHashCode = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, tangent1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, tangent2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param tangent1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param tangent2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Hermite = function(value1, tangent1, value2, tangent2, amount, result) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector4'].Length = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Vector4'].LengthSquared = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Lerp = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].LerpPrecise = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Max = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Min = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, scaleFactor:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4-ref, scaleFactor:System.Single, result:Microsoft.Xna.Framework.Vector4-ref)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Multiply = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Negate = function(value, result) end
+
+---`Method Public Instance`
+_G['Vector4'].Normalize = function() end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Normalize = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4, amount:System.Single):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param amount System.Single
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].SmoothStep = function(value1, value2, amount, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Vector4, value2:Microsoft.Xna.Framework.Vector4):(Microsoft.Xna.Framework.Vector4)
+---@param value1 Microsoft.Xna.Framework.Vector4-ref
+---@param value2 Microsoft.Xna.Framework.Vector4-ref
+---@param result Microsoft.Xna.Framework.Vector4-ref
+_G['Vector4'].Subtract = function(value1, value2, result) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4, matrix:Microsoft.Xna.Framework.Matrix):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4, rotation:Microsoft.Xna.Framework.Quaternion):(Microsoft.Xna.Framework.Vector4)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector3-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4-ref, matrix:Microsoft.Xna.Framework.Matrix-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector4-ref, rotation:Microsoft.Xna.Framework.Quaternion-ref, result:Microsoft.Xna.Framework.Vector4-ref)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), sourceIndex:System.Int32, matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), sourceIndex:System.Int32, rotation:Microsoft.Xna.Framework.Quaternion-ref, destinationArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), destinationIndex:System.Int32, length:System.Int32)
+---@overload fun(sourceArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]), matrix:Microsoft.Xna.Framework.Matrix-ref, destinationArray:(Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[]))
+---@param sourceArray (Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[])
+---@param rotation Microsoft.Xna.Framework.Quaternion-ref
+---@param destinationArray (Microsoft.Xna.Framework.Vector4-arr)|(Microsoft.Xna.Framework.Vector4[])
+_G['Vector4'].Transform = function(sourceArray, rotation, destinationArray) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Vector4'].ToString = function() end
+
+---`Method Public Instance`
+---@param x System.Single-ref
+---@param y System.Single-ref
+---@param z System.Single-ref
+---@param w System.Single-ref
+_G['Vector4'].Deconstruct = function(x, y, z, w) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'] = function(value) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'].__new = function(value) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'] = function(value) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Vector4
+---@overload fun(x:System.Single, y:System.Single, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, z:System.Single, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@overload fun(value:Microsoft.Xna.Framework.Vector3, w:System.Single):Microsoft.Xna.Framework.Vector4
+---@param value System.Single
+---@return Microsoft.Xna.Framework.Vector4
+_G['Vector4'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD96731E88.lua b/Meta/Types/server/_00007FFD96731E88.lua
new file mode 100644
index 0000000..0a05786
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96731E88.lua
@@ -0,0 +1,554 @@
+---@meta
+---@class Microsoft.Xna.Framework.Color : System.ValueType
+---@operator mul(System.Single):Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field _packedValue System.UInt32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field B System.Byte
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field G System.Byte
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field R System.Byte
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field A System.Byte
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field TransparentBlack Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Transparent Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field AliceBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field AntiqueWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Aqua Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Aquamarine Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Azure Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Beige Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Bisque Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Black Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BlanchedAlmond Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Blue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BlueViolet Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Brown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field BurlyWood Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field CadetBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Chartreuse Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Chocolate Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Coral Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field CornflowerBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Cornsilk Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Crimson Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Cyan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkCyan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkGoldenrod Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkKhaki Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkMagenta Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkOliveGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkOrange Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkOrchid Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSalmon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSlateBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkSlateGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkTurquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DarkViolet Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DeepPink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DeepSkyBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DimGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field DodgerBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Firebrick Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field FloralWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field ForestGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Fuchsia Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Gainsboro Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GhostWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Gold Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Goldenrod Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Gray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Green Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GreenYellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Honeydew Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field HotPink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field IndianRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Indigo Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Ivory Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Khaki Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Lavender Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LavenderBlush Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LawnGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LemonChiffon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightCoral Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightCyan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightGoldenrodYellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightPink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSalmon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSkyBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSlateGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightSteelBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LightYellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Lime Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LimeGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Linen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Magenta Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Maroon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumAquamarine Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumOrchid Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumPurple Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumSeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumSlateBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumSpringGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumTurquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MediumVioletRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MidnightBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MintCream Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MistyRose Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Moccasin Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MonoGameOrange Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field NavajoWhite Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Navy Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field OldLace Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Olive Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field OliveDrab Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Orange Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field OrangeRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Orchid Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleGoldenrod Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleTurquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PaleVioletRed Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PapayaWhip Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PeachPuff Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Peru Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Pink Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Plum Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field PowderBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Purple Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Red Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field RosyBrown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field RoyalBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SaddleBrown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Salmon Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SandyBrown Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SeaGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SeaShell Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Sienna Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Silver Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SkyBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SlateBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SlateGray Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Snow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SpringGreen Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SteelBlue Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Tan Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Teal Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Thistle Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Tomato Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Turquoise Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Violet Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Wheat Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field White Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field WhiteSmoke Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Yellow Microsoft.Xna.Framework.Color
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field YellowGreen Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PackedValue System.UInt32
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Color'] = {}
+
+---`Method Public Static`
+---@param value1 Microsoft.Xna.Framework.Color
+---@param value2 Microsoft.Xna.Framework.Color
+---@param amount System.Single
+---@return Microsoft.Xna.Framework.Color
+_G['Color'].Lerp = function(value1, value2, amount) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector3
+_G['Color'].ToVector3 = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector4
+_G['Color'].ToVector4 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Color'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun(other:Microsoft.Xna.Framework.Color):(System.Boolean)
+---@param obj System.Object
+---@return System.Boolean
+_G['Color'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Color'].GetHashCode = function() end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'] = function(r, g, b, alpha) end
+
+---`Constructor Private Static`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'].__new = function(r, g, b, alpha) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'] = function(r, g, b, alpha) end
+
+---`Constructor Public Instance`
+---@overload fun():Microsoft.Xna.Framework.Color
+---@overload fun(packedValue:System.UInt32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector4):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Vector3):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(color:Microsoft.Xna.Framework.Color, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Single, g:System.Single, b:System.Single, alpha:System.Single):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32):Microsoft.Xna.Framework.Color
+---@overload fun(r:System.Int32, g:System.Int32, b:System.Int32, alpha:System.Int32):Microsoft.Xna.Framework.Color
+---@param r System.Byte
+---@param g System.Byte
+---@param b System.Byte
+---@param alpha System.Byte
+---@return Microsoft.Xna.Framework.Color
+_G['Color'].__new = function(r, g, b, alpha) end
+
diff --git a/Meta/Types/server/_00007FFD96732198.lua b/Meta/Types/server/_00007FFD96732198.lua
new file mode 100644
index 0000000..affd4cb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96732198.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Microsoft.Xna.Framework.Point : System.ValueType
+---@operator add(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---@operator sub(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---@operator mul(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---@operator div(Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field X System.Int32
+---`Field Public Instance`
+---@field Y System.Int32
+---`Field Private Static`
+---@field zeroPoint Microsoft.Xna.Framework.Point
+---`Getter Public Static`
+---@field Zero Microsoft.Xna.Framework.Point
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Point'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Point
+---@return System.Boolean
+_G['Point'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Point'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Point'].ToString = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Point'].ToVector2 = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32):Microsoft.Xna.Framework.Point
+---@overload fun(value:System.Int32):Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['Point'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96732738.lua b/Meta/Types/server/_00007FFD96732738.lua
new file mode 100644
index 0000000..8b8fce0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96732738.lua
@@ -0,0 +1,123 @@
+---@meta
+---@class Microsoft.Xna.Framework.Rectangle : System.ValueType
+---`Field Public Instance`
+---@field X System.Int32
+---`Field Public Instance`
+---@field Y System.Int32
+---`Field Public Instance`
+---@field Width System.Int32
+---`Field Public Instance`
+---@field Height System.Int32
+---`Field Private Static`
+---@field emptyRectangle Microsoft.Xna.Framework.Rectangle
+---`Getter Public Static`
+---@field Empty Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field Left System.Int32
+---`Getter Public Instance`
+---@field Right System.Int32
+---`Getter Public Instance`
+---@field Top System.Int32
+---`Getter Public Instance`
+---@field Bottom System.Int32
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Location Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Size Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Point
+---`Getter NonPublic Instance`
+---@field DebugDisplayString System.String
+_G['Rectangle'] = {}
+
+---`Method Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32):(System.Boolean)
+---@overload fun(x:System.Single, y:System.Single):(System.Boolean)
+---@overload fun(value:Microsoft.Xna.Framework.Point):(System.Boolean)
+---@overload fun(value:Microsoft.Xna.Framework.Point-ref, result:System.Boolean-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2):(System.Boolean)
+---@overload fun(value:Microsoft.Xna.Framework.Vector2-ref, result:System.Boolean-ref)
+---@overload fun(value:Microsoft.Xna.Framework.Rectangle):(System.Boolean)
+---@param value Microsoft.Xna.Framework.Rectangle-ref
+---@param result System.Boolean-ref
+_G['Rectangle'].Contains = function(value, result) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['Rectangle'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Rectangle'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@overload fun(horizontalAmount:System.Int32, verticalAmount:System.Int32)
+---@overload fun(horizontalAmount:System.Single, verticalAmount:System.Single)
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Rectangle'].Inflate = function(amount) end
+
+---`Method Public Instance`
+---@overload fun(value:Microsoft.Xna.Framework.Rectangle):(System.Boolean)
+---@param value Microsoft.Xna.Framework.Rectangle-ref
+---@param result System.Boolean-ref
+_G['Rectangle'].Intersects = function(value, result) end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Rectangle, value2:Microsoft.Xna.Framework.Rectangle):(Microsoft.Xna.Framework.Rectangle)
+---@param value1 Microsoft.Xna.Framework.Rectangle-ref
+---@param value2 Microsoft.Xna.Framework.Rectangle-ref
+---@param result Microsoft.Xna.Framework.Rectangle-ref
+_G['Rectangle'].Intersect = function(value1, value2, result) end
+
+---`Method Public Instance`
+---@overload fun(offsetX:System.Int32, offsetY:System.Int32)
+---@overload fun(offsetX:System.Single, offsetY:System.Single)
+---@overload fun(amount:Microsoft.Xna.Framework.Point)
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Rectangle'].Offset = function(amount) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Rectangle'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(value1:Microsoft.Xna.Framework.Rectangle, value2:Microsoft.Xna.Framework.Rectangle):(Microsoft.Xna.Framework.Rectangle)
+---@param value1 Microsoft.Xna.Framework.Rectangle-ref
+---@param value2 Microsoft.Xna.Framework.Rectangle-ref
+---@param result Microsoft.Xna.Framework.Rectangle-ref
+_G['Rectangle'].Union = function(value1, value2, result) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Point
+_G['Rectangle'].AddPoint = function(point) end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(x:System.Int32, y:System.Int32, width:System.Int32, height:System.Int32):Microsoft.Xna.Framework.Rectangle
+---@overload fun(location:Microsoft.Xna.Framework.Point, size:Microsoft.Xna.Framework.Point):Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Rectangle'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967328C8.lua b/Meta/Types/server/_00007FFD967328C8.lua
new file mode 100644
index 0000000..4b53f73
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967328C8.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaSByte : System.ValueType
+---`Field Public Instance`
+---@field Value System.SByte
+_G['SByte'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['SByte'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaSByte
+_G['SByte'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaSByte
+_G['SByte'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD96732A38.lua b/Meta/Types/server/_00007FFD96732A38.lua
new file mode 100644
index 0000000..df72ba0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96732A38.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaByte : System.ValueType
+---`Field Public Instance`
+---@field Value System.Byte
+_G['Byte'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Byte'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaByte
+_G['Byte'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaByte
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaByte
+_G['Byte'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD96732DD0.lua b/Meta/Types/server/_00007FFD96732DD0.lua
new file mode 100644
index 0000000..c00fb35
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96732DD0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.LuaInt16 : System.ValueType
+---`Field Public Instance`
+---@field Value System.Int16
+_G['Int16'] = {}
+_G['Short'] = _G['Int16']
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Int16'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt16
+_G['Int16'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt16
+_G['Int16'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD96732F40.lua b/Meta/Types/server/_00007FFD96732F40.lua
new file mode 100644
index 0000000..068dd10
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96732F40.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.LuaUInt16 : System.ValueType
+---`Field Public Instance`
+---@field Value System.UInt16
+_G['UInt16'] = {}
+_G['UShort'] = _G['UInt16']
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['UInt16'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt16
+_G['UInt16'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt16
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt16
+_G['UInt16'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD967330B0.lua b/Meta/Types/server/_00007FFD967330B0.lua
new file mode 100644
index 0000000..c6e4d39
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967330B0.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaInt32 : System.ValueType
+---`Field Public Instance`
+---@field Value System.Int32
+_G['Int32'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Int32'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt32
+_G['Int32'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt32
+_G['Int32'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD96733220.lua b/Meta/Types/server/_00007FFD96733220.lua
new file mode 100644
index 0000000..c8aa105
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96733220.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.LuaUInt32 : System.ValueType
+---`Field Public Instance`
+---@field Value System.UInt32
+_G['UInt32'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['UInt32'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt32
+_G['UInt32'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt32
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt32
+_G['UInt32'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD967333A8.lua b/Meta/Types/server/_00007FFD967333A8.lua
new file mode 100644
index 0000000..ded72c3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967333A8.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.LuaInt64 : System.ValueType
+---`Field Public Instance`
+---@field Value System.Int64
+_G['Int64'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Int64'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt64
+_G['Int64'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaInt64
+_G['Int64'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD96733530.lua b/Meta/Types/server/_00007FFD96733530.lua
new file mode 100644
index 0000000..9879e23
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96733530.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.LuaUInt64 : System.ValueType
+---`Field Public Instance`
+---@field Value System.UInt64
+_G['UInt64'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['UInt64'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaUInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt64
+_G['UInt64'] = function(v, radix) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaUInt64
+---@overload fun(lo:System.Double, hi:System.Double):Barotrauma.LuaUInt64
+---@param v System.String
+---@param radix? System.Int32
+---@return Barotrauma.LuaUInt64
+_G['UInt64'].__new = function(v, radix) end
+
diff --git a/Meta/Types/server/_00007FFD967336A0.lua b/Meta/Types/server/_00007FFD967336A0.lua
new file mode 100644
index 0000000..2249600
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967336A0.lua
@@ -0,0 +1,23 @@
+---@meta
+---@class Barotrauma.LuaSingle : System.ValueType
+---`Field Public Instance`
+---@field Value System.Single
+_G['Single'] = {}
+_G['Float'] = _G['Single']
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Single'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSingle
+---@param v System.String
+---@return Barotrauma.LuaSingle
+_G['Single'] = function(v) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaSingle
+---@param v System.String
+---@return Barotrauma.LuaSingle
+_G['Single'].__new = function(v) end
+
diff --git a/Meta/Types/server/_00007FFD96733810.lua b/Meta/Types/server/_00007FFD96733810.lua
new file mode 100644
index 0000000..f3dc61e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96733810.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.LuaDouble : System.ValueType
+---`Field Public Instance`
+---@field Value System.Double
+_G['Double'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Double'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaDouble
+---@param v System.String
+---@return Barotrauma.LuaDouble
+_G['Double'] = function(v) end
+
+---`Constructor Public Instance`
+---@overload fun(v:System.Double):Barotrauma.LuaDouble
+---@param v System.String
+---@return Barotrauma.LuaDouble
+_G['Double'].__new = function(v) end
+
diff --git a/Meta/Types/server/_00007FFD967339F0.lua b/Meta/Types/server/_00007FFD967339F0.lua
new file mode 100644
index 0000000..eaee808
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967339F0.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.LuaCsLogger : System.Object
+---`Field Public Static`
+---@field HideUserNames System.Boolean
+---`Field Private Static`
+---@field lockLog System.Boolean
+---`Field Public Static`
+---@field MessageLogger (Barotrauma.LuaCsMessageLogger)|(fun(message:System.String))
+---`Field Public Static`
+---@field ExceptionHandler (Barotrauma.LuaCsExceptionHandler)|(fun(ex:System.Exception, origin:Barotrauma.LuaCsMessageOrigin))
+---`Field Private Static`
+---@field LogPrefix System.String
+---`Field Private Static`
+---@field NetMaxLength System.Int32
+---`Field Private Static`
+---@field NetMaxMessages System.Int32
+_G['Logger'] = {}
+
+---`Method Public Static`
+---@param ex System.Exception
+---@param origin Barotrauma.LuaCsMessageOrigin
+_G['Logger'].HandleException = function(ex, origin) end
+
+---`Method Public Static`
+---@overload fun(message:System.String, origin:Barotrauma.LuaCsMessageOrigin)
+---@param message System.String
+_G['Logger'].LogError = function(message) end
+
+---`Method Public Static`
+---@param message System.String
+---@param serverColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param clientColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['Logger'].LogMessage = function(message, serverColor, clientColor) end
+
+---`Method Public Static`
+---@param message System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param messageType? Barotrauma.Networking.ServerLog.MessageType
+_G['Logger'].Log = function(message, color, messageType) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsLogger
+---@return Barotrauma.LuaCsLogger
+_G['Logger'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96733CD0.lua b/Meta/Types/server/_00007FFD96733CD0.lua
new file mode 100644
index 0000000..c5cff73
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96733CD0.lua
@@ -0,0 +1,138 @@
+---@meta
+---@class Barotrauma.LuaUserData : System.Object
+_G['LuaUserData'] = {}
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Type
+_G['LuaUserData'].GetType = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return MoonSharp.Interpreter.Interop.IUserDataDescriptor
+_G['LuaUserData'].RegisterType = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+_G['LuaUserData'].RegisterExtensionType = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Boolean
+_G['LuaUserData'].IsRegistered = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@param deleteHistory? System.Boolean
+_G['LuaUserData'].UnregisterType = function(typeName, deleteHistory) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@param ... System.String
+---@return MoonSharp.Interpreter.Interop.IUserDataDescriptor
+_G['LuaUserData'].RegisterGenericType = function(typeName, ...) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@param ... System.String
+_G['LuaUserData'].UnregisterGenericType = function(typeName, ...) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@param typeName System.String
+---@return System.Boolean
+_G['LuaUserData'].IsTargetType = function(obj, typeName) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@return System.String
+_G['LuaUserData'].TypeOf = function(obj) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Object
+_G['LuaUserData'].CreateStatic = function(typeName) end
+
+---`Method Public Static`
+---@param typeName System.String
+---@return System.Object
+_G['LuaUserData'].CreateEnumTable = function(typeName) end
+
+---`Method Private Static`
+---@param type System.Type
+---@param fieldName System.String
+---@return System.Reflection.FieldInfo
+_G['LuaUserData'].FindFieldRecursively = function(type, fieldName) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param fieldName System.String
+_G['LuaUserData'].MakeFieldAccessible = function(IUUD, fieldName) end
+
+---`Method Private Static`
+---@param type System.Type
+---@param methodName System.String
+---@param types? (System.Type-arr)|(System.Type[])
+---@return System.Reflection.MethodInfo
+_G['LuaUserData'].FindMethodRecursively = function(type, methodName, types) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param methodName System.String
+---@param parameters? (System.String-arr)|(System.String[])
+_G['LuaUserData'].MakeMethodAccessible = function(IUUD, methodName, parameters) end
+
+---`Method Private Static`
+---@param type System.Type
+---@param propertyName System.String
+---@return System.Reflection.PropertyInfo
+_G['LuaUserData'].FindPropertyRecursively = function(type, propertyName) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param propertyName System.String
+_G['LuaUserData'].MakePropertyAccessible = function(IUUD, propertyName) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param methodName System.String
+---@param luaKey__function System.Object
+_G['LuaUserData'].AddMethod = function(IUUD, methodName, luaKey__function) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param fieldName System.String
+---@param value MoonSharp.Interpreter.DynValue
+_G['LuaUserData'].AddField = function(IUUD, fieldName, value) end
+
+---`Method Public Static`
+---@param IUUD MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@param memberName System.String
+_G['LuaUserData'].RemoveMember = function(IUUD, memberName) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@param memberName System.String
+---@return System.Boolean
+_G['LuaUserData'].HasMember = function(obj, memberName) end
+
+---`Method Public Static`
+---@param scriptObject MoonSharp.Interpreter.DynValue
+---@param desiredTypeDescriptor MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaUserData'].CreateUserDataFromDescriptor = function(scriptObject, desiredTypeDescriptor) end
+
+---`Method Public Static`
+---@param scriptObject MoonSharp.Interpreter.DynValue
+---@param desiredType System.Type
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaUserData'].CreateUserDataFromType = function(scriptObject, desiredType) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaUserData
+_G['LuaUserData'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaUserData
+_G['LuaUserData'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96734698.lua b/Meta/Types/server/_00007FFD96734698.lua
new file mode 100644
index 0000000..4039a47
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96734698.lua
@@ -0,0 +1,284 @@
+---@meta
+---@class Barotrauma.LuaGame : System.Object
+---`Field Public Instance`
+---@field ForceVoice System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field ForceLocalVoice System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field Settings MoonSharp.Interpreter.DynValue
+---`Field Public Instance`
+---@field allowWifiChat System.Boolean
+---`Field Public Instance`
+---@field overrideTraitors System.Boolean
+---`Field Public Instance`
+---@field overrideRespawnSub System.Boolean
+---`Field Public Instance`
+---@field overrideSignalRadio System.Boolean
+---`Field Public Instance`
+---@field disableSpamFilter System.Boolean
+---`Field Public Instance`
+---@field disableDisconnectCharacter System.Boolean
+---`Field Public Instance`
+---@field enableControlHusk System.Boolean
+---`Field Public Instance`
+---@field UpdatePriorityItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field UpdatePriorityCharacters (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field luaAddedCommand (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+---`Getter Public Instance`
+---@field IsSingleplayer System.Boolean
+---`Getter Public Instance`
+---@field IsMultiplayer System.Boolean
+---`Getter Public Instance`
+---@field SaveFolder System.String
+---`Getter Public Instance`
+---@field Server Barotrauma.Networking.GameServer
+---`Getter Public Instance`
+---@field IsDedicated System.Boolean
+---`Getter Public Instance`
+---@field Paused System.Boolean
+---`Getter Public Instance`
+---@field ServerSettings Barotrauma.Networking.ServerSettings
+---`Getter Public Instance`
+---@field RespawnManager Barotrauma.Networking.RespawnManager
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MapEntityUpdateInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GapUpdateInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoweredUpdateInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterUpdateInterval System.Int32
+---`Getter Public Instance`
+---@field RoundStarted System.Boolean
+---`Getter Public Instance`
+---@field GameSession Barotrauma.GameSession
+---`Getter Public Instance`
+---@field NetLobbyScreen Barotrauma.NetLobbyScreen
+---`Getter Public Instance`
+---@field GameScreen Barotrauma.GameScreen
+---`Getter Public Instance`
+---@field World FarseerPhysics.Dynamics.World
+---`Getter Public Instance`
+---@field Peer Barotrauma.Networking.ServerPeer
+---`Getter Public Instance`
+---@field LuaAddedCommand (System.Collections.Generic.IEnumerable*1Barotrauma*DebugConsole*Command)|(fun():(Barotrauma.DebugConsole.Command))
+---`Getter Public Instance`
+---@field Commands (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+_G['Game'] = {}
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['Game'].AddPriorityItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['Game'].RemovePriorityItem = function(item) end
+
+---`Method Public Instance`
+_G['Game'].ClearPriorityItem = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Game'].AddPriorityCharacter = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Game'].RemovePriorityCharacter = function(character) end
+
+---`Method Public Instance`
+_G['Game'].ClearPriorityCharacter = function() end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].OverrideTraitors = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].OverrideRespawnSub = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].AllowWifiChat = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].OverrideSignalRadio = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].DisableSpamFilter = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].DisableDisconnectCharacter = function(o) end
+
+---`Method Public Instance`
+---@param o System.Boolean
+_G['Game'].EnableControlHusk = function(o) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param range? System.Single
+---@param force? System.Single
+---@param damage? System.Single
+---@param structureDamage? System.Single
+---@param itemDamage? System.Single
+---@param empStrength? System.Single
+---@param ballastFloraStrength? System.Single
+_G['Game'].Explode = function(pos, range, force, damage, structureDamage, itemDamage, empStrength, ballastFloraStrength) end
+
+---`Method Public Static`
+---@param name System.String
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param inventory? System.Boolean
+---@param character? Barotrauma.Character
+---@return System.String
+_G['Game'].SpawnItem = function(name, pos, inventory, character) end
+
+---`Method Public Static`
+---@return (Barotrauma.ContentPackage-arr)|(Barotrauma.ContentPackage[])
+_G['Game'].GetEnabledContentPackages = function() end
+
+---`Method Public Static`
+---@param itemNameOrId System.String
+---@return Barotrauma.ItemPrefab
+_G['Game'].GetItemPrefab = function(itemNameOrId) end
+
+---`Method Public Static`
+---@return Barotrauma.Submarine
+_G['Game'].GetRespawnSub = function() end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Items.Components.Steering
+_G['Game'].GetSubmarineSteering = function(sub) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Game'].GetWifiComponent = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.LightComponent
+_G['Game'].GetLightComponent = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.CustomInterface
+_G['Game'].GetCustomInterface = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.Fabricator
+_G['Game'].GetFabricatorComponent = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.Holdable
+_G['Game'].GetHoldableComponent = function(item) end
+
+---`Method Public Static`
+---@param command System.String
+_G['Game'].ExecuteCommand = function(command) end
+
+---`Method Public Static`
+---@param value System.String
+---@param stepsTaken? System.Int32
+---@param sender? Barotrauma.Character
+---@param source? Barotrauma.Item
+---@param power? System.Single
+---@param strength? System.Single
+---@return Barotrauma.Items.Components.Signal
+_G['Game'].CreateSignal = function(value, stepsTaken, sender, source, power, strength) end
+
+---`Method Public Instance`
+---@param command Barotrauma.Identifier
+---@return System.Boolean
+_G['Game'].IsCustomCommandPermitted = function(command) end
+
+---`Method Public Instance`
+---@param name System.String
+_G['Game'].RemoveCommand = function(name) end
+
+---`Method Public Instance`
+---@param name System.String
+---@param help System.String
+---@param onExecute (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param getValidArgs? (Barotrauma.LuaCsFunc)|(fun(...:System.Object):(System.Object))
+---@param isCheat? System.Boolean
+_G['Game'].AddCommand = function(name, help, onExecute, getValidArgs, isCheat) end
+
+---`Method Public Instance`
+---@param names System.String
+---@param onExecute System.Object
+_G['Game'].AssignOnExecute = function(names, onExecute) end
+
+---`Method Public Instance`
+---@param path System.String
+_G['Game'].SaveGame = function(path) end
+
+---`Method Public Instance`
+---@param path System.String
+_G['Game'].LoadGame = function(path) end
+
+---`Method Public Instance`
+---@param path System.String
+---@param client? Barotrauma.Networking.Client
+_G['Game'].LoadCampaign = function(path, client) end
+
+---`Method Public Static`
+---@param msg System.String
+---@param messageType? System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param sender? Barotrauma.Networking.Client
+---@param character? Barotrauma.Character
+_G['Game'].SendMessage = function(msg, messageType, sender, character) end
+
+---`Method Public Static`
+---@param message Barotrauma.Networking.WriteOnlyMessage
+---@param client Barotrauma.Networking.Client
+_G['Game'].SendTraitorMessage = function(message, client) end
+
+---`Method Public Static`
+---@overload fun(sendername:System.String, text:System.String, sender:Barotrauma.Character, messageType?:Barotrauma.Networking.ChatMessageType, client?:Barotrauma.Networking.Client, iconStyle?:System.String)
+---@param chatMessage Barotrauma.Networking.ChatMessage
+---@param client Barotrauma.Networking.Client
+_G['Game'].SendDirectChatMessage = function(chatMessage, client) end
+
+---`Method Public Static`
+---@param message System.String
+---@param type Barotrauma.Networking.ServerLog.MessageType
+_G['Game'].Log = function(message, type) end
+
+---`Method Public Static`
+_G['Game'].DispatchRespawnSub = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Networking.GameServer.TryStartGameResult
+_G['Game'].StartGame = function() end
+
+---`Method Public Static`
+_G['Game'].EndGame = function() end
+
+---`Method Public Instance`
+---@param names System.String
+---@param onExecute System.Object
+_G['Game'].AssignOnClientRequestExecute = function(names, onExecute) end
+
+---`Method Public Instance`
+_G['Game'].Stop = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaGame
+_G['Game'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaGame
+_G['Game'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967347B8.lua b/Meta/Types/server/_00007FFD967347B8.lua
new file mode 100644
index 0000000..a588f8b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967347B8.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.LuaCsPatch : System.MulticastDelegate
+_G['LuaCsPatch'] = {}
+
+---`Method Public Instance Virtual`
+---@param self System.Object
+---@param args (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return System.Object
+_G['LuaCsPatch'].Invoke = function(self, args) end
+
+---`Method Public Instance Virtual`
+---@param self System.Object
+---@param args (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsPatch'].BeginInvoke = function(self, args, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+---@return System.Object
+_G['LuaCsPatch'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatch
+_G['LuaCsPatch'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatch
+_G['LuaCsPatch'].__new = function(object, method) end
+
diff --git a/Meta/Types/server/_00007FFD967349C8.lua b/Meta/Types/server/_00007FFD967349C8.lua
new file mode 100644
index 0000000..716b311
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967349C8.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.LuaCsAction : System.MulticastDelegate
+_G['LuaCsAction'] = {}
+
+---`Method Public Instance Virtual`
+---@param ... System.Object
+_G['LuaCsAction'].Invoke = function(...) end
+
+---`Method Public Instance Virtual`
+---@param args (System.Object-arr)|(System.Object[])
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsAction'].BeginInvoke = function(args, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+_G['LuaCsAction'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsAction
+_G['LuaCsAction'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsAction
+_G['LuaCsAction'].__new = function(object, method) end
+
diff --git a/Meta/Types/server/_00007FFD96734BD8.lua b/Meta/Types/server/_00007FFD96734BD8.lua
new file mode 100644
index 0000000..c1171d6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96734BD8.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LuaCsFunc : System.MulticastDelegate
+_G['LuaCsFunc'] = {}
+
+---`Method Public Instance Virtual`
+---@param ... System.Object
+---@return System.Object
+_G['LuaCsFunc'].Invoke = function(...) end
+
+---`Method Public Instance Virtual`
+---@param args (System.Object-arr)|(System.Object[])
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsFunc'].BeginInvoke = function(args, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+---@return System.Object
+_G['LuaCsFunc'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsFunc
+_G['LuaCsFunc'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsFunc
+_G['LuaCsFunc'].__new = function(object, method) end
+
diff --git a/Meta/Types/server/_00007FFD96734DE8.lua b/Meta/Types/server/_00007FFD96734DE8.lua
new file mode 100644
index 0000000..1bcccb1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96734DE8.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.LuaCsPatchFunc : System.MulticastDelegate
+_G['LuaCsPatchFunc'] = {}
+
+---`Method Public Instance Virtual`
+---@param instance System.Object
+---@param ptable Barotrauma.LuaCsHook.ParameterTable
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaCsPatchFunc'].Invoke = function(instance, ptable) end
+
+---`Method Public Instance Virtual`
+---@param instance System.Object
+---@param ptable Barotrauma.LuaCsHook.ParameterTable
+---@param callback (System.AsyncCallback)|(fun(ar:System.IAsyncResult))
+---@param object System.Object
+---@return System.IAsyncResult
+_G['LuaCsPatchFunc'].BeginInvoke = function(instance, ptable, callback, object) end
+
+---`Method Public Instance Virtual`
+---@param result System.IAsyncResult
+---@return MoonSharp.Interpreter.DynValue
+_G['LuaCsPatchFunc'].EndInvoke = function(result) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatchFunc
+_G['LuaCsPatchFunc'] = function(object, method) end
+
+---`Constructor Public Instance`
+---@param object System.Object
+---@param method System.IntPtr
+---@return Barotrauma.LuaCsPatchFunc
+_G['LuaCsPatchFunc'].__new = function(object, method) end
+
diff --git a/Meta/Types/server/_00007FFD967353F8.lua b/Meta/Types/server/_00007FFD967353F8.lua
new file mode 100644
index 0000000..ebab35b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967353F8.lua
@@ -0,0 +1,219 @@
+---@meta
+---@class Barotrauma.LuaCsHook : System.Object
+---`Field Private Instance`
+---@field harmony HarmonyLib.Harmony
+---`Field Private Instance`
+---@field patchModuleBuilder System.Lazy*1System*Reflection*Emit*ModuleBuilder
+---`Field Private Instance`
+---@field hookFunctions (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*ValueTuple*3Barotrauma*LuaCsHook*LuaCsHookCallback*3Barotrauma*ACsMod)|({[System.String]:((System.Collections.Generic.Dictionary*1System*String*1System*ValueTuple*2Barotrauma*LuaCsHook*LuaCsHookCallback*2Barotrauma*ACsMod)|({[System.String]:(System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod)}))})
+---`Field Private Instance`
+---@field registeredPatches (System.Collections.Generic.Dictionary*1Barotrauma*LuaCsHook*MethodKey*1Barotrauma*LuaCsHook*PatchedMethod)|({[Barotrauma.LuaCsHook.MethodKey]:(Barotrauma.LuaCsHook.PatchedMethod)})
+---`Field Private Instance`
+---@field luaCs Barotrauma.LuaCsSetup
+---`Field Private Instance`
+---@field performanceMeasurement System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field compatHookPrefixMethods (System.Collections.Generic.Dictionary*1System*Int64*1System*Collections*Generic*HashSet*2System*ValueTuple*3System*String*3Barotrauma*LuaCsPatch*3Barotrauma*ACsMod)|({[System.Int64]:((System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod)|(System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod[]))})
+---`Field Private Instance`
+---@field compatHookPostfixMethods (System.Collections.Generic.Dictionary*1System*Int64*1System*Collections*Generic*HashSet*2System*ValueTuple*3System*String*3Barotrauma*LuaCsPatch*3Barotrauma*ACsMod)|({[System.Int64]:((System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod)|(System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod[]))})
+---`Field Private Static`
+---@field prohibitedHooks (System.String-arr)|(System.String[])
+---`Field Private Static`
+---@field instance Barotrauma.LuaCsHook
+---`Field Private Static`
+---@field InvalidIdentifierCharsRegex System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field _miHookLuaCsPatchPrefix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field _miHookLuaCsPatchPostfix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field _miHookLuaCsPatchRetPrefix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field _miHookLuaCsPatchRetPostfix System.Reflection.MethodInfo
+---`Field Private Static`
+---@field FIELD_LUACS System.String
+_G['Hook'] = {}
+
+---`Method Private Static`
+---@param method System.Reflection.MethodBase
+_G['Hook'].ValidatePatchTarget = function(method) end
+
+---`Method Private Static`
+---@param identifier System.String
+---@return System.String
+_G['Hook'].NormalizeIdentifier = function(identifier) end
+
+---`Method Public Instance`
+_G['Hook'].Initialize = function() end
+
+---`Method Private Instance`
+---@return System.Reflection.Emit.ModuleBuilder
+_G['Hook'].CreateModuleBuilder = function() end
+
+---`Method Public Instance`
+---@overload fun(name:System.String, func:(Barotrauma.LuaCsFunc)|(fun(...:System.Object):(System.Object)), owner?:Barotrauma.ACsMod)
+---@param name System.String
+---@param identifier System.String
+---@param func (Barotrauma.LuaCsFunc)|(fun(...:System.Object):(System.Object))
+---@param owner? Barotrauma.ACsMod
+_G['Hook'].Add = function(name, identifier, func, owner) end
+
+---`Method Public Instance`
+---@param name System.String
+---@param identifier System.String
+---@return System.Boolean
+_G['Hook'].Exists = function(name, identifier) end
+
+---`Method Public Instance`
+---@param name System.String
+---@param identifier System.String
+_G['Hook'].Remove = function(name, identifier) end
+
+---`Method Public Instance`
+_G['Hook'].Clear = function() end
+
+---`Method Public Instance`
+---@overload fun(name:System.String, ...:System.Object):(Barotrauma.LuaCsHook.T)
+---@param name System.String
+---@param ... System.Object
+---@return System.Object
+_G['Hook'].Call = function(name, ...) end
+
+---`Method Private Static`
+---@param className System.String
+---@param methodName System.String
+---@param parameters (System.String-arr)|(System.String[])
+---@return System.Reflection.MethodBase
+_G['Hook'].ResolveMethod = function(className, methodName, parameters) end
+
+---`Method Private Instance`
+---@param identifier System.String
+---@param original System.Reflection.MethodBase
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+---@return System.Reflection.MethodInfo
+_G['Hook'].CreateDynamicHarmonyPatch = function(identifier, original, hookType) end
+
+---`Method Private Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param patch (Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue))
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+---@return System.String
+_G['Hook'].Patch = function(identifier, method, patch, hookType) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, parameterTypes:(System.String-arr)|(System.String[]), patch:(Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue)), hookType?:Barotrauma.LuaCsHook.HookMethodType):(System.String)
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, patch:(Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue)), hookType?:Barotrauma.LuaCsHook.HookMethodType):(System.String)
+---@overload fun(className:System.String, methodName:System.String, parameterTypes:(System.String-arr)|(System.String[]), patch:(Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue)), hookType?:Barotrauma.LuaCsHook.HookMethodType):(System.String)
+---@param className System.String
+---@param methodName System.String
+---@param patch (Barotrauma.LuaCsPatchFunc)|(fun(instance:System.Object, ptable:Barotrauma.LuaCsHook.ParameterTable):(MoonSharp.Interpreter.DynValue))
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+---@return System.String
+_G['Hook'].Patch = function(className, methodName, patch, hookType) end
+
+---`Method Private Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+---@return System.Boolean
+_G['Hook'].RemovePatch = function(identifier, method, hookType) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, parameterTypes:(System.String-arr)|(System.String[]), hookType:Barotrauma.LuaCsHook.HookMethodType):(System.Boolean)
+---@param identifier System.String
+---@param className System.String
+---@param methodName System.String
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+---@return System.Boolean
+_G['Hook'].RemovePatch = function(identifier, className, methodName, hookType) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __instance System.Object
+---@param result System.Object-ref
+---@param hookType Barotrauma.LuaCsHook.HookMethodType
+_G['Hook']._hookLuaCsPatch = function(__originalMethod, __args, __instance, result, hookType) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __instance System.Object
+---@return System.Boolean
+_G['Hook'].HookLuaCsPatchPrefix = function(__originalMethod, __args, __instance) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __instance System.Object
+_G['Hook'].HookLuaCsPatchPostfix = function(__originalMethod, __args, __instance) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __result System.Object-ref
+---@param __instance System.Object
+---@return System.Boolean
+_G['Hook'].HookLuaCsPatchRetPrefix = function(__originalMethod, __args, __result, __instance) end
+
+---`Method Private Static`
+---@param __originalMethod System.Reflection.MethodBase
+---@param __args (System.Object-arr)|(System.Object[])
+---@param __result System.Object-ref
+---@param __instance System.Object
+_G['Hook'].HookLuaCsPatchRetPostfix = function(__originalMethod, __args, __result, __instance) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param patch (Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object))
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+---@param owner? Barotrauma.ACsMod
+_G['Hook'].HookMethod = function(identifier, method, patch, hookType, owner) end
+
+---`Method NonPublic Instance`
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, parameterNames:(System.String-arr)|(System.String[]), patch:(Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object)), hookMethodType?:Barotrauma.LuaCsHook.HookMethodType)
+---@overload fun(identifier:System.String, className:System.String, methodName:System.String, patch:(Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object)), hookMethodType?:Barotrauma.LuaCsHook.HookMethodType)
+---@overload fun(className:System.String, methodName:System.String, patch:(Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object)), hookMethodType?:Barotrauma.LuaCsHook.HookMethodType)
+---@param className System.String
+---@param methodName System.String
+---@param parameterNames (System.String-arr)|(System.String[])
+---@param patch (Barotrauma.LuaCsPatch)|(fun(self:System.Object, args:(System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})):(System.Object))
+---@param hookMethodType? Barotrauma.LuaCsHook.HookMethodType
+_G['Hook'].HookMethod = function(className, methodName, parameterNames, patch, hookMethodType) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param method System.Reflection.MethodBase
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+_G['Hook'].UnhookMethod = function(identifier, method, hookType) end
+
+---`Method NonPublic Instance`
+---@param identifier System.String
+---@param className System.String
+---@param methodName System.String
+---@param parameterNames (System.String-arr)|(System.String[])
+---@param hookType? Barotrauma.LuaCsHook.HookMethodType
+_G['Hook'].UnhookMethod = function(identifier, className, methodName, parameterNames, hookType) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(luaCs:Barotrauma.LuaCsSetup):Barotrauma.LuaCsHook
+---@return Barotrauma.LuaCsHook
+_G['Hook'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96735490.lua b/Meta/Types/server/_00007FFD96735490.lua
new file mode 100644
index 0000000..eddb8ee
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96735490.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.LuaCsHook.HookMethodType : System.Enum
+---`Field Public Static`
+---@field Before Barotrauma.LuaCsHook.HookMethodType
+---`Field Public Static`
+---@field After Barotrauma.LuaCsHook.HookMethodType
+_G['Hook']['HookMethodType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96735770.lua b/Meta/Types/server/_00007FFD96735770.lua
new file mode 100644
index 0000000..562759f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96735770.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LuaCsHook.ParameterTable : System.Object, {[System.String]:System.Object}
+---`Field Private Instance`
+---@field parameters (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---`Field Private Instance`
+---@field returnValueModified System.Boolean
+---`Field Private Instance`
+---@field returnValue System.Object
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OriginalReturnValue System.Object
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReturnValue System.Object
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PreventExecution System.Boolean
+---`Getter Public Instance`
+---@field OriginalParameters (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---`Getter Public Instance`
+---@field ModifiedParameters (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+_G['Hook']['ParameterTable'] = {}
+
+---`Constructor Public Instance`
+---@param dict (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsHook.ParameterTable
+_G['Hook']['ParameterTable'] = function(dict) end
+
+---`Constructor Public Instance`
+---@param dict (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsHook.ParameterTable
+_G['Hook']['ParameterTable'].__new = function(dict) end
+
diff --git a/Meta/Types/server/_00007FFD96735918.lua b/Meta/Types/server/_00007FFD96735918.lua
new file mode 100644
index 0000000..e70e912
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96735918.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.LuaCsTimer : System.Object
+---`Field Private Instance`
+---@field timedActions (System.Collections.Generic.List*1Barotrauma*LuaCsTimer*TimedAction)|(Barotrauma.LuaCsTimer.TimedAction[])
+---`Getter Public Static`
+---@field Time System.Double
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field AccumulatorMax System.Double
+_G['Timer'] = {}
+
+---`Method Public Static`
+---@return System.Double
+_G['Timer'].GetTime = function() end
+
+---`Method Private Instance`
+---@param timedAction Barotrauma.LuaCsTimer.TimedAction
+_G['Timer'].AddTimer = function(timedAction) end
+
+---`Method Public Instance`
+_G['Timer'].Update = function() end
+
+---`Method Public Instance`
+_G['Timer'].Clear = function() end
+
+---`Method Public Instance`
+---@param action (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param millisecondDelay System.Int32
+_G['Timer'].Wait = function(action, millisecondDelay) end
+
+---`Method Public Instance`
+---@param action (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Timer'].NextFrame = function(action) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsTimer
+_G['Timer'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsTimer
+_G['Timer'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96735BD0.lua b/Meta/Types/server/_00007FFD96735BD0.lua
new file mode 100644
index 0000000..4b924ef
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96735BD0.lua
@@ -0,0 +1,104 @@
+---@meta
+---@class Barotrauma.LuaCsFile : System.Object
+_G['File'] = {}
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].CanReadFromPath = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].CanWriteToPath = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@param write? System.Boolean
+---@param origin? Barotrauma.LuaCsMessageOrigin
+---@return System.Boolean
+_G['File'].IsPathAllowedException = function(path, write, origin) end
+
+---`Method Public Static`
+---@param path System.String
+---@param write? System.Boolean
+---@return System.Boolean
+_G['File'].IsPathAllowedLuaException = function(path, write) end
+
+---`Method Public Static`
+---@param path System.String
+---@param write? System.Boolean
+---@return System.Boolean
+_G['File'].IsPathAllowedCsException = function(path, write) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.String
+_G['File'].Read = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@param text System.String
+_G['File'].Write = function(path, text) end
+
+---`Method Public Static`
+---@param path System.String
+_G['File'].Delete = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+_G['File'].DeleteDirectory = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@param destination System.String
+_G['File'].Move = function(path, destination) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.IO.FileStream
+_G['File'].OpenRead = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.IO.FileStream
+_G['File'].OpenWrite = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].Exists = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].CreateDirectory = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['File'].DirectoryExists = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return (System.String-arr)|(System.String[])
+_G['File'].GetFiles = function(path) end
+
+---`Method Public Static`
+---@param path System.String
+---@return (System.String-arr)|(System.String[])
+_G['File'].GetDirectories = function(path) end
+
+---`Method Public Static`
+---@param sDir System.String
+---@return (System.String-arr)|(System.String[])
+_G['File'].DirSearch = function(sDir) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsFile
+_G['File'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsFile
+_G['File'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96735F80.lua b/Meta/Types/server/_00007FFD96735F80.lua
new file mode 100644
index 0000000..7591b62
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96735F80.lua
@@ -0,0 +1,159 @@
+---@meta
+---@class Barotrauma.LuaCsNetworking : System.Object
+---`Field Private Instance`
+---@field clientRegisterCount (System.Collections.Generic.Dictionary*1System*String*1System*Int32)|({[System.String]:(System.Int32)})
+---`Field Private Instance`
+---@field currentId System.UInt16
+---`Field Public Instance`
+---@field RestrictMessageSize System.Boolean
+---`Field Private Instance`
+---@field netReceives (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*LuaCsAction)|({[System.String]:((Barotrauma.LuaCsAction)|(fun(...:System.Object)))})
+---`Field Private Instance`
+---@field idToString (System.Collections.Generic.Dictionary*1System*UInt16*1System*String)|({[System.UInt16]:(System.String)})
+---`Field Private Instance`
+---@field stringToId (System.Collections.Generic.Dictionary*1System*String*1System*UInt16)|({[System.String]:(System.UInt16)})
+---`Field Private Static`
+---@field client System.Net.Http.HttpClient
+---`Field Private Static`
+---@field MaxRegisterPerClient System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FileSenderMaxPacketsPerUpdate System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastClientListUpdateID System.UInt16
+_G['Networking'] = {}
+
+---`Method Public Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param header Barotrauma.Networking.ClientPacketHeader
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].NetMessageReceived = function(netMessage, header, client) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].HandleNetMessageId = function(netMessage, client) end
+
+---`Method Public Instance`
+---@overload fun(netMessageName:System.String):(Barotrauma.Networking.IWriteMessage)
+---@return Barotrauma.Networking.IWriteMessage
+_G['Networking'].Start = function() end
+
+---`Method Public Instance`
+---@param netMessageName System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Networking'].Receive = function(netMessageName, callback) end
+
+---`Method Public Instance`
+---@param name System.String
+---@return System.UInt16
+_G['Networking'].RegisterId = function(name) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param client Barotrauma.Networking.Client
+_G['Networking'].RequestIdSingle = function(netMessage, client) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param name System.String
+_G['Networking'].WriteIdToAll = function(id, name) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['Networking'].WriteAllIds = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['Networking'].ClientWriteLobby = function(client) end
+
+---`Method Public Instance`
+---@param netMessage Barotrauma.Networking.IWriteMessage
+---@param connection? Barotrauma.Networking.NetworkConnection
+---@param deliveryMethod? Barotrauma.Networking.DeliveryMethod
+_G['Networking'].Send = function(netMessage, connection, deliveryMethod) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['Networking'].UpdateClientPermissions = function(client) end
+
+---`Method Public Instance`
+_G['Networking'].Initialize = function() end
+
+---`Method Public Instance`
+---@param netMessageName System.String
+_G['Networking'].Remove = function(netMessageName) end
+
+---`Method Public Instance`
+---@param id System.UInt16
+---@return System.String
+_G['Networking'].IdToString = function(id) end
+
+---`Method Public Instance`
+---@param name System.String
+---@return System.UInt16
+_G['Networking'].StringToId = function(name) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param name System.String
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].HandleNetMessage = function(netMessage, name, client) end
+
+---`Method Private Instance`
+---@param netMessage Barotrauma.Networking.IReadMessage
+---@param client? Barotrauma.Networking.Client
+_G['Networking'].HandleNetMessageString = function(netMessage, client) end
+
+---`Method Public Instance`
+---@param url System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param data? System.String
+---@param method? System.String
+---@param contentType? System.String
+---@param headers? (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---@param savePath? System.String
+_G['Networking'].HttpRequest = function(url, callback, data, method, contentType, headers, savePath) end
+
+---`Method Public Instance`
+---@param url System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param data System.String
+---@param contentType? System.String
+---@param headers? (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---@param savePath? System.String
+_G['Networking'].HttpPost = function(url, callback, data, contentType, headers, savePath) end
+
+---`Method Public Instance`
+---@param url System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+---@param headers? (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---@param savePath? System.String
+_G['Networking'].HttpGet = function(url, callback, headers, savePath) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Networking.INetSerializable
+---@param extraData Barotrauma.Networking.NetEntityEvent.IData
+_G['Networking'].CreateEntityEvent = function(entity, extraData) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LuaCsNetworking
+---@return Barotrauma.LuaCsNetworking
+_G['Networking'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96736100.lua b/Meta/Types/server/_00007FFD96736100.lua
new file mode 100644
index 0000000..ee03cd7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96736100.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.LuaCsSteam : System.Object
+---`Field Private Instance`
+---@field lastTimeChecked System.Double
+---`Field Private Instance`
+---@field itemsBeingDownloaded (System.Collections.Generic.List*1Barotrauma*LuaCsSteam*WorkshopItemDownload)|(Barotrauma.LuaCsSteam.WorkshopItemDownload[])
+_G['Steam'] = {}
+
+---`Method Private Static`
+---@param sourceDirName System.String
+---@param destDirName System.String
+---@param copySubDirs System.Boolean
+---@param overwriteExisting? System.Boolean
+_G['Steam'].CopyFolder = function(sourceDirName, destDirName, copySubDirs, overwriteExisting) end
+
+---`Method Private Instance`
+---@param download Barotrauma.LuaCsSteam.WorkshopItemDownload
+---@param startDownload? System.Boolean
+_G['Steam'].DownloadWorkshopItemAsync = function(download, startDownload) end
+
+---`Method Public Instance`
+---@overload fun(id:System.UInt64, destination:System.String, callback:(Barotrauma.LuaCsAction)|(fun(...:System.Object)))
+---@param item Steamworks.Ugc.Item
+---@param destination System.String
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Steam'].DownloadWorkshopItem = function(item, destination, callback) end
+
+---`Method Public Instance`
+---@param id System.UInt64
+---@param callback (Barotrauma.LuaCsAction)|(fun(...:System.Object))
+_G['Steam'].GetWorkshopItem = function(id, callback) end
+
+---`Method Public Instance`
+_G['Steam'].Update = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSteam
+_G['Steam'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSteam
+_G['Steam'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96736220.lua b/Meta/Types/server/_00007FFD96736220.lua
new file mode 100644
index 0000000..afddd9f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96736220.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.LuaCsPerformanceCounter : System.Object
+---`Field Public Instance`
+---@field EnablePerformanceCounter System.Boolean
+---`Field Public Instance`
+---@field UpdateElapsedTime System.Double
+---`Field Public Instance`
+---@field HookElapsedTime (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*Double)|({[System.String]:((System.Collections.Generic.Dictionary*1System*String*1System*Double)|({[System.String]:(System.Double)}))})
+---`Getter Public Static`
+---@field MemoryUsage System.Single
+_G['PerformanceCounter'] = {}
+
+---`Method Public Instance`
+---@param eventName System.String
+---@param hookName System.String
+---@param ticks System.Int64
+_G['PerformanceCounter'].SetHookElapsedTicks = function(eventName, hookName, ticks) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsPerformanceCounter
+_G['PerformanceCounter'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsPerformanceCounter
+_G['PerformanceCounter'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967363F0.lua b/Meta/Types/server/_00007FFD967363F0.lua
new file mode 100644
index 0000000..040b99f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967363F0.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.LuaCsConfig : System.Object
+_G['LuaCsConfig'] = {}
+
+---`Method Private Static`
+---@param typesElem System.Xml.Linq.XElement
+---@return (System.Type-arr)|(System.Type[])
+_G['LuaCsConfig'].LoadDocTypes = function(typesElem) end
+
+---`Method Private Static`
+---@param types (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['LuaCsConfig'].SaveDocTypes = function(types) end
+
+---`Method Private Static`
+---@param types (System.Type-arr)|(System.Type[])
+---@param elem System.Xml.Linq.XElement
+---@return System.Type
+_G['LuaCsConfig'].GetTypeAttr = function(types, elem) end
+
+---`Method Private Static`
+---@param elem System.Xml.Linq.XElement
+---@return Barotrauma.LuaCsConfig.ValueType
+_G['LuaCsConfig'].GetValueType = function(elem) end
+
+---`Method Private Static`
+---@param types (System.Type-arr)|(System.Type[])
+---@param elem System.Xml.Linq.XElement
+---@return System.Object
+_G['LuaCsConfig'].ParseValue = function(types, elem) end
+
+---`Method Private Static`
+---@param types (System.Collections.Generic.List*1System*Type)|(System.Type[])
+---@param type System.Type
+---@param elem System.Xml.Linq.XElement
+_G['LuaCsConfig'].AddTypeAttr = function(types, type, elem) end
+
+---`Method Private Static`
+---@param types (System.Collections.Generic.List*1System*Type)|(System.Type[])
+---@param name System.String
+---@param value System.Object
+---@return System.Xml.Linq.XElement
+_G['LuaCsConfig'].ParseObject = function(types, name, value) end
+
+---`Method Public Static`
+---@overload fun(file:System.IO.FileStream):(Barotrauma.LuaCsConfig.T)
+---@param path System.String
+---@return Barotrauma.LuaCsConfig.T
+_G['LuaCsConfig'].Load = function(path) end
+
+---`Method Public Static`
+---@overload fun(file:System.IO.FileStream, obj:System.Object)
+---@param path System.String
+---@param obj System.Object
+_G['LuaCsConfig'].Save = function(path, obj) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsConfig
+_G['LuaCsConfig'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsConfig
+_G['LuaCsConfig'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96736578.lua b/Meta/Types/server/_00007FFD96736578.lua
new file mode 100644
index 0000000..7ef6905
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96736578.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.LuaCsSetup.LuaCsModStore : System.Object
+---`Field Private Instance`
+---@field luaModInterface (System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*LuaModStore)|(Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore[])
+---`Field Private Instance`
+---@field csModInterface (System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*CsModStore)|(Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore[])
+_G['ModStore'] = {}
+
+---`Method Public Instance`
+_G['ModStore'].Initialize = function() end
+
+---`Method Public Instance`
+_G['ModStore'].Clear = function() end
+
+---`Method NonPublic Instance`
+---@param modName System.String
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore'].Register = function(modName) end
+
+---`Method Public Instance`
+---@param mod Barotrauma.ACsMod
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore'].Register = function(mod) end
+
+---`Method Public Instance`
+---@param modName System.String
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore'].GetCsStore = function(modName) end
+
+---`Method NonPublic Instance`
+---@param modName System.String
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore'].GetLuaStore = function(modName) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSetup.LuaCsModStore
+_G['ModStore'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.LuaCsSetup.LuaCsModStore
+_G['ModStore'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96736910.lua b/Meta/Types/server/_00007FFD96736910.lua
new file mode 100644
index 0000000..511d79b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96736910.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore : Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1Barotrauma*ACsMod*1System*Object
+---`Field Public Instance`
+---@field Mod Barotrauma.ACsMod
+_G['ModStore']['CsModStore'] = {}
+
+---`Method Public Instance Virtual`
+---@param value Barotrauma.ACsMod
+---@return System.Boolean
+_G['ModStore']['CsModStore'].Equals = function(value) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore']['CsModStore'] = function(store) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.CsModStore
+_G['ModStore']['CsModStore'].__new = function(store) end
+
diff --git a/Meta/Types/server/_00007FFD96737860.lua b/Meta/Types/server/_00007FFD96737860.lua
new file mode 100644
index 0000000..37eb085
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96737860.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore : Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1System*String*1MoonSharp*Interpreter*DynValue
+---`Field Public Instance`
+---@field Name System.String
+_G['ModStore']['LuaModStore'] = {}
+
+---`Method Public Instance Virtual`
+---@param value System.String
+---@return System.Boolean
+_G['ModStore']['LuaModStore'].Equals = function(value) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1MoonSharp*Interpreter*DynValue)|({[System.String]:(MoonSharp.Interpreter.DynValue)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore']['LuaModStore'] = function(store) end
+
+---`Constructor Public Instance`
+---@param store (System.Collections.Generic.Dictionary*1System*String*1MoonSharp*Interpreter*DynValue)|({[System.String]:(MoonSharp.Interpreter.DynValue)})
+---@return Barotrauma.LuaCsSetup.LuaCsModStore.LuaModStore
+_G['ModStore']['LuaModStore'].__new = function(store) end
+
diff --git a/Meta/Types/server/_00007FFD967398D8.lua b/Meta/Types/server/_00007FFD967398D8.lua
new file mode 100644
index 0000000..7e369eb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967398D8.lua
@@ -0,0 +1,120 @@
+---@meta
+---@class Barotrauma.AssemblyManager : System.Object
+---`Field Private Instance`
+---@field OnAssemblyLoaded (System.Action*1System*Reflection*Assembly)|(fun(obj:System.Reflection.Assembly))
+---`Field Private Instance`
+---@field OnAssemblyUnloading (System.Action*1System*Reflection*Assembly)|(fun(obj:System.Reflection.Assembly))
+---`Field Private Instance`
+---@field OnException (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---`Field Private Instance`
+---@field OnACLUnload (System.Action*1System*Guid)|(fun(obj:System.Guid))
+---`Field Private Instance`
+---@field IsReadyToUnloadACL (System.Func*1Barotrauma*AssemblyManager*LoadedACL*1System*Boolean)|(fun(arg:Barotrauma.AssemblyManager.LoadedACL):(System.Boolean))
+---`Field Private Instance`
+---@field _subTypesLookupCache (System.Collections.Concurrent.ConcurrentDictionary*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type)|(fun():(System.Collections.Generic.KeyValuePair*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type))
+---`Field Private Instance`
+---@field _defaultContextTypes (System.Collections.Immutable.ImmutableDictionary*1System*String*1System*Type)|({[System.String]:(System.Type)})
+---`Field Private Instance`
+---@field LoadedACLs (System.Collections.Concurrent.ConcurrentDictionary*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL)|(fun():(System.Collections.Generic.KeyValuePair*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL))
+---`Field Private Instance`
+---@field UnloadingACLs (System.Collections.Generic.List*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader)|(System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader[])
+---`Field Private Instance`
+---@field OpsLockLoaded System.Threading.ReaderWriterLockSlim
+---`Field Private Instance`
+---@field OpsLockUnloaded System.Threading.ReaderWriterLockSlim
+---`Getter Public Instance`
+---@field StillUnloadingACLs (System.Collections.Immutable.ImmutableList*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader)|(System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader[])
+---`Getter Public Instance`
+---@field IsCurrentlyUnloading System.Boolean
+_G['AssemblyManager'] = {}
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type)))
+---@param rebuildList System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['AssemblyManager'].GetSubTypesInLoadedAssemblies = function(rebuildList) end
+
+---`Method Public Instance`
+---@overload fun(id:System.Guid, types:System.Collections.Generic.IEnumerable):(System.Boolean)
+---@param id System.Guid
+---@param types System.Collections.Generic.IEnumerable
+---@return System.Boolean
+_G['AssemblyManager'].TryGetSubTypesFromACL = function(id, types) end
+
+---`Method Public Instance`
+---@param typeName System.String
+---@return (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['AssemblyManager'].GetTypesByName = function(typeName) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['AssemblyManager'].GetAllTypesInLoadedAssemblies = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AssemblyManager*LoadedACL)|(fun():(Barotrauma.AssemblyManager.LoadedACL))
+_G['AssemblyManager'].GetAllLoadedACLs = function() end
+
+---`Method NonPublic Instance`
+---@return (System.Collections.Immutable.ImmutableList*1Barotrauma*AssemblyManager*LoadedACL)|(Barotrauma.AssemblyManager.LoadedACL[])
+_G['AssemblyManager'].UnsafeGetAllLoadedACLs = function() end
+
+---`Method Public Instance`
+---@param compiledAssemblyName System.String
+---@param syntaxTree (System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*SyntaxTree)|(fun():(Microsoft.CodeAnalysis.SyntaxTree))
+---@param externalMetadataReferences (System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*MetadataReference)|(fun():(Microsoft.CodeAnalysis.MetadataReference))
+---@param compilationOptions Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions
+---@param friendlyName System.String
+---@param id System.Guid-ref
+---@param externFileAssemblyRefs? (System.Collections.Generic.IEnumerable*1System*Reflection*Assembly)|(fun():(System.Reflection.Assembly))
+---@return Barotrauma.AssemblyLoadingSuccessState
+_G['AssemblyManager'].LoadAssemblyFromMemory = function(compiledAssemblyName, syntaxTree, externalMetadataReferences, compilationOptions, friendlyName, id, externFileAssemblyRefs) end
+
+---`Method Public Instance`
+---@param guid System.Guid
+---@return System.Boolean
+_G['AssemblyManager'].SetACLToTemplateMode = function(guid) end
+
+---`Method Public Instance`
+---@param filePaths (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---@param friendlyName System.String
+---@param id System.Guid-ref
+---@return Barotrauma.AssemblyLoadingSuccessState
+_G['AssemblyManager'].LoadAssembliesFromLocations = function(filePaths, friendlyName, id) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AssemblyManager'].TryBeginDispose = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AssemblyManager'].FinalizeDispose = function() end
+
+---`Method Public Instance`
+---@param id System.Guid
+---@param acl Barotrauma.LoadedACL-ref
+---@return System.Boolean
+_G['AssemblyManager'].TryGetACL = function(id, acl) end
+
+---`Method Private Instance`
+---@param id System.Guid
+---@param friendlyName System.String
+---@param acl Barotrauma.LoadedACL-ref
+---@return System.Boolean
+_G['AssemblyManager'].GetOrCreateACL = function(id, friendlyName, acl) end
+
+---`Method Private Instance`
+---@param id System.Guid
+---@return System.Boolean
+_G['AssemblyManager'].DisposeACL = function(id) end
+
+---`Method Private Instance`
+_G['AssemblyManager'].RebuildTypesList = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.AssemblyManager
+_G['AssemblyManager'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.AssemblyManager
+_G['AssemblyManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9673B5D8.lua b/Meta/Types/server/_00007FFD9673B5D8.lua
new file mode 100644
index 0000000..4fb9c2c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673B5D8.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.CsPackageManager : System.Object
+---`Field Private Instance`
+---@field _publicizedAssembliesToLoad (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field _assemblyUnloadTimeoutSeconds System.Single
+---`Field Private Instance`
+---@field _publicizedAssemblyLoader System.Guid
+---`Field Private Instance`
+---@field _currentPackagesByLoadOrder (System.Collections.Generic.List*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[])
+---`Field Private Instance`
+---@field _packagesDependencies (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Collections*Immutable*ImmutableList*2Barotrauma*ContentPackage)|({[Barotrauma.ContentPackage]:((System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[]))})
+---`Field Private Instance`
+---@field _loadedCompiledPackageAssemblies (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Guid)|({[Barotrauma.ContentPackage]:(System.Guid)})
+---`Field Private Instance`
+---@field _reverseLookupGuidList (System.Collections.Generic.Dictionary*1System*Guid*1Barotrauma*ContentPackage)|({[System.Guid]:(Barotrauma.ContentPackage)})
+---`Field Private Instance`
+---@field _loadedPlugins (System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Generic*HashSet*2Barotrauma*IAssemblyPlugin)|({[System.Guid]:((System.Collections.Generic.HashSet*1Barotrauma*IAssemblyPlugin)|(Barotrauma.IAssemblyPlugin[]))})
+---`Field Private Instance`
+---@field _pluginTypes (System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableHashSet*2System*Type)|({[System.Guid]:((System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[]))})
+---`Field Private Instance`
+---@field _packageRunConfigs (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1Barotrauma*RunConfig)|({[Barotrauma.ContentPackage]:(Barotrauma.RunConfig)})
+---`Field Private Instance`
+---@field _luaRegisteredTypes (System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableList*2System*Type)|({[System.Guid]:((System.Collections.Immutable.ImmutableList*1System*Type)|(System.Type[]))})
+---`Field Private Instance`
+---@field _assemblyManager Barotrauma.AssemblyManager
+---`Field Private Instance`
+---@field _luaCsSetup Barotrauma.LuaCsSetup
+---`Field Private Instance`
+---@field _assemblyUnloadStartTime System.DateTime
+---`Field Private Instance`
+---@field OnDispose (System.Action)|(fun())
+---`Field Private Static`
+---@field ScriptParseOptions Microsoft.CodeAnalysis.CSharp.CSharpParseOptions
+---`Field Private Static`
+---@field CompilationOptions Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions
+---`Field Private Static`
+---@field BaseAssemblyImports Microsoft.CodeAnalysis.SyntaxTree
+---`Field Private Static`
+---@field PLATFORM_TARGET System.String
+---`Field Private Static`
+---@field ARCHITECTURE_TARGET System.String
+---`Field Private Static`
+---@field SCRIPT_FILE_REGEX System.String
+---`Field Private Static`
+---@field ASSEMBLY_FILE_REGEX System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AssembliesLoaded System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PluginsPreInit System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PluginsInitialized System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PluginsLoaded System.Boolean
+_G['PluginPackageManager'] = {}
+
+---`Method Public Instance`
+---@param name System.String
+---@param caseSensitive? System.Boolean
+---@return System.Boolean
+_G['PluginPackageManager'].LuaTryRegisterPackageTypes = function(name, caseSensitive) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['PluginPackageManager'].GetCurrentPackagesByLoadOrder = function() end
+
+---`Method Public Instance`
+---@param package Barotrauma.ContentPackage-ref
+---@return System.Boolean
+_G['PluginPackageManager'].TryGetPackageForPlugin = function(package) end
+
+---`Method Public Instance`
+---@param package Barotrauma.ContentPackage
+---@param loadedPlugins System.Collections.Generic.IEnumerable
+---@return System.Boolean
+_G['PluginPackageManager'].TryGetLoadedPluginsForPackage = function(package, loadedPlugins) end
+
+---`Method Public Instance Virtual`
+_G['PluginPackageManager'].Dispose = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AssemblyLoadingSuccessState
+_G['PluginPackageManager'].LoadAssemblyPackages = function() end
+
+---`Method Public Instance`
+_G['PluginPackageManager'].RunPluginsInit = function() end
+
+---`Method Public Instance`
+_G['PluginPackageManager'].RunPluginsPreInit = function() end
+
+---`Method Public Instance`
+---@param force? System.Boolean
+_G['PluginPackageManager'].InstantiatePlugins = function(force) end
+
+---`Method Public Instance`
+_G['PluginPackageManager'].UnloadPlugins = function() end
+
+---`Method Public Static`
+---@param package Barotrauma.ContentPackage
+---@param config Barotrauma.RunConfig-ref
+---@return System.Boolean
+_G['PluginPackageManager'].GetOrCreateRunConfig = function(package, config) end
+
+---`Method Private Instance`
+---@param action (System.Action)|(fun())
+---@param messageMethodName System.String
+---@param messageTypeName System.String
+_G['PluginPackageManager'].TryRun = function(action, messageMethodName, messageTypeName) end
+
+---`Method Private Instance`
+---@param assembly System.Reflection.Assembly
+_G['PluginPackageManager'].AssemblyManagerOnAssemblyUnloading = function(assembly) end
+
+---`Method Private Instance`
+---@param assembly System.Reflection.Assembly
+_G['PluginPackageManager'].AssemblyManagerOnAssemblyLoaded = function(assembly) end
+
+---`Method NonPublic Instance Virtual`
+_G['PluginPackageManager'].Finalize = function() end
+
+---`Method Private Static`
+---@param package Barotrauma.ContentPackage
+---@param scriptFilePaths System.Collections.Immutable.ImmutableList
+---@return System.Boolean
+_G['PluginPackageManager'].TryScanPackageForScripts = function(package, scriptFilePaths) end
+
+---`Method Private Static`
+---@param package Barotrauma.ContentPackage
+---@param assemblyFilePaths System.Collections.Immutable.ImmutableList
+---@return System.Boolean
+_G['PluginPackageManager'].TryScanPackagesForAssemblies = function(package, assemblyFilePaths) end
+
+---`Method Private Static`
+---@param package Barotrauma.ContentPackage
+---@return Barotrauma.RunConfig
+_G['PluginPackageManager'].GetRunConfigForPackage = function(package) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['PluginPackageManager'].BuildPackagesList = function() end
+
+---`Method Private Static`
+---@return Microsoft.CodeAnalysis.SyntaxTree
+_G['PluginPackageManager'].GetPackageScriptImports = function() end
+
+---`Method Private Static`
+---@param packages (System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[])
+---@param dependenciesMap System.Collections.Generic.Dictionary
+---@return System.Boolean
+_G['PluginPackageManager'].TryBuildDependenciesMap = function(packages, dependenciesMap) end
+
+---`Method Private Static`
+---@param packages (System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Collections*Immutable*ImmutableList*2Barotrauma*ContentPackage)|({[Barotrauma.ContentPackage]:((System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[]))})
+---@param readyToLoad System.Collections.Generic.IEnumerable
+---@param cannotLoadPackages System.Collections.Generic.IEnumerable
+---@param packageChecksPredicate? (System.Func*1Barotrauma*ContentPackage*1System*Boolean)|(fun(arg:Barotrauma.ContentPackage):(System.Boolean))
+---@return System.Boolean
+_G['PluginPackageManager'].OrderAndFilterPackagesByDependencies = function(packages, readyToLoad, cannotLoadPackages, packageChecksPredicate) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(assemblyManager:Barotrauma.AssemblyManager, luaCsSetup:Barotrauma.LuaCsSetup):Barotrauma.CsPackageManager
+---@return Barotrauma.CsPackageManager
+_G['PluginPackageManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9673B9A8.lua b/Meta/Types/server/_00007FFD9673B9A8.lua
new file mode 100644
index 0000000..8410cab
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673B9A8.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class MoonSharp.Interpreter.Interop.IUserDataDescriptor
+---`Getter Public Instance Abstract Virtual`
+---@field Name System.String
+---`Getter Public Instance Abstract Virtual`
+---@field Type System.Type
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param script MoonSharp.Interpreter.Script
+---@param obj System.Object
+---@param index MoonSharp.Interpreter.DynValue
+---@param isDirectIndexing System.Boolean
+---@return MoonSharp.Interpreter.DynValue
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].Index = function(script, obj, index, isDirectIndexing) end
+
+---`Method Public Instance Abstract Virtual`
+---@param script MoonSharp.Interpreter.Script
+---@param obj System.Object
+---@param index MoonSharp.Interpreter.DynValue
+---@param value MoonSharp.Interpreter.DynValue
+---@param isDirectIndexing System.Boolean
+---@return System.Boolean
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].SetIndex = function(script, obj, index, value, isDirectIndexing) end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.String
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].AsString = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@param script MoonSharp.Interpreter.Script
+---@param obj System.Object
+---@param metaname System.String
+---@return MoonSharp.Interpreter.DynValue
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].MetaIndex = function(script, obj, metaname) end
+
+---`Method Public Instance Abstract Virtual`
+---@param type System.Type
+---@param obj System.Object
+---@return System.Boolean
+_G['MoonSharp']['Interpreter']['Interop']['IUserDataDescriptor'].IsTypeCompatible = function(type, obj) end
+
diff --git a/Meta/Types/server/_00007FFD9673C040.lua b/Meta/Types/server/_00007FFD9673C040.lua
new file mode 100644
index 0000000..8d77244
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673C040.lua
@@ -0,0 +1,242 @@
+---@meta
+---@class Barotrauma.ToolBox : System.Object
+---`Field Private Static`
+---@field cachedFileNames (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Field Private Static`
+---@field removeBBCodeRegex System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field cachedLines (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2System*String)|({[System.String]:((System.Collections.Generic.List*1System*String)|(System.String[]))})
+---`Field Private Static`
+---@field affectedCharacters (System.Collections.Immutable.ImmutableHashSet*1System*Char)|(System.Char[])
+_G['ToolBox'] = {}
+
+---`Method Public Static`
+---@param filename System.String
+---@return System.Boolean
+_G['ToolBox'].IsProperFilenameCase = function(filename) end
+
+---`Method Public Static`
+---@param filename System.String
+---@param corrected System.Boolean-ref
+---@param directory? System.String
+---@return System.String
+_G['ToolBox'].CorrectFilenameCase = function(filename, corrected, directory) end
+
+---`Method Public Static`
+---@param fileName System.String
+---@return System.String
+_G['ToolBox'].RemoveInvalidFileNameChars = function(fileName) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['ToolBox'].RemoveBBCodeTags = function(str) end
+
+---`Method Public Static`
+---@param length System.Int32
+---@return System.String
+_G['ToolBox'].RandomSeed = function(length) end
+
+---`Method Public Static`
+---@param id Barotrauma.Identifier
+---@return System.Int32
+_G['ToolBox'].IdentifierToInt = function(id) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.Int32
+_G['ToolBox'].StringToInt = function(str) end
+
+---`Method Public Static`
+---@param inputType System.String
+---@return System.String
+_G['ToolBox'].ConvertInputType = function(inputType) end
+
+---`Method Public Static`
+---@param isFinished System.Boolean
+---@param isRunning? System.Boolean
+---@return System.String
+_G['ToolBox'].GetDebugSymbol = function(isFinished, isRunning) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@return System.String
+_G['ToolBox'].ColorizeObject = function(obj) end
+
+---`Method Public Static`
+---@param color Microsoft.Xna.Framework.Vector3
+---@return Microsoft.Xna.Framework.Vector3
+_G['ToolBox'].RgbToHLS = function(color) end
+
+---`Method Public Static`
+---@param s System.String
+---@param t System.String
+---@return System.Int32
+_G['ToolBox'].LevenshteinDistance = function(s, t) end
+
+---`Method Public Static`
+---@param seconds System.Single
+---@return Barotrauma.LocalizedString
+_G['ToolBox'].SecondsToReadableTime = function(seconds) end
+
+---`Method Public Static`
+---@param filePath System.String
+---@param randSync? Barotrauma.Rand.RandSync
+---@return System.String
+_G['ToolBox'].GetRandomLine = function(filePath, randSync) end
+
+---`Method Public Static`
+---@param originalBuffer Barotrauma.Networking.IReadMessage
+---@param numberOfBits System.Int32
+---@return Barotrauma.Networking.IReadMessage
+_G['ToolBox'].ExtractBits = function(originalBuffer, numberOfBits) end
+
+---`Method Public Static`
+---@overload fun(objects:(System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T)|(fun():(Barotrauma.ToolBox.T)), weightMethod:(System.Func*1Barotrauma*ToolBox*T*1System*Single)|(fun(arg:Barotrauma.ToolBox.T):(System.Single)), randSync:Barotrauma.Rand.RandSync):(Barotrauma.ToolBox.T)
+---@overload fun(objects:(System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T)|(fun():(Barotrauma.ToolBox.T)), weightMethod:(System.Func*1Barotrauma*ToolBox*T*1System*Single)|(fun(arg:Barotrauma.ToolBox.T):(System.Single)), random:System.Random):(Barotrauma.ToolBox.T)
+---@overload fun(objects:(System.Collections.Generic.IList*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[]), weights:(System.Collections.Generic.IList*1System*Single)|(System.Single[]), randSync:Barotrauma.Rand.RandSync):(Barotrauma.ToolBox.T)
+---@param objects (System.Collections.Generic.IList*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[])
+---@param weights (System.Collections.Generic.IList*1System*Single)|(System.Single[])
+---@param random System.Random
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].SelectWeightedRandom = function(objects, weights, random) end
+
+---`Method Public Static`
+---@param source Barotrauma.ToolBox.T
+---@param flags? System.Reflection.BindingFlags
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].CreateCopy = function(source, flags) end
+
+---`Method Public Static`
+---@param source Barotrauma.ToolBox.T
+---@param target Barotrauma.ToolBox.T
+---@param flags? System.Reflection.BindingFlags
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].CopyValuesTo = function(source, target, flags) end
+
+---`Method Public Static`
+---@param source Barotrauma.ToolBox.T
+---@param destination Barotrauma.ToolBox.T
+---@param flags? System.Reflection.BindingFlags
+---@return Barotrauma.ToolBox.T
+_G['ToolBox'].CopyValues = function(source, destination, flags) end
+
+---`Method Public Static`
+---@param list (System.Collections.Generic.List*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[])
+---@param from System.Int32
+---@param to System.Int32
+_G['ToolBox'].SiftElement = function(list, from, to) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['ToolBox'].EscapeCharacters = function(str) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.String
+_G['ToolBox'].UnescapeCharacters = function(str) end
+
+---`Method Public Static`
+---@param command System.String
+---@return (System.String-arr)|(System.String[])
+_G['ToolBox'].SplitCommand = function(command) end
+
+---`Method Public Static`
+---@param path System.String
+---@param correctFilenameCase? System.Boolean
+---@param directory? System.String
+---@return System.String
+_G['ToolBox'].CleanUpPathCrossPlatform = function(path, correctFilenameCase, directory) end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.String
+_G['ToolBox'].CleanUpPath = function(path) end
+
+---`Method Public Static`
+---@param easing Barotrauma.TransitionMode
+---@param t System.Single
+---@return System.Single
+_G['ToolBox'].GetEasing = function(easing, t) end
+
+---`Method Public Static`
+---@param center Microsoft.Xna.Framework.Point
+---@param size Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Rectangle
+_G['ToolBox'].GetWorldBounds = function(center, size) end
+
+---`Method Public Static`
+---@param o Barotrauma.ToolBox.T
+_G['ToolBox'].ThrowIfNull = function(o) end
+
+---`Method Public Static`
+---@param v System.Single
+---@return System.String
+_G['ToolBox'].GetFormattedPercentage = function(v) end
+
+---`Method Public Static`
+---@param original System.String
+---@return System.String
+_G['ToolBox'].ExtendColorToPercentageSigns = function(original) end
+
+---`Method Public Static`
+---@param original Barotrauma.Identifier
+---@param match Barotrauma.Identifier
+---@return System.Boolean
+_G['ToolBox'].StatIdentifierMatches = function(original, match) end
+
+---`Method Public Static`
+---@overload fun(self:System.Net.IPEndPoint, other:System.Net.IPEndPoint):(System.Boolean)
+---@param self System.Net.IPAddress
+---@param other System.Net.IPAddress
+---@return System.Boolean
+_G['ToolBox'].EquivalentTo = function(self, other) end
+
+---`Method Public Static`
+---@param value System.Int16
+---@return System.Single
+_G['ToolBox'].ShortAudioSampleToFloat = function(value) end
+
+---`Method Public Static`
+---@param value System.Single
+---@return System.Int16
+_G['ToolBox'].FloatToShortAudioSample = function(value) end
+
+---`Method Public Static`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param knobLength? System.Single
+---@return Barotrauma.SquareLine
+_G['ToolBox'].GetSquareLineBetweenPoints = function(start, luaKey__end, knobLength) end
+
+---`Method Public Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@return System.String
+_G['ToolBox'].BytesToHexString = function(bytes) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.RectangleF
+---@param point Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['ToolBox'].GetClosestPointOnRectangle = function(rect, point) end
+
+---`Method Public Static`
+---@param prefabs (System.Collections.Generic.IEnumerable*1Barotrauma*PrefabWithUintIdentifier)|(fun():(Barotrauma.PrefabWithUintIdentifier))
+---@return (System.Collections.Immutable.ImmutableArray*1System*UInt32)|(System.UInt32[])
+_G['ToolBox'].PrefabCollectionToUintIdentifierArray = function(prefabs) end
+
+---`Method Public Static`
+---@param Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ToolBox*T)|(fun():(Barotrauma.ToolBox.T))
+---@param uintIdentifiers (System.Collections.Generic.IEnumerable*1System*UInt32)|(fun():(System.UInt32))
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*ToolBox*T)|(Barotrauma.ToolBox.T[])
+_G['ToolBox'].UintIdentifierArrayToPrefabCollection = function(Prefabs, uintIdentifiers) end
+
+---`Constructor Private Static`
+---@return Barotrauma.ToolBox
+_G['ToolBox'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ToolBox
+_G['ToolBox'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9673C698.lua b/Meta/Types/server/_00007FFD9673C698.lua
new file mode 100644
index 0000000..a26a2c6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673C698.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Barotrauma.Identifier : System.ValueType, {[System.Range]:Barotrauma.Identifier}, {[System.Int32]:System.Char}
+---`Field Private Instance`
+---@field value System.String
+---`Field Private Instance`
+---@field hashCode System.Lazy*1System*Int32
+---`Field Public Static`
+---@field Empty Barotrauma.Identifier
+---`Field Private Static`
+---@field emptyHash System.Int32
+---`Getter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---@field HashCode System.Int32
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+_G['Identifier'] = {}
+
+---`Method Public Instance`
+---@param id Barotrauma.Identifier-ref
+---@return Barotrauma.Identifier
+_G['Identifier'].IfEmpty = function(id) end
+
+---`Method Public Instance`
+---@overload fun(subStr:Barotrauma.Identifier-ref, newStr:Barotrauma.Identifier-ref):(Barotrauma.Identifier)
+---@param subStr System.String
+---@param newStr System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].Replace = function(subStr, newStr) end
+
+---`Method Public Instance`
+---@overload fun(subStr:Barotrauma.Identifier):(Barotrauma.Identifier)
+---@param subStr System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].Remove = function(subStr) end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Barotrauma.Identifier
+---@return System.Boolean
+_G['Identifier'].Equals = function(other) end
+
+---`Method Public Instance`
+---@overload fun(str:System.String):(System.Boolean)
+---@param id Barotrauma.Identifier
+---@return System.Boolean
+_G['Identifier'].StartsWith = function(id) end
+
+---`Method Public Instance`
+---@overload fun(str:System.String):(System.Boolean)
+---@param id Barotrauma.Identifier
+---@return System.Boolean
+_G['Identifier'].EndsWith = function(id) end
+
+---`Method Public Instance`
+---@param suffix System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].AppendIfMissing = function(suffix) end
+
+---`Method Public Instance`
+---@param suffix System.String
+---@return Barotrauma.Identifier
+_G['Identifier'].RemoveFromEnd = function(suffix) end
+
+---`Method Public Instance`
+---@overload fun(str:System.String):(System.Boolean)
+---@param id Barotrauma.Identifier-ref
+---@return System.Boolean
+_G['Identifier'].Contains = function(id) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Identifier'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Identifier'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Int32
+_G['Identifier'].CompareTo = function(obj) end
+
+---`Method Private Static`
+---@param a System.String
+---@param b System.String
+---@return System.Boolean
+_G['Identifier'].StringEquality = function(a, b) end
+
+---`Method Public Instance`
+---@param c System.Char
+---@return System.Int32
+_G['Identifier'].IndexOf = function(c) end
+
+---`Constructor Public Instance`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(str:System.String):Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['Identifier'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9673C768.lua b/Meta/Types/server/_00007FFD9673C768.lua
new file mode 100644
index 0000000..027825d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673C768.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.Prefab : System.Object
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field ContentFile Barotrauma.ContentFile
+---`Field Public Static`
+---@field Types (System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[])
+---`Field Private Static`
+---@field potentialCallFromConstructor System.Boolean
+---`Getter Public Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Getter Public Instance`
+---@field FilePath Barotrauma.ContentPath
+_G['Prefab'] = {}
+
+---`Method Public Static`
+_G['Prefab'].DisallowCallFromConstructor = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['Prefab'].DetermineIdentifier = function(element) end
+
+---`Method Public Instance Abstract Virtual`
+_G['Prefab'].Dispose = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'] = function(file, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'].__new = function(file, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'] = function(file, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Prefab
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.Prefab
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Prefab
+_G['Prefab'].__new = function(file, element) end
+
diff --git a/Meta/Types/server/_00007FFD9673C8A8.lua b/Meta/Types/server/_00007FFD9673C8A8.lua
new file mode 100644
index 0000000..b920b96
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673C8A8.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.PrefabWithUintIdentifier : Barotrauma.Prefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UintIdentifier System.UInt32
+_G['PrefabWithUintIdentifier'] = {}
+
+---`Constructor NonPublic Instance`
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.PrefabWithUintIdentifier
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.PrefabWithUintIdentifier
+_G['PrefabWithUintIdentifier'] = function(file, element) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(file:Barotrauma.ContentFile, identifier:Barotrauma.Identifier):Barotrauma.PrefabWithUintIdentifier
+---@param file Barotrauma.ContentFile
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.PrefabWithUintIdentifier
+_G['PrefabWithUintIdentifier'].__new = function(file, element) end
+
diff --git a/Meta/Types/server/_00007FFD9673E0B8.lua b/Meta/Types/server/_00007FFD9673E0B8.lua
new file mode 100644
index 0000000..25a5b1d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673E0B8.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class FarseerPhysics.ConvertUnits : System.Object
+---`Field Private Static`
+---@field _displayUnitsToSimUnitsRatio System.Single
+---`Field Private Static`
+---@field _simUnitsToDisplayUnitsRatio System.Single
+_G['ConvertUnits'] = {}
+
+---`Method Public Static`
+---@param displayUnitsPerSimUnit System.Single
+_G['ConvertUnits'].SetDisplayUnitToSimUnitRatio = function(displayUnitsPerSimUnit) end
+
+---`Method Public Static`
+---@overload fun(simUnits:System.Single):(System.Single)
+---@overload fun(simUnits:System.Int32):(System.Single)
+---@overload fun(simUnits:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(simUnits:Microsoft.Xna.Framework.Vector2-ref, displayUnits:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(simUnits:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(x:System.Single, y:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param x System.Single
+---@param y System.Single
+---@param displayUnits Microsoft.Xna.Framework.Vector2-ref
+_G['ConvertUnits'].ToDisplayUnits = function(x, y, displayUnits) end
+
+---`Method Public Static`
+---@overload fun(displayUnits:System.Single):(System.Single)
+---@overload fun(displayUnits:System.Double):(System.Single)
+---@overload fun(displayUnits:System.Int32):(System.Single)
+---@overload fun(displayUnits:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(displayUnits:Microsoft.Xna.Framework.Vector3):(Microsoft.Xna.Framework.Vector3)
+---@overload fun(displayUnits:Microsoft.Xna.Framework.Vector2-ref, simUnits:Microsoft.Xna.Framework.Vector2-ref)
+---@overload fun(x:System.Single, y:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@overload fun(x:System.Double, y:System.Double):(Microsoft.Xna.Framework.Vector2)
+---@param x System.Single
+---@param y System.Single
+---@param simUnits Microsoft.Xna.Framework.Vector2-ref
+_G['ConvertUnits'].ToSimUnits = function(x, y, simUnits) end
+
+---`Constructor Private Static`
+---@return FarseerPhysics.ConvertUnits
+_G['ConvertUnits'] = function() end
+
+---`Constructor Private Static`
+---@return FarseerPhysics.ConvertUnits
+_G['ConvertUnits'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9673E2B0.lua b/Meta/Types/server/_00007FFD9673E2B0.lua
new file mode 100644
index 0000000..5dee9ac
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673E2B0.lua
@@ -0,0 +1,68 @@
+---@meta
+---@class Barotrauma.Rand : System.Object
+---`Field Private Static`
+---@field localRandom System.Random
+---`Field Private Static`
+---@field syncedRandom (System.Collections.Generic.Dictionary*1Barotrauma*Rand*RandSync*1System*Random)|({[Barotrauma.Rand.RandSync]:(System.Random)})
+---`Field Public Static`
+---@field ThreadId System.Int32
+_G['Rand'] = {}
+
+---`Method Public Static`
+---@param randSync Barotrauma.Rand.RandSync
+---@return System.Random
+_G['Rand'].GetRNG = function(randSync) end
+
+---`Method Public Static`
+---@param seed System.Int32
+_G['Rand'].SetLocalRandom = function(seed) end
+
+---`Method Public Static`
+---@param seed System.Int32
+_G['Rand'].SetSyncedSeed = function(seed) end
+
+---`Method Private Static`
+---@param sync Barotrauma.Rand.RandSync
+_G['Rand'].CheckRandThreadSafety = function(sync) end
+
+---`Method Public Static`
+---@overload fun(minimum:System.Single, maximum:System.Single, sync?:Barotrauma.Rand.RandSync):(System.Single)
+---@overload fun(minimum:System.Double, maximum:System.Double, sync?:Barotrauma.Rand.RandSync):(System.Double)
+---@param minimum System.Int32
+---@param maximum System.Int32
+---@param sync? Barotrauma.Rand.RandSync
+---@return System.Int32
+_G['Rand'].Range = function(minimum, maximum, sync) end
+
+---`Method Public Static`
+---@param max System.Int32
+---@param sync? Barotrauma.Rand.RandSync
+---@return System.Int32
+_G['Rand'].Int = function(max, sync) end
+
+---`Method Public Static`
+---@overload fun(length:System.Single, sync?:Barotrauma.Rand.RandSync):(Microsoft.Xna.Framework.Vector2)
+---@param length System.Double
+---@param sync? Barotrauma.Rand.RandSync
+---@return Voronoi2.DoubleVector2
+_G['Rand'].Vector = function(length, sync) end
+
+---`Method Public Static`
+---@param sync? Barotrauma.Rand.RandSync
+---@return System.Single
+_G['Rand'].Value = function(sync) end
+
+---`Method Public Static`
+---@param randomAlpha? System.Boolean
+---@param sync? Barotrauma.Rand.RandSync
+---@return Microsoft.Xna.Framework.Color
+_G['Rand'].Color = function(randomAlpha, sync) end
+
+---`Constructor Private Static`
+---@return Barotrauma.Rand
+_G['Rand'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Rand
+_G['Rand'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9673E338.lua b/Meta/Types/server/_00007FFD9673E338.lua
new file mode 100644
index 0000000..dd5ca13
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9673E338.lua
@@ -0,0 +1,9 @@
+---@meta
+---@class Barotrauma.Rand.RandSync : System.Enum
+---`Field Public Static`
+---@field Unsynced Barotrauma.Rand.RandSync
+---`Field Public Static`
+---@field ServerAndClient Barotrauma.Rand.RandSync
+_G['Rand']['RandSync'] = {}
+_G['RandSync'] = _G['Rand']['RandSync']
+
diff --git a/Meta/Types/server/_00007FFD96781178.lua b/Meta/Types/server/_00007FFD96781178.lua
new file mode 100644
index 0000000..8bac0fd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96781178.lua
@@ -0,0 +1,180 @@
+---@meta
+---@class Steamworks.SteamServer : Steamworks.SteamServerClass*1Steamworks*SteamServer
+---`Field Private Static`
+---@field OnValidateAuthTicketResponse (System.Action*1Steamworks*SteamId*1Steamworks*SteamId*1Steamworks*AuthResponse)|(fun(arg1:Steamworks.SteamId, arg2:Steamworks.SteamId, arg3:Steamworks.AuthResponse))
+---`Field Private Static`
+---@field OnSteamServersConnected (System.Action)|(fun())
+---`Field Private Static`
+---@field OnSteamServerConnectFailure (System.Action*1Steamworks*Result*1System*Boolean)|(fun(arg1:Steamworks.Result, arg2:System.Boolean))
+---`Field Private Static`
+---@field OnSteamServersDisconnected (System.Action*1Steamworks*Result)|(fun(obj:Steamworks.Result))
+---`Field Private Static`
+---@field OnSteamNetAuthenticationStatus (System.Action*1Steamworks*SteamNetworkingAvailability)|(fun(obj:Steamworks.SteamNetworkingAvailability))
+---`Field Private Static`
+---@field openInterfaces (System.Collections.Generic.List*1Steamworks*SteamClass)|(Steamworks.SteamClass[])
+---`Field Private Static`
+---@field _dedicatedServer System.Boolean
+---`Field Private Static`
+---@field _maxplayers System.Int32
+---`Field Private Static`
+---@field _botcount System.Int32
+---`Field Private Static`
+---@field _mapname System.String
+---`Field Private Static`
+---@field _modDir System.String
+---`Field Private Static`
+---@field _product System.String
+---`Field Private Static`
+---@field _gameDescription System.String
+---`Field Private Static`
+---@field _serverName System.String
+---`Field Private Static`
+---@field _passworded System.Boolean
+---`Field Private Static`
+---@field _gametags System.String
+---`Field Private Static`
+---@field KeyValue (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Getter NonPublic Static`
+---@field Internal Steamworks.ISteamGameServer
+---`Getter Public Static`
+---@field IsValid System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field DedicatedServer System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field MaxPlayers System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field BotCount System.Int32
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field MapName System.String
+---`Getter Public Static`
+---
`Setter NonPublic Static`
+---@field ModDir System.String
+---`Getter Public Static`
+---
`Setter NonPublic Static`
+---@field Product System.String
+---`Getter Public Static`
+---
`Setter NonPublic Static`
+---@field GameDescription System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field ServerName System.String
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Passworded System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field GameTags System.String
+---`Getter Public Static`
+---@field SteamId Steamworks.SteamId
+---`Getter Public Static`
+---@field LoggedOn System.Boolean
+---`Getter Public Static`
+---@field PublicIp System.Net.IPAddress
+---
`Setter Public Static`
+---@field AutomaticHeartbeats System.Boolean
+---
`Setter Public Static`
+---@field AdvertiseServer System.Boolean
+_G['Steamworks']['SteamServer'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param server System.Boolean
+---@return System.Boolean
+_G['Steamworks']['SteamServer'].InitializeInterface = function(server) end
+
+---`Method NonPublic Static`
+_G['Steamworks']['SteamServer'].InstallEvents = function() end
+
+---`Method Public Static`
+---@param appid Steamworks.AppId
+---@param init Steamworks.SteamServerInit
+---@param asyncCallbacks? System.Boolean
+_G['Steamworks']['SteamServer'].Init = function(appid, init, asyncCallbacks) end
+
+---`Method NonPublic Static`
+_G['Steamworks']['SteamServer'].AddInterface = function() end
+
+---`Method NonPublic Static`
+_G['Steamworks']['SteamServer'].ShutdownInterfaces = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].Shutdown = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].RunCallbacks = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].LogOnAnonymous = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].LogOff = function() end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].ForceHeartbeat = function() end
+
+---`Method Public Static`
+---@param steamid Steamworks.SteamId
+---@param name System.String
+---@param score System.Int32
+_G['Steamworks']['SteamServer'].UpdatePlayer = function(steamid, name, score) end
+
+---`Method Public Static`
+---@param Key System.String
+---@param Value System.String
+_G['Steamworks']['SteamServer'].SetKey = function(Key, Value) end
+
+---`Method Public Static`
+_G['Steamworks']['SteamServer'].ClearKeys = function() end
+
+---`Method Public Static`
+---@param data (System.Byte-arr)|(System.Byte[])
+---@param steamid Steamworks.SteamId
+---@return Steamworks.BeginAuthResult
+_G['Steamworks']['SteamServer'].BeginAuthSession = function(data, steamid) end
+
+---`Method Public Static`
+---@param steamid Steamworks.SteamId
+_G['Steamworks']['SteamServer'].EndAuthSession = function(steamid) end
+
+---`Method Public Static`
+---@param packet Steamworks.Data.OutgoingPacket-ref
+---@return System.Boolean
+_G['Steamworks']['SteamServer'].GetOutgoingPacket = function(packet) end
+
+---`Method Public Static`
+---@overload fun(data:(System.Byte-arr)|(System.Byte[]), size:System.Int32, address:System.UInt32, port:System.UInt16)
+---@param ptr System.IntPtr
+---@param size System.Int32
+---@param address System.UInt32
+---@param port System.UInt16
+_G['Steamworks']['SteamServer'].HandleIncomingPacket = function(ptr, size, address, port) end
+
+---`Method Public Static`
+---@param steamid Steamworks.SteamId
+---@param appid Steamworks.AppId
+---@return Steamworks.UserHasLicenseForAppResult
+_G['Steamworks']['SteamServer'].UserHasLicenseForApp = function(steamid, appid) end
+
+---`Constructor Public Instance`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Steamworks.SteamServer
+---@return Steamworks.SteamServer
+_G['Steamworks']['SteamServer'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967817F0.lua b/Meta/Types/server/_00007FFD967817F0.lua
new file mode 100644
index 0000000..b934853
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967817F0.lua
@@ -0,0 +1,111 @@
+---@meta
+---@class Steamworks.Friend : System.ValueType
+---`Field Public Instance`
+---@field Id Steamworks.SteamId
+---`Getter Public Instance`
+---@field IsMe System.Boolean
+---`Getter Public Instance`
+---@field IsFriend System.Boolean
+---`Getter Public Instance`
+---@field IsBlocked System.Boolean
+---`Getter Public Instance`
+---@field IsPlayingThisGame System.Boolean
+---`Getter Public Instance`
+---@field IsOnline System.Boolean
+---`Getter Public Instance`
+---@field IsAway System.Boolean
+---`Getter Public Instance`
+---@field IsBusy System.Boolean
+---`Getter Public Instance`
+---@field IsSnoozing System.Boolean
+---`Getter Public Instance`
+---@field Relationship Steamworks.Relationship
+---`Getter Public Instance`
+---@field State Steamworks.FriendState
+---`Getter Public Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---@field NameHistory (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---`Getter Public Instance`
+---@field SteamLevel System.Int32
+---`Getter Public Instance`
+---@field GameInfo System.Nullable*1Steamworks*Friend*FriendGameInfo
+_G['Steamworks']['Friend'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Steamworks']['Friend'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task
+_G['Steamworks']['Friend'].RequestInfoAsync = function() end
+
+---`Method Public Instance`
+---@param group_or_room Steamworks.SteamId
+---@return System.Boolean
+_G['Steamworks']['Friend'].IsIn = function(group_or_room) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image
+_G['Steamworks']['Friend'].GetSmallAvatarAsync = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image
+_G['Steamworks']['Friend'].GetMediumAvatarAsync = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image
+_G['Steamworks']['Friend'].GetLargeAvatarAsync = function() end
+
+---`Method Public Instance`
+---@param key System.String
+---@return System.String
+_G['Steamworks']['Friend'].GetRichPresence = function(key) end
+
+---`Method Public Instance`
+---@param Text System.String
+---@return System.Boolean
+_G['Steamworks']['Friend'].InviteToGame = function(Text) end
+
+---`Method Public Instance`
+---@param message System.String
+---@return System.Boolean
+_G['Steamworks']['Friend'].SendMessage = function(message) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Friend'].RequestUserStatsAsync = function() end
+
+---`Method Public Instance`
+---@param statName System.String
+---@param defult? System.Single
+---@return System.Single
+_G['Steamworks']['Friend'].GetStatFloat = function(statName, defult) end
+
+---`Method Public Instance`
+---@param statName System.String
+---@param defult? System.Int32
+---@return System.Int32
+_G['Steamworks']['Friend'].GetStatInt = function(statName, defult) end
+
+---`Method Public Instance`
+---@param statName System.String
+---@param defult? System.Boolean
+---@return System.Boolean
+_G['Steamworks']['Friend'].GetAchievement = function(statName, defult) end
+
+---`Method Public Instance`
+---@param statName System.String
+---@return System.DateTime
+_G['Steamworks']['Friend'].GetAchievementUnlockTime = function(statName) end
+
+---`Constructor Public Instance`
+---@param steamid Steamworks.SteamId
+---@return Steamworks.Friend
+_G['Steamworks']['Friend'] = function(steamid) end
+
+---`Constructor Public Instance`
+---@param steamid Steamworks.SteamId
+---@return Steamworks.Friend
+_G['Steamworks']['Friend'].__new = function(steamid) end
+
diff --git a/Meta/Types/server/_00007FFD96782C70.lua b/Meta/Types/server/_00007FFD96782C70.lua
new file mode 100644
index 0000000..ec39234
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96782C70.lua
@@ -0,0 +1,206 @@
+---@meta
+---@class Steamworks.Ugc.Item : System.ValueType
+---`Field NonPublic Instance`
+---@field details Steamworks.Data.SteamUGCDetails_t
+---`Field NonPublic Instance`
+---@field _id Steamworks.Data.PublishedFileId
+---`Field Public Instance`
+---@field Children (Steamworks.Data.PublishedFileId-arr)|(Steamworks.Data.PublishedFileId[])
+---`Getter Public Instance`
+---@field Id Steamworks.Data.PublishedFileId
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Title System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Description System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Tags (System.String-arr)|(System.String[])
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field KeyValueTags (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Getter Public Instance`
+---@field CreatorApp Steamworks.AppId
+---`Getter Public Instance`
+---@field ConsumerApp Steamworks.AppId
+---`Getter Public Instance`
+---@field Owner Steamworks.Friend
+---`Getter Public Instance`
+---@field Score System.Single
+---`Getter Public Instance`
+---@field Created System.DateTime
+---`Getter Public Instance`
+---@field Updated System.DateTime
+---`Getter Public Instance`
+---@field LatestUpdateTime System.DateTime
+---`Getter Public Instance`
+---@field Visibility Steamworks.Ugc.Visibility
+---`Getter Public Instance`
+---@field IsBanned System.Boolean
+---`Getter Public Instance`
+---@field IsAcceptedForUse System.Boolean
+---`Getter Public Instance`
+---@field VotesUp System.UInt32
+---`Getter Public Instance`
+---@field VotesDown System.UInt32
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field AdditionalPreviews (Steamworks.Data.UgcAdditionalPreview-arr)|(Steamworks.Data.UgcAdditionalPreview[])
+---`Getter Public Instance`
+---@field IsInstalled System.Boolean
+---`Getter Public Instance`
+---@field IsDownloading System.Boolean
+---`Getter Public Instance`
+---@field IsDownloadPending System.Boolean
+---`Getter Public Instance`
+---@field IsSubscribed System.Boolean
+---`Getter Public Instance`
+---@field NeedsUpdate System.Boolean
+---`Getter Public Instance`
+---@field Directory System.String
+---`Getter Public Instance`
+---@field DownloadBytesTotal System.Int64
+---`Getter Public Instance`
+---@field DownloadBytesDownloaded System.Int64
+---`Getter Public Instance`
+---@field InstalledSize System.Int64
+---`Getter Public Instance`
+---@field InstallTime System.Nullable*1System*DateTime
+---`Getter Public Instance`
+---@field SizeOfFileInBytes System.Int64
+---`Getter Public Instance`
+---@field DownloadAmount System.Single
+---`Getter Private Instance`
+---@field State Steamworks.ItemState
+---`Getter Public Instance`
+---@field Url System.String
+---`Getter Public Instance`
+---@field ChangelogUrl System.String
+---`Getter Public Instance`
+---@field CommentsUrl System.String
+---`Getter Public Instance`
+---@field DiscussUrl System.String
+---`Getter Public Instance`
+---@field StatsUrl System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumSubscriptions System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumFavorites System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumFollowers System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueSubscriptions System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueFavorites System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueFollowers System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumUniqueWebsiteViews System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ReportScore System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumSecondsPlayed System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumPlaytimeSessions System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumComments System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumSecondsPlayedDuringTimePeriod System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NumPlaytimeSessionsDuringTimePeriod System.UInt64
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field PreviewImageUrl System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Metadata System.String
+---`Getter Public Instance`
+---@field Result Steamworks.Result
+_G['Steamworks']['Ugc']['Item'] = {}
+
+---`Method Public Static`
+---@param id Steamworks.Data.PublishedFileId
+---@param maxageseconds? System.Int32
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*Item
+_G['Steamworks']['Ugc']['Item'].GetAsync = function(id, maxageseconds) end
+
+---`Method NonPublic Static`
+---@param details Steamworks.Data.SteamUGCDetails_t
+---@return Steamworks.Ugc.Item
+_G['Steamworks']['Ugc']['Item'].From = function(details) end
+
+---`Method Public Instance`
+---@param find System.String
+---@return System.Boolean
+_G['Steamworks']['Ugc']['Item'].HasTag = function(find) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].Subscribe = function() end
+
+---`Method Public Instance`
+---@param progress? (System.Action*1System*Single)|(fun(obj:System.Single))
+---@param milisecondsUpdateDelay? System.Int32
+---@param ct? System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].DownloadAsync = function(progress, milisecondsUpdateDelay, ct) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].Unsubscribe = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].AddFavorite = function() end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].RemoveFavorite = function() end
+
+---`Method Public Instance`
+---@param up System.Boolean
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Result
+_G['Steamworks']['Ugc']['Item'].Vote = function(up) end
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*UserItemVote
+_G['Steamworks']['Ugc']['Item'].GetUserVote = function() end
+
+---`Method Public Instance`
+---@return Steamworks.Ugc.Editor
+_G['Steamworks']['Ugc']['Item'].Edit = function() end
+
+---`Method Public Instance`
+---@param child Steamworks.Data.PublishedFileId
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].AddDependency = function(child) end
+
+---`Method Public Instance`
+---@param child Steamworks.Data.PublishedFileId
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['Steamworks']['Ugc']['Item'].RemoveDependency = function(child) end
+
+---`Constructor Public Instance`
+---@param id Steamworks.Data.PublishedFileId
+---@return Steamworks.Ugc.Item
+_G['Steamworks']['Ugc']['Item'] = function(id) end
+
+---`Constructor Public Instance`
+---@param id Steamworks.Data.PublishedFileId
+---@return Steamworks.Ugc.Item
+_G['Steamworks']['Ugc']['Item'].__new = function(id) end
+
diff --git a/Meta/Types/server/_00007FFD96782DC8.lua b/Meta/Types/server/_00007FFD96782DC8.lua
new file mode 100644
index 0000000..44882d1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96782DC8.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.ContentPackageId : System.Object
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+_G['ContentPackageId'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ContentPackageId'].ToString = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['ContentPackageId'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['ContentPackageId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param s System.String
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['ContentPackageId'].Parse = function(s) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.ContentPackageId
+_G['ContentPackageId'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.ContentPackageId
+_G['ContentPackageId'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96782ED8.lua b/Meta/Types/server/_00007FFD96782ED8.lua
new file mode 100644
index 0000000..ac0db6e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96782ED8.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.SteamWorkshopId : Barotrauma.ContentPackageId
+---`Field Public Instance`
+---@field Value System.UInt64
+---`Field Private Static`
+---@field Prefix System.String
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+_G['SteamWorkshopId'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamWorkshopId'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamWorkshopId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param s System.String
+---@return Barotrauma.Option*1Barotrauma*SteamWorkshopId
+_G['SteamWorkshopId'].Parse = function(s) end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.SteamWorkshopId
+_G['SteamWorkshopId'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.SteamWorkshopId
+_G['SteamWorkshopId'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD96783758.lua b/Meta/Types/server/_00007FFD96783758.lua
new file mode 100644
index 0000000..d36e047
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96783758.lua
@@ -0,0 +1,121 @@
+---@meta
+---@class Barotrauma.Entity : System.Object
+---`Field NonPublic Instance`
+---@field aiTarget Barotrauma.AITarget
+---`Field Public Instance`
+---@field ID System.UInt16
+---`Field Private Instance`
+---@field spawnTime System.Double
+---`Field Public Instance`
+---@field CreationStackTrace System.String
+---`Field Public Instance`
+---@field CreationIndex System.UInt64
+---`Field Private Static`
+---@field dictionary (System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Entity)|({[System.UInt16]:(Barotrauma.Entity)})
+---`Field Public Static`
+---@field Spawner Barotrauma.EntitySpawner
+---`Field Private Static`
+---@field creationCounter System.UInt64
+---`Field Private Static`
+---@field creationCounterMutex System.Object
+---`Field Public Static`
+---@field NullEntityID System.UInt16
+---`Field Public Static`
+---@field EntitySpawnerID System.UInt16
+---`Field Public Static`
+---@field RespawnManagerID System.UInt16
+---`Field Public Static`
+---@field DummyID System.UInt16
+---`Field Public Static`
+---@field ReservedIDStart System.UInt16
+---`Field Public Static`
+---@field MaxEntityCount System.UInt16
+---`Getter Public Static`
+---@field EntityCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdFreed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---@field AiTarget Barotrauma.AITarget
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InDetectable System.Boolean
+---`Getter Public Instance`
+---@field SpawnTime System.Double
+---`Getter Public Instance`
+---@field ErrorLine System.String
+_G['Entity'] = {}
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+_G['Entity'].GetEntities = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param id System.UInt16
+---@param submarine Barotrauma.Submarine
+---@return System.UInt16
+_G['Entity'].DetermineID = function(id, submarine) end
+
+---`Method Private Static`
+---@param idOffset System.UInt16
+---@return System.UInt16
+_G['Entity'].FindFreeId = function(idOffset) end
+
+---`Method Public Static`
+---@param minBlockSize System.Int32
+---@return System.Int32
+_G['Entity'].FindFreeIdBlock = function(minBlockSize) end
+
+---`Method Public Static`
+---@param ID System.UInt16
+---@return Barotrauma.Entity
+_G['Entity'].FindEntityByID = function(ID) end
+
+---`Method Public Static`
+_G['Entity'].RemoveAll = function() end
+
+---`Method Public Instance`
+_G['Entity'].FreeID = function() end
+
+---`Method Public Instance Virtual`
+_G['Entity'].Remove = function() end
+
+---`Method Public Static`
+---@param count System.Int32
+---@param filename System.String
+_G['Entity'].DumpIds = function(count, filename) end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.Entity
+---@return Barotrauma.Entity
+_G['Entity'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96787350.lua b/Meta/Types/server/_00007FFD96787350.lua
new file mode 100644
index 0000000..b14c026
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96787350.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class Barotrauma.CharacterTeamType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.CharacterTeamType
+---`Field Public Static`
+---@field Team1 Barotrauma.CharacterTeamType
+---`Field Public Static`
+---@field Team2 Barotrauma.CharacterTeamType
+---`Field Public Static`
+---@field FriendlyNPC Barotrauma.CharacterTeamType
+_G['CharacterTeamType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96787758.lua b/Meta/Types/server/_00007FFD96787758.lua
new file mode 100644
index 0000000..ea6aa61
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96787758.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.AttackResult : System.ValueType
+---`Field Public Instance`
+---@field Afflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Public Instance`
+---@field HitLimb Barotrauma.Limb
+---`Field Public Instance`
+---@field AppliedDamageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Damage System.Single
+_G['AttackResult'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(afflictions:(System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[]), hitLimb:Barotrauma.Limb, appliedDamageModifiers?:(System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])):Barotrauma.AttackResult
+---@param damage System.Single
+---@param appliedDamageModifiers? (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---@return Barotrauma.AttackResult
+_G['AttackResult'] = function(damage, appliedDamageModifiers) end
+
+---`Constructor Public Instance`
+---@overload fun(afflictions:(System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[]), hitLimb:Barotrauma.Limb, appliedDamageModifiers?:(System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])):Barotrauma.AttackResult
+---@param damage System.Single
+---@param appliedDamageModifiers? (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---@return Barotrauma.AttackResult
+_G['AttackResult'].__new = function(damage, appliedDamageModifiers) end
+
diff --git a/Meta/Types/server/_00007FFD96787E80.lua b/Meta/Types/server/_00007FFD96787E80.lua
new file mode 100644
index 0000000..d0379e7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96787E80.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.AbilityFlags : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field MustWalk Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field ImmuneToPressure Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field IgnoredByEnemyAI Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field MoveNormallyWhileDragging Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field CanTinker Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field CanTinkerFabricatorsAndDeconstructors Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field TinkeringPowersDevices Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field GainSkillPastMaximum Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field RetainExperienceForNewCharacter Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field AllowSecondOrderedTarget Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field AlwaysStayConscious Barotrauma.AbilityFlags
+---`Field Public Static`
+---@field CanNotDieToAfflictions Barotrauma.AbilityFlags
+_G['AbilityFlags'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96788188.lua b/Meta/Types/server/_00007FFD96788188.lua
new file mode 100644
index 0000000..1702092
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96788188.lua
@@ -0,0 +1,1544 @@
+---@meta
+---@class Barotrauma.Character : Barotrauma.Entity
+---`Field Private Instance`
+---@field ownerClientAddress Barotrauma.Networking.Address
+---`Field Private Instance`
+---@field ownerClientAccountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---`Field Public Instance`
+---@field ClientDisconnected System.Boolean
+---`Field Public Instance`
+---@field KillDisconnectedTimer System.Single
+---`Field Private Instance`
+---@field networkUpdateSent System.Boolean
+---`Field Private Instance`
+---@field LastInputTime System.Double
+---`Field Public Instance`
+---@field HealthUpdatePending System.Boolean
+---`Field Private Instance`
+---@field severedJointIndices (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Field Private Instance`
+---@field enabled System.Boolean
+---`Field Private Instance`
+---@field disabledByEvent System.Boolean
+---`Field Public Instance`
+---@field PreviousHull Barotrauma.Hull
+---`Field Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Field Public Instance`
+---@field Properties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Field NonPublic Instance`
+---@field keys (Barotrauma.Key-arr)|(Barotrauma.Key[])
+---`Field Private Instance`
+---@field humanPrefab Barotrauma.HumanPrefab
+---`Field Private Instance`
+---@field faction System.Nullable*1Barotrauma*Identifier
+---`Field Private Instance`
+---@field teamID Barotrauma.CharacterTeamType
+---`Field Private Instance`
+---@field originalTeamID System.Nullable*1Barotrauma*CharacterTeamType
+---`Field Private Instance`
+---@field wallet Barotrauma.Wallet
+---`Field Public Instance`
+---@field Latchers (System.Collections.Generic.HashSet*1Barotrauma*LatchOntoAI)|(Barotrauma.LatchOntoAI[])
+---`Field Public Instance`
+---@field AttachedProjectiles (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Projectile)|(Barotrauma.Items.Components.Projectile[])
+---`Field NonPublic Instance`
+---@field activeTeamChanges (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*ActiveTeamChange)|({[System.String]:(Barotrauma.ActiveTeamChange)})
+---`Field NonPublic Instance`
+---@field currentTeamChange Barotrauma.ActiveTeamChange
+---`Field Public Instance`
+---@field IsCriminal System.Boolean
+---`Field Public Instance`
+---@field IsHostileEscortee System.Boolean
+---`Field Public Instance`
+---@field CombatAction Barotrauma.CombatAction
+---`Field Public Instance`
+---@field AnimController Barotrauma.AnimController
+---`Field Private Instance`
+---@field cursorPosition Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field oxygenAvailable System.Single
+---`Field Public Instance`
+---@field Seed System.String
+---`Field NonPublic Instance`
+---@field focusedItem Barotrauma.Item
+---`Field Private Instance`
+---@field selectedCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field selectedBy Barotrauma.Character
+---`Field Private Instance`
+---@field lastAttackers (System.Collections.Generic.List*1Barotrauma*Character*Attacker)|(Barotrauma.Character.Attacker[])
+---`Field Public Instance`
+---@field LastDamageSource Barotrauma.Entity
+---`Field Public Instance`
+---@field LastDamage Barotrauma.AttackResult
+---`Field Private Instance`
+---@field itemSelectedDurations (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Double)|({[Barotrauma.ItemPrefab]:(System.Double)})
+---`Field Private Instance`
+---@field itemSelectedTime System.Double
+---`Field Public Instance`
+---@field Prefab Barotrauma.CharacterPrefab
+---`Field Public Instance`
+---@field Params Barotrauma.CharacterParams
+---`Field Public Instance`
+---@field TraitorCurrentObjective Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field attackCoolDown System.Single
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field info Barotrauma.CharacterInfo
+---`Field Private Instance`
+---@field hideFaceTimer System.Single
+---`Field Private Instance`
+---@field onCustomInteract (System.Action*1Barotrauma*Character*1Barotrauma*Character)|(fun(arg1:Barotrauma.Character, arg2:Barotrauma.Character))
+---`Field Public Instance`
+---@field ActiveConversation Barotrauma.ConversationAction
+---`Field Public Instance`
+---@field RequireConsciousnessForCustomInteract System.Boolean
+---`Field Private Instance`
+---@field lockHandsTimer System.Single
+---`Field Private Instance`
+---@field lowPassMultiplier System.Single
+---`Field Private Instance`
+---@field obstructVisionAmount System.Single
+---`Field Private Instance`
+---@field pressureProtectionLastSet System.Double
+---`Field Private Instance`
+---@field pressureProtection System.Single
+---`Field Public Instance`
+---@field KnockbackCooldownTimer System.Single
+---`Field Private Instance`
+---@field ragdollingLockTimer System.Single
+---`Field Public Instance`
+---@field IsRagdolled System.Boolean
+---`Field Public Instance`
+---@field IsForceRagdolled System.Boolean
+---`Field Public Instance`
+---@field FollowCursor System.Boolean
+---`Field Public Instance`
+---@field DisableHealthWindow System.Boolean
+---`Field Private Instance`
+---@field speechImpedimentSet System.Boolean
+---`Field Private Instance`
+---@field speechImpediment System.Single
+---`Field Private Instance`
+---@field textChatVolume System.Single
+---`Field Private Instance`
+---@field _selectedItem Barotrauma.Item
+---`Field Private Instance`
+---@field isDead System.Boolean
+---`Field Public Instance`
+---@field GodMode System.Boolean
+---`Field Public Instance`
+---@field CampaignInteractionType Barotrauma.CampaignMode.InteractionType
+---`Field Public Instance`
+---@field MerchantIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field accessRemovedCharacterErrorShown System.Boolean
+---`Field Public Instance`
+---@field MarkedAsLooted (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field OnDeath (Barotrauma.Character.OnDeathHandler)|(fun(character:Barotrauma.Character, causeOfDeath:Barotrauma.CauseOfDeath))
+---`Field Public Instance`
+---@field OnAttacked (Barotrauma.Character.OnAttackedHandler)|(fun(attacker:Barotrauma.Character, attackResult:Barotrauma.AttackResult))
+---`Field Private Instance`
+---@field disableRunningLastSet System.Double
+---`Field Private Instance`
+---@field greatestNegativeSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field greatestPositiveSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field propulsionSpeedMultiplierLastSet System.Double
+---`Field Private Instance`
+---@field propulsionSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field greatestNegativeHealthMultiplier System.Single
+---`Field Private Instance`
+---@field greatestPositiveHealthMultiplier System.Single
+---`Field Private Instance`
+---@field currentAttackTarget Barotrauma.Character.AttackTargetData
+---`Field Private Instance`
+---@field sw System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field _selectedItemPriority System.Single
+---`Field Private Instance`
+---@field _foundItem Barotrauma.Item
+---`Field Private Instance`
+---@field despawnTimer System.Single
+---`Field Private Instance`
+---@field maxAIRange System.Single
+---`Field Private Instance`
+---@field aiTargetChangeSpeed System.Single
+---`Field Private Instance`
+---@field aiChatMessageQueue (System.Collections.Generic.List*1Barotrauma*AIChatMessage)|(Barotrauma.AIChatMessage[])
+---`Field Private Instance`
+---@field prevAiChatMessages (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field currentContexts (System.Collections.Generic.HashSet*1Barotrauma*AttackContext)|(Barotrauma.AttackContext[])
+---`Field Private Instance`
+---@field visibleHulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field tempList (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field characterTalents (System.Collections.Generic.List*1Barotrauma*CharacterTalent)|(Barotrauma.CharacterTalent[])
+---`Field Private Instance`
+---@field sameRoomHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field statValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field Private Instance`
+---@field wearableStatValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field Private Instance`
+---@field abilityFlags Barotrauma.AbilityFlags
+---`Field Private Instance`
+---@field abilityResistances (System.Collections.Generic.Dictionary*1Barotrauma*TalentResistanceIdentifier*1System*Single)|({[Barotrauma.TalentResistanceIdentifier]:(System.Single)})
+---`Field Private Instance`
+---@field dequeuedInput Barotrauma.Character.InputNetFlags
+---`Field Private Instance`
+---@field prevDequeuedInput Barotrauma.Character.InputNetFlags
+---`Field Public Instance`
+---@field LastNetworkUpdateID System.UInt16
+---`Field Public Instance`
+---@field LastProcessedID System.UInt16
+---`Field Private Instance`
+---@field memInput (System.Collections.Generic.List*1Barotrauma*Character*NetInputMem)|(Barotrauma.Character.NetInputMem[])
+---`Field Private Instance`
+---@field memState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+---`Field Private Instance`
+---@field memLocalState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+---`Field Public Instance`
+---@field healthUpdateTimer System.Single
+---`Field Private Instance`
+---@field healthUpdateInterval System.Single
+---`Field Public Instance`
+---@field isSynced System.Boolean
+---`Field Public Static`
+---@field CharacterList (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Public Static`
+---@field CharacterUpdateInterval System.Int32
+---`Field Private Static`
+---@field characterUpdateTick System.Int32
+---`Field Private Static`
+---@field overrideStatTypes (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*StatTypes)|({[Barotrauma.Identifier]:(Barotrauma.StatTypes)})
+---`Field Public Static`
+---@field MaxHighlightDistance System.Single
+---`Field Public Static`
+---@field MaxDragDistance System.Single
+---`Field Private Static`
+---@field OriginalChangeTeamIdentifier System.String
+---`Field Private Static`
+---@field maxLastAttackerCount System.Int32
+---`Field Public Static`
+---@field KnockbackCooldown System.Single
+---`Field Private Static`
+---@field cursorFollowMargin System.Single
+---`Getter Public Static`
+---@field Controlled Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisabledByEvent System.Boolean
+---`Getter Public Instance`
+---@field IsRemotelyControlled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsRemotePlayer System.Boolean
+---`Getter Public Instance`
+---@field IsLocalPlayer System.Boolean
+---`Getter Public Instance`
+---@field IsPlayer System.Boolean
+---`Getter Public Instance`
+---@field IsCommanding System.Boolean
+---`Getter Public Instance`
+---@field IsBot System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsEscorted System.Boolean
+---`Getter Public Instance`
+---@field JobIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DoesBleed System.Boolean
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---@field Keys (Barotrauma.Key-arr)|(Barotrauma.Key[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanPrefab Barotrauma.HumanPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---@field OriginalTeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Wallet Barotrauma.Wallet
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowPlayDead System.Boolean
+---`Getter Public Instance`
+---@field IsOnPlayerTeam System.Boolean
+---`Getter Public Instance`
+---@field IsOriginallyOnPlayerTeam System.Boolean
+---`Getter Public Instance`
+---@field IsFriendlyNPCTurnedHostile System.Boolean
+---`Getter Public Instance`
+---@field IsInstigator System.Boolean
+---`Getter Public Instance`
+---@field LastAttackers (System.Collections.Generic.IEnumerable*1Barotrauma*Character*Attacker)|(fun():(Barotrauma.Character.Attacker))
+---`Getter Public Instance`
+---@field LastAttacker Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastOrderedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SecondLastOrderedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---@field ItemSelectedDurations (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Double)|({[Barotrauma.ItemPrefab]:(System.Double)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InvisibleTimer System.Single
+---`Getter Public Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Group Barotrauma.Identifier
+---`Getter Public Instance`
+---@field IsHumanoid System.Boolean
+---`Getter Public Instance`
+---@field IsMachine System.Boolean
+---`Getter Public Instance`
+---@field IsHusk System.Boolean
+---`Getter Public Instance`
+---@field IsDisguisedAsHusk System.Boolean
+---`Getter Public Instance`
+---@field IsHuskInfected System.Boolean
+---`Getter Public Instance`
+---@field IsMale System.Boolean
+---`Getter Public Instance`
+---@field IsFemale System.Boolean
+---`Getter Public Instance`
+---@field BloodDecalName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanSpeak System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsAir System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsWater System.Boolean
+---`Getter Public Instance`
+---@field NeedsOxygen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Noise System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Visibility System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPerceptionDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsTraitor System.Boolean
+---`Getter Public Instance`
+---@field IsHuman System.Boolean
+---`Getter Public Instance`
+---@field CurrentOrders (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+---`Getter Public Instance`
+---@field IsDismissed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ViewTarget Barotrauma.Entity
+---`Getter Public Instance`
+---@field AimRefPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Info Barotrauma.CharacterInfo
+---`Getter Public Instance`
+---@field VariantOf Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field DisplayName System.String
+---`Getter Public Instance`
+---@field LogName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideFace System.Boolean
+---`Getter Public Instance`
+---@field ConfigPath System.String
+---`Getter Public Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Inventory Barotrauma.CharacterInventory
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableFocusingOnEntities System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CustomInteractHUDText Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field AllowCustomInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LockHands System.Boolean
+---`Getter Public Instance`
+---@field AllowInput System.Boolean
+---`Getter Public Instance`
+---@field CanMove System.Boolean
+---`Getter Public Instance`
+---@field CanInteract System.Boolean
+---`Getter Public Instance`
+---@field CanEat System.Boolean
+---`Getter Public Instance`
+---@field CanClimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CursorPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SmoothedCursorPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field CursorWorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FocusedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedBy Barotrauma.Character
+---`Getter Public Instance`
+---@field HeldItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LowPassMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ObstructVisionAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ObstructVision System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PressureProtection System.Single
+---`Getter Public Instance`
+---@field InPressure System.Boolean
+---`Getter Public Instance`
+---@field Anim Barotrauma.AnimController.Animation
+---`Getter Public Instance`
+---@field IsIncapacitated System.Boolean
+---`Getter Public Instance`
+---@field IsUnconscious System.Boolean
+---`Getter Public Instance`
+---@field IsHandcuffed System.Boolean
+---`Getter Public Instance`
+---@field IsPet System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Oxygen System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenAvailable System.Single
+---`Getter Public Instance`
+---@field HullOxygenPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHullOxygen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stun System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CharacterHealth Barotrauma.CharacterHealth
+---`Getter Public Instance`
+---@field Vitality System.Single
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+---`Getter Public Instance`
+---@field HealthPercentage System.Single
+---`Getter Public Instance`
+---@field MaxVitality System.Single
+---`Getter Public Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---@field WasFullHealth System.Boolean
+---`Getter Public Instance`
+---@field AIState Barotrauma.AIState
+---`Getter Public Instance`
+---@field IsLatched System.Boolean
+---`Getter Public Instance`
+---@field EmpVulnerability System.Single
+---`Getter Public Instance`
+---@field PoisonVulnerability System.Single
+---`Getter Public Instance`
+---@field IsFlipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Bloodloss System.Single
+---`Getter Public Instance`
+---@field Bleeding System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeechImpediment System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextChatVolume System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PressureTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableImpactDamageTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreMeleeWeapons System.Boolean
+---`Getter Public Instance`
+---@field CurrentSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedSecondaryItem Barotrauma.Item
+---`Getter Public Instance`
+---@field HasSelectedAnyItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FocusedItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PickingItem Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field AIController Barotrauma.AIController
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsDead System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableDespawn System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CauseOfDeath Barotrauma.CauseOfDeath
+---`Getter Public Instance`
+---@field CanBeSelected System.Boolean
+---`Getter Public Instance`
+---@field IsDraggable System.Boolean
+---`Getter Public Instance`
+---@field CanAim System.Boolean
+---`Getter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---@field IsLowInOxygen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Unkillable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHealthWindow System.Boolean
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field IsInFriendlySub System.Boolean
+---`Getter Public Instance`
+---@field IsInPlayerSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AITurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OverrideMovement System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceRun System.Boolean
+---`Getter Public Instance`
+---@field IsClimbing System.Boolean
+---`Getter Public Instance`
+---@field CanRun System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableRunning System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PropulsionSpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HealthMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HumanPrefabHealthMultiplier System.Single
+---`Getter Private Instance`
+---@field StopWatch System.Diagnostics.Stopwatch
+---`Getter Public Instance`
+---@field IsKnockedDown System.Boolean
+---`Getter Public Instance`
+---@field IsCaptain System.Boolean
+---`Getter Public Instance`
+---@field IsEngineer System.Boolean
+---`Getter Public Instance`
+---@field IsMechanic System.Boolean
+---`Getter Public Instance`
+---@field IsMedic System.Boolean
+---`Getter Public Instance`
+---@field IsSecurity System.Boolean
+---`Getter Public Instance`
+---@field IsAssistant System.Boolean
+---`Getter Public Instance`
+---@field IsWatchman System.Boolean
+---`Getter Public Instance`
+---@field IsVip System.Boolean
+---`Getter Public Instance`
+---@field IsPrisoner System.Boolean
+---`Getter Public Instance`
+---@field IsKiller System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UniqueNameColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Getter Public Instance`
+---@field IsProtectedFromPressure System.Boolean
+---`Getter Public Instance`
+---@field IsImmuneToPressure System.Boolean
+---`Getter Public Instance`
+---@field CharacterTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterTalent)|(fun():(Barotrauma.CharacterTalent))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthUpdateInterval System.Single
+---`Getter Public Instance`
+---@field MemState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+---`Getter Public Instance`
+---@field MemLocalState (System.Collections.Generic.List*1Barotrauma*CharacterStateInfo)|(Barotrauma.CharacterStateInfo[])
+_G['Character'] = {}
+
+---`Method Private Instance`
+---@param inventory Barotrauma.Inventory
+---@param element Barotrauma.ContentXElement
+---@param extraDuffelBags (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Character'].SpawnInventoryItemsRecursive = function(inventory, element, extraDuffelBags) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext)|(fun():(Barotrauma.AttackContext))
+_G['Character'].GetAttackContexts = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+_G['Character'].GetVisibleHulls = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param worldPos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Character'].GetRelativeSimPosition = function(target, worldPos) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String):(System.Boolean)
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].HasJob = function(identifier) end
+
+---`Method Public Instance`
+---@param applyXpPenalty System.Boolean
+_G['Character'].ResetTalents = function(applyXpPenalty) end
+
+---`Method Public Instance`
+_G['Character'].LoadTalents = function() end
+
+---`Method Public Instance`
+---@overload fun(talentIdentifier:Barotrauma.Identifier, addingFirstTime?:System.Boolean):(System.Boolean)
+---@overload fun(talentIdentifier:System.UInt32, addingFirstTime?:System.Boolean):(System.Boolean)
+---@param talentPrefab Barotrauma.TalentPrefab
+---@param addingFirstTime? System.Boolean
+---@return System.Boolean
+_G['Character'].GiveTalent = function(talentPrefab, addingFirstTime) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].HasTalent = function(identifier) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].HasUnlockedAllTalents = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].HasTalents = function() end
+
+---`Method Public Instance`
+---@overload fun(abilityEffectType:Barotrauma.AbilityEffectType, abilityObject:Barotrauma.Abilities.AbilityObject)
+---@param abilityEffectType Barotrauma.AbilityEffectType
+_G['Character'].CheckTalents = function(abilityEffectType) end
+
+---`Method Private Instance`
+---@param talentPrefab Barotrauma.TalentPrefab
+_G['Character'].OnTalentGiven = function(talentPrefab) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsInSameRoomAs = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['Character'].GetFriendlyCrew = function(character) end
+
+---`Method Public Instance`
+---@param recipeIdentifier Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].HasRecipeForItem = function(recipeIdentifier) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['Character'].HasStoreAccessForItem = function(prefab) end
+
+---`Method Public Instance`
+---@param amount System.Int32
+_G['Character'].GiveMoney = function(amount) end
+
+---`Method Private Instance`
+---@param prevAmount System.Int32
+---@param newAmount System.Int32
+_G['Character'].OnMoneyChanged = function(prevAmount, newAmount) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param includeSaved? System.Boolean
+---@return System.Single
+_G['Character'].GetStatValue = function(statType, includeSaved) end
+
+---`Method Public Instance`
+_G['Character'].OnWearablesChanged = function() end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param value System.Single
+_G['Character'].ChangeStat = function(statType, value) end
+
+---`Method Private Static`
+---@param skillIdentifier Barotrauma.Identifier
+---@return Barotrauma.StatTypes
+_G['Character'].GetSkillStatType = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@param abilityFlag Barotrauma.AbilityFlags
+_G['Character'].AddAbilityFlag = function(abilityFlag) end
+
+---`Method Public Instance`
+---@param abilityFlag Barotrauma.AbilityFlags
+_G['Character'].RemoveAbilityFlag = function(abilityFlag) end
+
+---`Method Public Instance`
+---@param abilityFlag Barotrauma.AbilityFlags
+---@return System.Boolean
+_G['Character'].HasAbilityFlag = function(abilityFlag) end
+
+---`Method Public Instance`
+---@overload fun(resistanceId:Barotrauma.Identifier):(System.Single)
+---@param affliction Barotrauma.AfflictionPrefab
+---@return System.Single
+_G['Character'].GetAbilityResistance = function(affliction) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.TalentResistanceIdentifier
+---@param value System.Single
+_G['Character'].ChangeAbilityResistance = function(identifier, value) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.TalentResistanceIdentifier
+_G['Character'].RemoveAbilityResistance = function(identifier) end
+
+---`Method Public Instance`
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsFriendly = function(other) end
+
+---`Method Public Static`
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsFriendly = function(me, other) end
+
+---`Method Public Static`
+---@overload fun(myTeam:Barotrauma.CharacterTeamType, otherTeam:Barotrauma.CharacterTeamType):(System.Boolean)
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsOnFriendlyTeam = function(me, other) end
+
+---`Method Public Instance`
+---@overload fun(other:Barotrauma.Character):(System.Boolean)
+---@param otherTeam Barotrauma.CharacterTeamType
+---@return System.Boolean
+_G['Character'].IsOnFriendlyTeam = function(otherTeam) end
+
+---`Method Public Instance`
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsSameSpeciesOrGroup = function(other) end
+
+---`Method Public Static`
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['Character'].IsSameSpeciesOrGroup = function(me, other) end
+
+---`Method Public Instance`
+---@param speciesNameOrGroup Barotrauma.Identifier
+---@return System.Boolean
+_G['Character'].MatchesSpeciesNameOrGroup = function(speciesNameOrGroup) end
+
+---`Method Public Instance`
+_G['Character'].StopClimbing = function() end
+
+---`Method Public Instance`
+_G['Character'].ResetNetState = function() end
+
+---`Method Private Instance`
+_G['Character'].UpdateNetInput = function() end
+
+---`Method Public Instance`
+---@param startSum? System.Single
+---@return System.Single
+_G['Character'].GetLegPenalty = function(startSum) end
+
+---`Method Public Instance`
+---@param speed System.Single
+---@return System.Single
+_G['Character'].ApplyTemporarySpeedLimits = function(speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].Control = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param damageTarget Barotrauma.IDamageable
+---@param attackPos Microsoft.Xna.Framework.Vector2
+_G['Character'].SetAttackTarget = function(attackLimb, damageTarget, attackPos) end
+
+---`Method Private Instance`
+---@return Barotrauma.Limb
+_G['Character'].GetSeeingLimb = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param seeingEntity? Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].CanSeeTarget = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Public Static`
+---@param target Barotrauma.ISpatialEntity
+---@param seeingEntity Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].IsTargetVisible = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Private Static`
+---@param target Barotrauma.Character
+---@param seeingEntity Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].IsCharacterVisible = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISpatialEntity
+---@param seeingEntity Barotrauma.ISpatialEntity
+---@param seeThroughWindows? System.Boolean
+---@param checkFacing? System.Boolean
+---@return System.Boolean
+_G['Character'].CheckVisibility = function(target, seeingEntity, seeThroughWindows, checkFacing) end
+
+---`Method Public Instance`
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Character'].IsFacing = function(targetWorldPos) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param requireEquipped? System.Boolean
+---@param slotType? System.Nullable*1Barotrauma*InvSlotType
+---@return System.Boolean
+_G['Character'].HasItem = function(item, requireEquipped, slotType) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item, slotType?:System.Nullable*1Barotrauma*InvSlotType, predicate?:(System.Func*1Barotrauma*InvSlotType*1System*Boolean)|(fun(arg:Barotrauma.InvSlotType):(System.Boolean))):(System.Boolean)
+---@param tagOrIdentifier Barotrauma.Identifier
+---@param allowBroken? System.Boolean
+---@param slotType? System.Nullable*1Barotrauma*InvSlotType
+---@return System.Boolean
+_G['Character'].HasEquippedItem = function(tagOrIdentifier, allowBroken, slotType) end
+
+---`Method Public Instance`
+---@param tagOrIdentifier? Barotrauma.Identifier
+---@param slotType? System.Nullable*1Barotrauma*InvSlotType
+---@return Barotrauma.Item
+_G['Character'].GetEquippedItem = function(tagOrIdentifier, slotType) end
+
+---`Method Public Instance`
+---@param items System.ValueTuple
+---@return System.Boolean
+_G['Character'].HasHandsFull = function(items) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param allowedSlots (System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType))
+---@return System.Boolean
+_G['Character'].TryPutItem = function(item, allowedSlots) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].TryPutItemInBag = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].TryPutItemInAnySlot = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].Unequip = function(item) end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.Inventory
+---@param accessLevel? Barotrauma.CharacterInventory.AccessLevel
+---@return System.Boolean
+_G['Character'].CanAccessInventory = function(inventory, accessLevel) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param checkFriendlyTeam? System.Boolean
+---@return System.Boolean
+_G['Character'].CanBeHealedBy = function(character, checkFriendlyTeam) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Character'].CanBeDraggedBy = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param accessLevel? Barotrauma.CharacterInventory.AccessLevel
+---@return System.Boolean
+_G['Character'].IsInventoryAccessibleTo = function(character, accessLevel) end
+
+---`Method Public Instance`
+---@param itemIndex System.Int32-ref
+---@param targetItem Barotrauma.Item-ref
+---@param identifiers? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param ignoreBroken? System.Boolean
+---@param ignoredItems? (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param ignoredContainerIdentifiers? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param customPredicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param customPriorityFunction? (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---@param maxItemDistance? System.Single
+---@param positionalReference? Barotrauma.ISpatialEntity
+---@return System.Boolean
+_G['Character'].FindItem = function(itemIndex, targetItem, identifiers, ignoreBroken, ignoredItems, ignoredContainerIdentifiers, customPredicate, customPriorityFunction, maxItemDistance, positionalReference) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].IsItemTakenBySomeoneElse = function(item) end
+
+---`Method Public Instance`
+---@overload fun(c:Barotrauma.Character, maxDist?:System.Single, checkVisibility?:System.Boolean, skipDistanceCheck?:System.Boolean):(System.Boolean)
+---@overload fun(item:Barotrauma.Item, checkLinked?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param distanceToItem System.Single-ref
+---@param checkLinked System.Boolean
+---@return System.Boolean
+_G['Character'].CanInteractWith = function(item, distanceToItem, checkLinked) end
+
+---`Method Public Instance`
+---@param onCustomInteract (System.Action*1Barotrauma*Character*1Barotrauma*Character)|(fun(arg1:Barotrauma.Character, arg2:Barotrauma.Character))
+---@param hudText Barotrauma.LocalizedString
+_G['Character'].SetCustomInteract = function(onCustomInteract, hudText) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Character'].SelectCharacter = function(character) end
+
+---`Method Public Instance`
+_G['Character'].DeselectCharacter = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param mouseSimPos Microsoft.Xna.Framework.Vector2
+_G['Character'].DoInteractionUpdate = function(deltaTime, mouseSimPos) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['Character'].UpdateAnimAll = function(deltaTime) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].UpdateAll = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Character'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param damage System.Single
+_G['Character'].AddAttacker = function(character, damage) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Character'].ForgiveAttacker = function(character) end
+
+---`Method Public Instance`
+---@param otherCharacter Barotrauma.Character
+---@return System.Single
+_G['Character'].GetDamageDoneByAttacker = function(otherCharacter) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateAttackers = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateOxygen = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@return System.Single
+_G['Character'].GetDistanceToClosestPlayer = function() end
+
+---`Method NonPublic Instance`
+---@return System.Single
+_G['Character'].GetDistanceSqrToClosestPlayer = function() end
+
+---`Method Public Instance`
+---@param simPos Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['Character'].GetDistanceToClosestLimb = function(simPos) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param createNetworkEvents? System.Boolean
+_G['Character'].UpdateDespawn = function(deltaTime, createNetworkEvents) end
+
+---`Method Private Instance`
+---@param createNetworkEvents? System.Boolean
+_G['Character'].Despawn = function(createNetworkEvents) end
+
+---`Method Public Instance`
+---@param createNetworkEvents? System.Boolean
+_G['Character'].DespawnNow = function(createNetworkEvents) end
+
+---`Method Public Static`
+---@param prefab Barotrauma.CharacterPrefab
+_G['Character'].RemoveByPrefab = function(prefab) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateSightRange = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateSoundRange = function(deltaTime) end
+
+---`Method Public Instance`
+---@param speaker Barotrauma.Character
+---@return System.Boolean
+_G['Character'].CanHearCharacter = function(speaker) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param isNewOrder System.Boolean
+---@param speak? System.Boolean
+---@param force? System.Boolean
+_G['Character'].SetOrder = function(order, isNewOrder, speak, force) end
+
+---`Method Private Instance`
+---@param newOrder Barotrauma.Order
+_G['Character'].AddCurrentOrder = function(newOrder) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+---@return System.Boolean
+_G['Character'].RemoveDuplicateOrders = function(order) end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['Character'].GetCurrentOrderWithTopPriority = function() end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@return Barotrauma.Order
+_G['Character'].GetCurrentOrder = function(order) end
+
+---`Method Private Instance`
+---@param predicate (System.Func*1Barotrauma*Order*1System*Boolean)|(fun(arg:Barotrauma.Order):(System.Boolean))
+---@return Barotrauma.Order
+_G['Character'].GetCurrentOrder = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier)
+---@param identifier System.String
+_G['Character'].DisableLine = function(identifier) end
+
+---`Method Public Instance`
+---@param message System.String
+---@param messageType? System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param delay? System.Single
+---@param identifier? Barotrauma.Identifier
+---@param minDurationBetweenSimilar? System.Single
+_G['Character'].Speak = function(message, messageType, delay, identifier, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Character'].UpdateAIChatMessages = function(deltaTime) end
+
+---`Method Public Instance`
+---@param damageAmount System.Single
+---@param bleedingDamageAmount System.Single
+---@param burnDamageAmount System.Single
+_G['Character'].SetAllDamage = function(damageAmount, bleedingDamageAmount, burnDamageAmount) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Character'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Public Instance`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2, afflictions:(System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction)), stun:System.Single, playSound:System.Boolean, attackImpulse?:System.Nullable*1Microsoft*Xna*Framework*Vector2, attacker?:Barotrauma.Character, damageMultiplier?:System.Single):(Barotrauma.AttackResult)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param stun System.Single
+---@param playSound System.Boolean
+---@param attackImpulse Microsoft.Xna.Framework.Vector2
+---@param hitLimb Barotrauma.Limb-ref
+---@param attacker? Barotrauma.Character
+---@param damageMultiplier? System.Single
+---@return Barotrauma.AttackResult
+_G['Character'].AddDamage = function(worldPosition, afflictions, stun, playSound, attackImpulse, hitLimb, attacker, damageMultiplier) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param deltaTime System.Single
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param playSound? System.Boolean
+---@param targetLimb? Barotrauma.Limb
+---@param penetration? System.Single
+---@return Barotrauma.AttackResult
+_G['Character'].ApplyAttack = function(attacker, worldPosition, attack, deltaTime, impulseDirection, playSound, targetLimb, penetration) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param severLimbsProbability System.Single
+---@param damage System.Single
+---@param allowBeheading System.Boolean
+---@param ignoreSeveranceProbabilityModifier? System.Boolean
+---@param attacker? Barotrauma.Character
+_G['Character'].TrySeverLimbJoints = function(targetLimb, severLimbsProbability, damage, allowBeheading, ignoreSeveranceProbabilityModifier, attacker) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Character
+_G['Character'].RecordKill = function(target) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hitLimb Barotrauma.Limb
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param stun System.Single
+---@param playSound System.Boolean
+---@param attackImpulse Microsoft.Xna.Framework.Vector2
+---@param attacker? Barotrauma.Character
+---@param damageMultiplier? System.Single
+---@param allowStacking? System.Boolean
+---@param penetration? System.Single
+---@param shouldImplode? System.Boolean
+---@param ignoreDamageOverlay? System.Boolean
+---@param recalculateVitality? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Character'].DamageLimb = function(worldPosition, hitLimb, afflictions, stun, playSound, attackImpulse, attacker, damageMultiplier, allowStacking, penetration, shouldImplode, ignoreDamageOverlay, recalculateVitality) end
+
+---`Method Private Instance`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+---@param stun System.Single
+_G['Character'].OnAttackedProjSpecific = function(attacker, attackResult, stun) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['Character'].TryAdjustAttackerSkill = function(attacker, attackResult) end
+
+---`Method Public Instance`
+---@param healer Barotrauma.Character
+---@param healthChange? System.Single
+---@param affliction? Barotrauma.Affliction
+_G['Character'].TryAdjustHealerSkill = function(healer, healthChange, affliction) end
+
+---`Method Public Instance`
+---@param newStun System.Single
+---@param allowStunDecrease? System.Boolean
+---@param isNetworkMessage? System.Boolean
+_G['Character'].SetStun = function(newStun, allowStunDecrease, isNetworkMessage) end
+
+---`Method Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param deltaTime System.Single
+_G['Character'].ApplyStatusEffects = function(actionType, deltaTime) end
+
+---`Method Private Instance`
+---@param isNetworkMessage? System.Boolean
+_G['Character'].Implode = function(isNetworkMessage) end
+
+---`Method Public Instance`
+_G['Character'].BreakJoints = function() end
+
+---`Method Public Instance`
+---@param huskInfection? Barotrauma.AfflictionPrefabHusk
+---@param playDead? System.Nullable*1System*Boolean
+_G['Character'].TurnIntoHusk = function(huskInfection, playDead) end
+
+---`Method Public Instance`
+---@param causeOfDeath Barotrauma.CauseOfDeathType
+---@param causeOfDeathAffliction Barotrauma.Affliction
+---@param isNetworkMessage? System.Boolean
+---@param log? System.Boolean
+_G['Character'].Kill = function(causeOfDeath, causeOfDeathAffliction, isNetworkMessage, log) end
+
+---`Method Private Instance`
+---@param causeOfDeath Barotrauma.CauseOfDeathType
+---@param causeOfDeathAffliction Barotrauma.Affliction
+---@param log System.Boolean
+_G['Character'].KillProjSpecific = function(causeOfDeath, causeOfDeathAffliction, log) end
+
+---`Method Public Instance`
+---@param removeAfflictions? System.Boolean
+---@param createNetworkEvent? System.Boolean
+_G['Character'].Revive = function(removeAfflictions, createNetworkEvent) end
+
+---`Method Public Instance Virtual`
+_G['Character'].Remove = function() end
+
+---`Method Public Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+_G['Character'].TeleportTo = function(worldPos) end
+
+---`Method Public Static`
+---@param inventory Barotrauma.Inventory
+---@param parentElement System.Xml.Linq.XElement
+_G['Character'].SaveInventory = function(inventory, parentElement) end
+
+---`Method Public Instance`
+_G['Character'].SaveInventory = function() end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.Inventory
+---@param itemData Barotrauma.ContentXElement
+_G['Character'].SpawnInventoryItems = function(inventory, itemData) end
+
+---`Method Public Instance`
+_G['Character'].ReleaseSecondaryItem = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].IsAnySelectedItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Character'].HasSelectedAnotherSecondaryItem = function(item) end
+
+---`Method Public Static`
+---@overload fun(characterInfo:Barotrauma.CharacterInfo, position:Microsoft.Xna.Framework.Vector2, seed:System.String, id?:System.UInt16, isRemotePlayer?:System.Boolean, hasAi?:System.Boolean, ragdoll?:Barotrauma.RagdollParams, spawnInitialItems?:System.Boolean):(Barotrauma.Character)
+---@overload fun(speciesName:System.String, position:Microsoft.Xna.Framework.Vector2, seed:System.String, characterInfo?:Barotrauma.CharacterInfo, id?:System.UInt16, isRemotePlayer?:System.Boolean, hasAi?:System.Boolean, createNetworkEvent?:System.Boolean, ragdoll?:Barotrauma.RagdollParams, throwErrorIfNotFound?:System.Boolean, spawnInitialItems?:System.Boolean):(Barotrauma.Character)
+---@overload fun(speciesName:Barotrauma.Identifier, position:Microsoft.Xna.Framework.Vector2, seed:System.String, characterInfo?:Barotrauma.CharacterInfo, id?:System.UInt16, isRemotePlayer?:System.Boolean, hasAi?:System.Boolean, createNetworkEvent?:System.Boolean, ragdoll?:Barotrauma.RagdollParams, throwErrorIfNotFound?:System.Boolean, spawnInitialItems?:System.Boolean):(Barotrauma.Character)
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param hasAi? System.Boolean
+---@param createNetworkEvent? System.Boolean
+---@param ragdoll? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'].Create = function(prefab, position, seed, characterInfo, id, isRemotePlayer, hasAi, createNetworkEvent, ragdoll, spawnInitialItems) end
+
+---`Method Public Instance`
+---@param headId? System.Nullable*1System*Int32
+---@param hairIndex? System.Int32
+---@param beardIndex? System.Int32
+---@param moustacheIndex? System.Int32
+---@param faceAttachmentIndex? System.Int32
+_G['Character'].ReloadHead = function(headId, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex) end
+
+---`Method Public Instance`
+_G['Character'].LoadHeadAttachments = function() end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+---@return System.Boolean
+_G['Character'].IsKeyHit = function(inputType) end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+---@return System.Boolean
+_G['Character'].IsKeyDown = function(inputType) end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+---@param hit System.Boolean
+---@param held System.Boolean
+_G['Character'].SetInput = function(inputType, hit, held) end
+
+---`Method Public Instance`
+---@param inputType Barotrauma.InputType
+_G['Character'].ClearInput = function(inputType) end
+
+---`Method Public Instance`
+_G['Character'].ClearInputs = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Character'].ToString = function() end
+
+---`Method Public Instance`
+---@param isPvPMode System.Boolean
+---@param spawnPoint? Barotrauma.WayPoint
+_G['Character'].GiveJobItems = function(isPvPMode, spawnPoint) end
+
+---`Method Public Instance`
+---@param spawnPoint Barotrauma.WayPoint
+---@param createNetworkEvent? System.Boolean
+_G['Character'].GiveIdCardTags = function(spawnPoint, createNetworkEvent) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['Character'].GetSkillLevel = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Character'].GetTargetMovement = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].CanRunWhileDragging = function() end
+
+---`Method Public Instance`
+---@param targetMovement Microsoft.Xna.Framework.Vector2
+---@param currentSpeed System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['Character'].ApplyMovementLimits = function(targetMovement, currentSpeed) end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Character'].StackSpeedMultiplier = function(val) end
+
+---`Method Public Instance`
+_G['Character'].ResetSpeedMultiplier = function() end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Character'].StackHealthMultiplier = function(val) end
+
+---`Method Private Instance`
+_G['Character'].CalculateHealthMultiplier = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Character'].GetTemporarySpeedReduction = function() end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param sum System.Single
+---@param max? System.Single
+---@return System.Single
+_G['Character'].CalculateMovementPenalty = function(limb, sum, max) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Character'].GetRightHandPenalty = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Character'].GetLeftHandPenalty = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Character'].IsDualWieldingRangedWeapons = function() end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['Character'].SetOwnerClient = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['Character'].IsClientOwner = function(client) end
+
+---`Method Public Instance`
+---@param recipient Barotrauma.Networking.Client
+---@return System.Single
+_G['Character'].GetPositionUpdateInterval = function(recipient) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Character'].ServerReadInput = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Character'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param tempBuffer Barotrauma.Networking.ReadWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['Character'].ServerWritePosition = function(tempBuffer, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Character'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param forceAfflictionData? System.Boolean
+_G['Character'].WriteStatus = function(msg, forceAfflictionData) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param entityId System.UInt16
+---@param restrictMessageSize System.Boolean
+_G['Character'].WriteSpawnData = function(msg, entityId, restrictMessageSize) end
+
+---`Method Public Instance`
+---@param probability? System.Nullable*1System*Single
+_G['Character'].EvaluatePlayDeadProbability = function(probability) end
+
+---`Method Private Instance`
+_G['Character'].ThrowIfAccessingWalletsInSingleplayer = function() end
+
+---`Method Public Instance`
+---@param newTeam Barotrauma.CharacterTeamType
+---@param processImmediately? System.Boolean
+_G['Character'].SetOriginalTeamAndChangeTeam = function(newTeam, processImmediately) end
+
+---`Method Private Instance`
+---@param newTeam Barotrauma.CharacterTeamType
+_G['Character'].ChangeTeam = function(newTeam) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@return System.Boolean
+_G['Character'].HasTeamChange = function(identifier) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param newTeamChange Barotrauma.ActiveTeamChange
+---@return System.Boolean
+_G['Character'].TryAddNewTeamChange = function(identifier, newTeamChange) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@return System.Boolean
+_G['Character'].TryRemoveTeamChange = function(identifier) end
+
+---`Method Public Instance`
+_G['Character'].UpdateTeam = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Identifier
+_G['Character'].GetBaseCharacterSpeciesName = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'] = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'].__new = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'] = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.Character
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isRemotePlayer? System.Boolean
+---@param ragdollParams? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.Character
+_G['Character'].__new = function(prefab, position, seed, characterInfo, id, isRemotePlayer, ragdollParams, spawnInitialItems) end
+
diff --git a/Meta/Types/server/_00007FFD967883A0.lua b/Meta/Types/server/_00007FFD967883A0.lua
new file mode 100644
index 0000000..d7fc94f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967883A0.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.AccountId : System.Object
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Abstract Virtual`
+---@field EosStringRepresentation System.String
+_G['AccountId'] = {}
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['AccountId'].Parse = function(str) end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['AccountId'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['AccountId'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['AccountId'].ToString = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.AccountId
+_G['AccountId'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.AccountId
+_G['AccountId'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96788440.lua b/Meta/Types/server/_00007FFD96788440.lua
new file mode 100644
index 0000000..964105b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96788440.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*AccountId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.AccountId
+_G['Option*1Barotrauma*Networking*AccountId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.AccountId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.AccountId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*AccountId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.AccountId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*AccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.AccountId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*AccountId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Networking*AccountId)|(fun(arg:Barotrauma.Networking.AccountId):(Barotrauma.Networking.AccountId)), none:(System.Func*1Barotrauma*Networking*AccountId)|(fun():(Barotrauma.Networking.AccountId))):(Barotrauma.Networking.AccountId)
+---@param some (System.Action*1Barotrauma*Networking*AccountId)|(fun(obj:Barotrauma.Networking.AccountId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*AccountId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.AccountId):(Barotrauma.Networking.AccountId)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.AccountId
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*AccountId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*AccountId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*AccountId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.AccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['Option*1Barotrauma*Networking*AccountId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/server/_00007FFD96788540.lua b/Meta/Types/server/_00007FFD96788540.lua
new file mode 100644
index 0000000..14f1b95
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96788540.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Character : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Character
+_G['Option*1Barotrauma*Character'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Character-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Character*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Character):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Character'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Character*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Character):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Character*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Character):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Character'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Character*1Barotrauma*Character)|(fun(arg:Barotrauma.Character):(Barotrauma.Character)), none:(System.Func*1Barotrauma*Character)|(fun():(Barotrauma.Character))):(Barotrauma.Character)
+---@param some (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Character'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Character):(Barotrauma.Character)
+---@param fallback Barotrauma.Option*1Barotrauma*Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Character
+---@return System.Boolean
+_G['Option*1Barotrauma*Character'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Character'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Character'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Character
+---@return Barotrauma.Option*1Barotrauma*Character
+_G['Option*1Barotrauma*Character'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/server/_00007FFD96788930.lua b/Meta/Types/server/_00007FFD96788930.lua
new file mode 100644
index 0000000..8cb7595
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96788930.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class Barotrauma.Networking.SteamId : Barotrauma.Networking.AccountId
+---`Field Public Instance`
+---@field Value System.UInt64
+---`Field Private Static`
+---@field steam64Prefix System.String
+---`Field Private Static`
+---@field steam40Prefix System.String
+---`Field Private Static`
+---@field usualAccountInstance System.UInt64
+---`Field Private Static`
+---@field usualAccountType System.UInt64
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field EosStringRepresentation System.String
+_G['SteamId'] = {}
+
+---`Method Private Static`
+---@param id System.UInt64
+---@param offset System.Int32
+---@param numberOfBits System.Int32
+---@return System.UInt64
+_G['SteamId'].ExtractBits = function(id, offset, numberOfBits) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractY = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractAccountNumberRemainder = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractAccountInstance = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractAccountType = function(id) end
+
+---`Method Private Static`
+---@param id System.UInt64
+---@return System.UInt64
+_G['SteamId'].ExtractUniverse = function(id) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['SteamId'].ToString = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['SteamId'].Parse = function(str) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamId'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamId'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.Networking.SteamId
+_G['SteamId'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.UInt64
+---@return Barotrauma.Networking.SteamId
+_G['SteamId'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD967889D0.lua b/Meta/Types/server/_00007FFD967889D0.lua
new file mode 100644
index 0000000..1ec63de
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967889D0.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*SteamId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.SteamId
+_G['Option*1Barotrauma*Networking*SteamId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.SteamId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.SteamId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*SteamId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.SteamId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*SteamId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.SteamId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*SteamId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Networking*SteamId)|(fun(arg:Barotrauma.Networking.SteamId):(Barotrauma.Networking.SteamId)), none:(System.Func*1Barotrauma*Networking*SteamId)|(fun():(Barotrauma.Networking.SteamId))):(Barotrauma.Networking.SteamId)
+---@param some (System.Action*1Barotrauma*Networking*SteamId)|(fun(obj:Barotrauma.Networking.SteamId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*SteamId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.SteamId):(Barotrauma.Networking.SteamId)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.SteamId
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*SteamId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*SteamId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*SteamId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.SteamId
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamId
+_G['Option*1Barotrauma*Networking*SteamId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/server/_00007FFD96788BE8.lua b/Meta/Types/server/_00007FFD96788BE8.lua
new file mode 100644
index 0000000..e201827
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96788BE8.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.EpicAccountId : Barotrauma.Networking.AccountId
+---`Field Private Static`
+---@field prefix System.String
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field EosStringRepresentation System.String
+_G['EpicAccountId'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['EpicAccountId'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['EpicAccountId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['EpicAccountId'].Parse = function(str) end
+
+---`Constructor Private Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EpicAccountId
+_G['EpicAccountId'] = function(value) end
+
+---`Constructor Private Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EpicAccountId
+_G['EpicAccountId'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD96788C88.lua b/Meta/Types/server/_00007FFD96788C88.lua
new file mode 100644
index 0000000..94b3b46
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96788C88.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*EpicAccountId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.EpicAccountId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.EpicAccountId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.EpicAccountId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*EpicAccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.EpicAccountId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Networking*EpicAccountId)|(fun(arg:Barotrauma.Networking.EpicAccountId):(Barotrauma.Networking.EpicAccountId)), none:(System.Func*1Barotrauma*Networking*EpicAccountId)|(fun():(Barotrauma.Networking.EpicAccountId))):(Barotrauma.Networking.EpicAccountId)
+---@param some (System.Action*1Barotrauma*Networking*EpicAccountId)|(fun(obj:Barotrauma.Networking.EpicAccountId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.EpicAccountId):(Barotrauma.Networking.EpicAccountId)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.EpicAccountId
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*EpicAccountId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*EpicAccountId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*EpicAccountId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.EpicAccountId
+---@return Barotrauma.Option*1Barotrauma*Networking*EpicAccountId
+_G['Option*1Barotrauma*Networking*EpicAccountId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/server/_00007FFD96788E00.lua b/Meta/Types/server/_00007FFD96788E00.lua
new file mode 100644
index 0000000..7f0c8d2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96788E00.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*ContentPackageId : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.ContentPackageId-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.ContentPackageId):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*ContentPackageId'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.ContentPackageId):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*ContentPackageId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.ContentPackageId):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*ContentPackageId'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*ContentPackageId*1Barotrauma*ContentPackageId)|(fun(arg:Barotrauma.ContentPackageId):(Barotrauma.ContentPackageId)), none:(System.Func*1Barotrauma*ContentPackageId)|(fun():(Barotrauma.ContentPackageId))):(Barotrauma.ContentPackageId)
+---@param some (System.Action*1Barotrauma*ContentPackageId)|(fun(obj:Barotrauma.ContentPackageId))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*ContentPackageId'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.ContentPackageId):(Barotrauma.ContentPackageId)
+---@param fallback Barotrauma.Option*1Barotrauma*ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.ContentPackageId
+---@return System.Boolean
+_G['Option*1Barotrauma*ContentPackageId'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*ContentPackageId'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*ContentPackageId'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.ContentPackageId
+---@return Barotrauma.Option*1Barotrauma*ContentPackageId
+_G['Option*1Barotrauma*ContentPackageId'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/server/_00007FFD96789180.lua b/Meta/Types/server/_00007FFD96789180.lua
new file mode 100644
index 0000000..ff2d0c0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96789180.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1System*DateTime : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value System.DateTime
+_G['Option*1System*DateTime'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1System*DateTime'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1System*DateTime'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue System.DateTime-ref
+---@return System.Boolean
+_G['Option*1System*DateTime'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1System*DateTime*1Barotrauma*Option*TType)|(fun(arg:System.DateTime):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1System*DateTime'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1System*DateTime*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:System.DateTime):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1System*DateTime*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:System.DateTime):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1System*DateTime'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1System*DateTime*1System*DateTime)|(fun(arg:System.DateTime):(System.DateTime)), none:(System.Func*1System*DateTime)|(fun():(System.DateTime))):(System.DateTime)
+---@param some (System.Action*1System*DateTime)|(fun(obj:System.DateTime))
+---@param none (System.Action)|(fun())
+_G['Option*1System*DateTime'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:System.DateTime):(System.DateTime)
+---@param fallback Barotrauma.Option*1System*DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value System.DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1System*DateTime'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue System.DateTime
+---@return System.Boolean
+_G['Option*1System*DateTime'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1System*DateTime'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1System*DateTime'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value System.DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value System.DateTime
+---@return Barotrauma.Option*1System*DateTime
+_G['Option*1System*DateTime'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/server/_00007FFD96789C98.lua b/Meta/Types/server/_00007FFD96789C98.lua
new file mode 100644
index 0000000..8802ca9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96789C98.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.Networking.BannedPlayer : System.Object
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field AddressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+---`Field Public Instance`
+---@field Reason System.String
+---`Field Public Instance`
+---@field ExpirationTime Barotrauma.Option*1Barotrauma*SerializableDateTime
+---`Field Public Instance`
+---@field UniqueIdentifier System.UInt32
+---`Field Private Static`
+---@field LastIdentifier System.UInt32
+---`Getter Public Instance`
+---@field Expired System.Boolean
+_G['BannedPlayer'] = {}
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['BannedPlayer'].MatchesClient = function(client) end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param addressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+---@param reason System.String
+---@param expirationTime Barotrauma.Option*1Barotrauma*SerializableDateTime
+---@return Barotrauma.Networking.BannedPlayer
+_G['BannedPlayer'] = function(name, addressOrAccountId, reason, expirationTime) end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param addressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+---@param reason System.String
+---@param expirationTime Barotrauma.Option*1Barotrauma*SerializableDateTime
+---@return Barotrauma.Networking.BannedPlayer
+_G['BannedPlayer'].__new = function(name, addressOrAccountId, reason, expirationTime) end
+
diff --git a/Meta/Types/server/_00007FFD96789D28.lua b/Meta/Types/server/_00007FFD96789D28.lua
new file mode 100644
index 0000000..ff44d73
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96789D28.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Option*1Barotrauma*Networking*BannedPlayer : System.ValueType
+---`Field Private Instance`
+---@field hasValue System.Boolean
+---`Field Private Instance`
+---@field value Barotrauma.Networking.BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].IsSome = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].IsNone = function() end
+
+---`Method Public Instance`
+---@overload fun(outValue:Barotrauma.T1-ref):(System.Boolean)
+---@param outValue Barotrauma.Networking.BannedPlayer-ref
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].TryUnwrap = function(outValue) end
+
+---`Method Public Instance`
+---@param selector (System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.BannedPlayer):(Barotrauma.Option.TType))
+---@return Barotrauma.Option*1Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Select = function(selector) end
+
+---`Method Public Instance`
+---@overload fun(binder:(System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*2Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.BannedPlayer):(Barotrauma.Option*1Barotrauma*Option*TType))):(Barotrauma.Option*1Barotrauma*Option*TType)
+---@param binder (System.Func*1Barotrauma*Networking*BannedPlayer*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType)|(fun(arg:Barotrauma.Networking.BannedPlayer):(System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType))
+---@return System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Bind = function(binder) end
+
+---`Method Public Instance`
+---@overload fun(some:(System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Networking*BannedPlayer)|(fun(arg:Barotrauma.Networking.BannedPlayer):(Barotrauma.Networking.BannedPlayer)), none:(System.Func*1Barotrauma*Networking*BannedPlayer)|(fun():(Barotrauma.Networking.BannedPlayer))):(Barotrauma.Networking.BannedPlayer)
+---@param some (System.Action*1Barotrauma*Networking*BannedPlayer)|(fun(obj:Barotrauma.Networking.BannedPlayer))
+---@param none (System.Action)|(fun())
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Match = function(some, none) end
+
+---`Method Public Instance`
+---@overload fun(fallback:Barotrauma.Networking.BannedPlayer):(Barotrauma.Networking.BannedPlayer)
+---@param fallback Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Fallback = function(fallback) end
+
+---`Method Public Static`
+---@param value Barotrauma.Networking.BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Some = function(value) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@param otherValue Barotrauma.Networking.BannedPlayer
+---@return System.Boolean
+_G['Option*1Barotrauma*Networking*BannedPlayer'].ValueEquals = function(otherValue) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Option*1Barotrauma*Networking*BannedPlayer'].GetHashCode = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].None = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Option*1Barotrauma*Networking*BannedPlayer'].ToString = function() end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'] = function(hasValue, value) end
+
+---`Constructor Private Instance`
+---@param hasValue System.Boolean
+---@param value Barotrauma.Networking.BannedPlayer
+---@return Barotrauma.Option*1Barotrauma*Networking*BannedPlayer
+_G['Option*1Barotrauma*Networking*BannedPlayer'].__new = function(hasValue, value) end
+
diff --git a/Meta/Types/server/_00007FFD9678A5E0.lua b/Meta/Types/server/_00007FFD9678A5E0.lua
new file mode 100644
index 0000000..72e3ab5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678A5E0.lua
@@ -0,0 +1,440 @@
+---@meta
+---@class Barotrauma.MathUtils : System.Object
+_G['MathUtils'] = {}
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector3
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].DiscardZ = function(vector) end
+
+---`Method Public Static`
+---@param portion System.Single
+---@param total System.Single
+---@return System.Single
+_G['MathUtils'].Percentage = function(portion, total) end
+
+---`Method Public Static`
+---@overload fun(i:System.Int32, n:System.Int32):(System.Int32)
+---@param i System.Single
+---@param n System.Single
+---@return System.Single
+_G['MathUtils'].PositiveModulo = function(i, n) end
+
+---`Method Public Static`
+---@param x1 System.Double
+---@param y1 System.Double
+---@param x2 System.Double
+---@param y2 System.Double
+---@return System.Double
+_G['MathUtils'].Distance = function(x1, y1, x2, y2) end
+
+---`Method Public Static`
+---@overload fun(x1:System.Double, y1:System.Double, x2:System.Double, y2:System.Double):(System.Double)
+---@param x1 System.Int32
+---@param y1 System.Int32
+---@param x2 System.Int32
+---@param y2 System.Int32
+---@return System.Int32
+_G['MathUtils'].DistanceSquared = function(x1, y1, x2, y2) end
+
+---`Method Public Static`
+---@overload fun(v1:Microsoft.Xna.Framework.Vector2, v2:Microsoft.Xna.Framework.Vector2, amount:System.Single):(Microsoft.Xna.Framework.Vector2)
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].SmoothStep = function(t) end
+
+---`Method Public Static`
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].SmootherStep = function(t) end
+
+---`Method Public Static`
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].EaseIn = function(t) end
+
+---`Method Public Static`
+---@param t System.Single
+---@return System.Single
+_G['MathUtils'].EaseOut = function(t) end
+
+---`Method Public Static`
+---@param v Microsoft.Xna.Framework.Vector2
+---@param length System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].ClampLength = function(v, length) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param x System.Double
+---@param y System.Double
+---@return System.Boolean
+_G['MathUtils'].Contains = function(rect, x, y) end
+
+---`Method Public Static`
+---@overload fun(value:System.Single, div:System.Single):(System.Single)
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].Round = function(vector) end
+
+---`Method Public Static`
+---@param v System.Single
+---@return System.Int32
+_G['MathUtils'].RoundToInt = function(v) end
+
+---`Method Public Static`
+---@param value System.Single
+---@param div System.Single
+---@return System.Single
+_G['MathUtils'].RoundTowardsClosest = function(value, div) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].VectorToAngle = function(vector) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Point
+_G['MathUtils'].ToPoint = function(vector) end
+
+---`Method Public Static`
+---@overload fun(value:System.Single):(System.Boolean)
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].IsValid = function(vector) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param amount System.Int32
+---@return Microsoft.Xna.Framework.Rectangle
+_G['MathUtils'].ExpandRect = function(rect, amount) end
+
+---`Method Public Static`
+---@param pointA Microsoft.Xna.Framework.Vector2
+---@param pointB Microsoft.Xna.Framework.Vector2
+---@param pointC Microsoft.Xna.Framework.Vector2
+---@return System.Int32
+_G['MathUtils'].VectorOrientation = function(pointA, pointB, pointC) end
+
+---`Method Public Static`
+---@param from System.Single
+---@param to System.Single
+---@param step System.Single
+---@return System.Single
+_G['MathUtils'].CurveAngle = function(from, to, step) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Single
+_G['MathUtils'].WrapAngleTwoPi = function(angle) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Single
+_G['MathUtils'].WrapAnglePi = function(angle) end
+
+---`Method Public Static`
+---@param from System.Single
+---@param to System.Single
+---@return System.Single
+_G['MathUtils'].GetShortestAngle = function(from, to) end
+
+---`Method Public Static`
+---@param from System.Single
+---@param to System.Single
+---@return System.Single
+_G['MathUtils'].GetMidAngle = function(from, to) end
+
+---`Method Public Static`
+---@param a System.Single
+---@param b System.Single
+---@param c System.Single
+---@return System.Single
+_G['MathUtils'].SolveTriangleSSS = function(a, b, c) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Byte
+_G['MathUtils'].AngleToByte = function(angle) end
+
+---`Method Public Static`
+---@param b System.Byte
+---@return System.Single
+_G['MathUtils'].ByteToAngle = function(b) end
+
+---`Method Public Static`
+---@param a Microsoft.Xna.Framework.Vector2
+---@param b Microsoft.Xna.Framework.Vector2
+---@param c Microsoft.Xna.Framework.Vector2
+---@param d Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].LineSegmentsIntersect = function(a, b, c, d) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param b1 Microsoft.Xna.Framework.Vector2
+---@param b2 Microsoft.Xna.Framework.Vector2
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetLineSegmentIntersection = function(a1, a2, b1, b2, intersection) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param b1 Microsoft.Xna.Framework.Vector2
+---@param b2 Microsoft.Xna.Framework.Vector2
+---@param areLinesInfinite System.Boolean
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetLineIntersection = function(a1, a2, b1, b2, areLinesInfinite, intersection) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param axisAligned1 Microsoft.Xna.Framework.Vector2
+---@param axisAligned2 Microsoft.Xna.Framework.Vector2
+---@param isHorizontal System.Boolean
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetAxisAlignedLineIntersection = function(a1, a2, axisAligned1, axisAligned2, isHorizontal, intersection) end
+
+---`Method Public Static`
+---@param a1 Microsoft.Xna.Framework.Vector2
+---@param a2 Microsoft.Xna.Framework.Vector2
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param intersection Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['MathUtils'].GetLineRectangleIntersection = function(a1, a2, rect, intersection) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].FlipX = function(vector) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param point Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['MathUtils'].FlipY = function(point) end
+
+---`Method Public Static`
+---@overload fun(vector:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param point Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['MathUtils'].YX = function(point) end
+
+---`Method Public Static`
+---@param radians System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatedUnitXRadians = function(radians) end
+
+---`Method Public Static`
+---@param radians System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatedUnitYRadians = function(radians) end
+
+---`Method Public Static`
+---@param circlePos Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param isLineSegment System.Boolean
+---@param intersection1 System.Nullable
+---@param intersection2 System.Nullable
+---@return System.Int32
+_G['MathUtils'].GetLineCircleIntersections = function(circlePos, radius, point1, point2, isLineSegment, intersection1, intersection2) end
+
+---`Method Public Static`
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].LineToPointDistance = function(lineA, lineB, point) end
+
+---`Method Public Static`
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].LineToPointDistanceSquared = function(lineA, lineB, point) end
+
+---`Method Public Static`
+---@overload fun(lineA:Microsoft.Xna.Framework.Point, lineB:Microsoft.Xna.Framework.Point, point:Microsoft.Xna.Framework.Point):(System.Double)
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['MathUtils'].LineSegmentToPointDistanceSquared = function(lineA, lineB, point) end
+
+---`Method Private Static`
+---@param line1X System.Double
+---@param line1Y System.Double
+---@param line2X System.Double
+---@param line2Y System.Double
+---@param pointX System.Double
+---@param pointY System.Double
+---@return System.Double
+_G['MathUtils'].LineSegmentToPointDistanceSquared = function(line1X, line1Y, line2X, line2Y, pointX, pointY) end
+
+---`Method Public Static`
+---@param lineA Microsoft.Xna.Framework.Vector2
+---@param lineB Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].GetClosestPointOnLineSegment = function(lineA, lineB, point) end
+
+---`Method Public Static`
+---@param circlePos Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@return System.Boolean
+_G['MathUtils'].CircleIntersectsRectangle = function(circlePos, radius, rect) end
+
+---`Method Public Static`
+---@param center Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param angle System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].GetPointOnCircumference = function(center, radius, angle) end
+
+---`Method Public Static`
+---@param center Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@param points System.Int32
+---@param firstAngle? System.Single
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['MathUtils'].GetPointsOnCircumference = function(center, radius, points, firstAngle) end
+
+---`Method Public Static`
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param center Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+_G['MathUtils'].TriangulateConvexHull = function(vertices, center) end
+
+---`Method Public Static`
+---@param points (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['MathUtils'].GiftWrap = function(points) end
+
+---`Method Public Static`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param iterations System.Int32
+---@param offsetAmount System.Single
+---@param rng System.Random
+---@param bounds? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+_G['MathUtils'].GenerateJaggedLine = function(start, luaKey__end, iterations, offsetAmount, rng, bounds) end
+
+---`Method Public Static`
+---@param i System.Int64
+---@return System.String
+_G['MathUtils'].GetBytesReadable = function(i) end
+
+---`Method Public Static`
+---@param rects (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param point Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].SplitRectanglesHorizontal = function(rects, point) end
+
+---`Method Public Static`
+---@param rects (System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---@param point Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].SplitRectanglesVertical = function(rects, point) end
+
+---`Method Public Static`
+---@overload fun(a:System.Single, b:System.Single, epsilon?:System.Single):(System.Boolean)
+---@param a Microsoft.Xna.Framework.Vector2
+---@param b Microsoft.Xna.Framework.Vector2
+---@param epsilon? System.Single
+---@return System.Boolean
+_G['MathUtils'].NearlyEqual = function(a, b, epsilon) end
+
+---`Method Public Static`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param control Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param t System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].Bezier = function(start, control, luaKey__end, t) end
+
+---`Method Public Static`
+---@param f System.Single
+---@param p System.Single
+---@return System.Single
+_G['MathUtils'].Pow = function(f, p) end
+
+---`Method Public Static`
+---@param f System.Single
+---@return System.Single
+_G['MathUtils'].Pow2 = function(f) end
+
+---`Method Public Static`
+---@param alignment Barotrauma.Alignment
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].ToVector2 = function(alignment) end
+
+---`Method Public Static`
+---@param point Microsoft.Xna.Framework.Vector2
+---@param target Microsoft.Xna.Framework.Vector2
+---@param radians System.Single
+---@param clockWise? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatePointAroundTarget = function(point, target, radians, clockWise) end
+
+---`Method Public Static`
+---@param point Microsoft.Xna.Framework.Vector2
+---@param radians System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['MathUtils'].RotatePoint = function(point, radians) end
+
+---`Method Public Static`
+---@overload fun(up:Microsoft.Xna.Framework.Vector2, center:Microsoft.Xna.Framework.Vector2, size:Microsoft.Xna.Framework.Vector2):((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]))
+---@param corners (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param up Microsoft.Xna.Framework.Vector2
+---@param center Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@return (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+_G['MathUtils'].GetImaginaryRect = function(corners, up, center, size) end
+
+---`Method Public Static`
+---@overload fun(corners:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[]), point:Microsoft.Xna.Framework.Vector2):(System.Boolean)
+---@param c1 Microsoft.Xna.Framework.Vector2
+---@param c2 Microsoft.Xna.Framework.Vector2
+---@param c3 Microsoft.Xna.Framework.Vector2
+---@param c4 Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].RectangleContainsPoint = function(c1, c2, c3, c4, point) end
+
+---`Method Public Static`
+---@param c1 Microsoft.Xna.Framework.Vector2
+---@param c2 Microsoft.Xna.Framework.Vector2
+---@param c3 Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MathUtils'].TriangleContainsPoint = function(c1, c2, c3, point) end
+
+---`Method Public Static`
+---@param min System.Single
+---@param max System.Single
+---@param v System.Single
+---@return System.Single
+_G['MathUtils'].InverseLerp = function(min, max, v) end
+
+---`Method Public Static`
+---@param ... System.Single
+---@return System.Single
+_G['MathUtils'].Min = function(...) end
+
+---`Method Public Static`
+---@param ... System.Single
+---@return System.Single
+_G['MathUtils'].Max = function(...) end
+
+---`Method Public Static`
+---@param val System.UInt32
+---@return System.UInt32
+_G['MathUtils'].RoundUpToPowerOfTwo = function(val) end
+
diff --git a/Meta/Types/server/_00007FFD9678B250.lua b/Meta/Types/server/_00007FFD9678B250.lua
new file mode 100644
index 0000000..58a8a46
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678B250.lua
@@ -0,0 +1,348 @@
+---@meta
+---@class System.Math : System.Object
+---`Field Private Static`
+---@field roundPower10Double (System.Double-arr)|(System.Double[])
+---`Field Public Static`
+---@field E System.Double
+---`Field Public Static`
+---@field PI System.Double
+---`Field Public Static`
+---@field Tau System.Double
+_G['System']['Math'] = {}
+
+---`Method Public Static`
+---@overload fun(val1:System.Byte, val2:System.Byte):(System.Byte)
+---@overload fun(val1:System.Decimal, val2:System.Decimal):(System.Decimal)
+---@overload fun(val1:System.Double, val2:System.Double):(System.Double)
+---@overload fun(val1:System.Int16, val2:System.Int16):(System.Int16)
+---@overload fun(val1:System.Int32, val2:System.Int32):(System.Int32)
+---@overload fun(val1:System.Int64, val2:System.Int64):(System.Int64)
+---@overload fun(val1:System.IntPtr, val2:System.IntPtr):(System.IntPtr)
+---@overload fun(val1:System.SByte, val2:System.SByte):(System.SByte)
+---@overload fun(val1:System.Single, val2:System.Single):(System.Single)
+---@overload fun(val1:System.UInt16, val2:System.UInt16):(System.UInt16)
+---@overload fun(val1:System.UInt32, val2:System.UInt32):(System.UInt32)
+---@overload fun(val1:System.UInt64, val2:System.UInt64):(System.UInt64)
+---@param val1 System.UIntPtr
+---@param val2 System.UIntPtr
+---@return System.UIntPtr
+_G['System']['Math'].Min = function(val1, val2) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].MinMagnitude = function(x, y) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].ReciprocalEstimate = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].ReciprocalSqrtEstimate = function(d) end
+
+---`Method Public Static`
+---@overload fun(d:System.Decimal):(System.Decimal)
+---@overload fun(d:System.Decimal, decimals:System.Int32):(System.Decimal)
+---@overload fun(d:System.Decimal, mode:System.MidpointRounding):(System.Decimal)
+---@overload fun(d:System.Decimal, decimals:System.Int32, mode:System.MidpointRounding):(System.Decimal)
+---@overload fun(a:System.Double):(System.Double)
+---@overload fun(value:System.Double, digits:System.Int32):(System.Double)
+---@overload fun(value:System.Double, mode:System.MidpointRounding):(System.Double)
+---@param value System.Double
+---@param digits System.Int32
+---@param mode System.MidpointRounding
+---@return System.Double
+_G['System']['Math'].Round = function(value, digits, mode) end
+
+---`Method Public Static`
+---@overload fun(value:System.Decimal):(System.Int32)
+---@overload fun(value:System.Double):(System.Int32)
+---@overload fun(value:System.Int16):(System.Int32)
+---@overload fun(value:System.Int32):(System.Int32)
+---@overload fun(value:System.Int64):(System.Int32)
+---@overload fun(value:System.IntPtr):(System.Int32)
+---@overload fun(value:System.SByte):(System.Int32)
+---@param value System.Single
+---@return System.Int32
+_G['System']['Math'].Sign = function(value) end
+
+---`Method Public Static`
+---@overload fun(d:System.Decimal):(System.Decimal)
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Truncate = function(d) end
+
+---`Method Private Static`
+---@param min System.Math.T
+---@param max System.Math.T
+_G['System']['Math'].ThrowMinMaxException = function(min, max) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param n System.Int32
+---@return System.Double
+_G['System']['Math'].ScaleB = function(x, n) end
+
+---`Method Public Static`
+---@overload fun(value:System.Double):(System.Double)
+---@overload fun(value:System.Single):(System.Single)
+---@overload fun(value:System.Int16):(System.Int16)
+---@overload fun(value:System.Int32):(System.Int32)
+---@overload fun(value:System.Int64):(System.Int64)
+---@overload fun(value:System.IntPtr):(System.IntPtr)
+---@overload fun(value:System.SByte):(System.SByte)
+---@param value System.Decimal
+---@return System.Decimal
+_G['System']['Math'].Abs = function(value) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Acos = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Acosh = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Asin = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Asinh = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Atan = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Atanh = function(d) end
+
+---`Method Public Static`
+---@param y System.Double
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].Atan2 = function(y, x) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Cbrt = function(d) end
+
+---`Method Public Static`
+---@overload fun(a:System.Double):(System.Double)
+---@param d System.Decimal
+---@return System.Decimal
+_G['System']['Math'].Ceiling = function(d) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Cos = function(d) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.Double
+_G['System']['Math'].Cosh = function(value) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Exp = function(d) end
+
+---`Method Public Static`
+---@overload fun(d:System.Double):(System.Double)
+---@param d System.Decimal
+---@return System.Decimal
+_G['System']['Math'].Floor = function(d) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@param z System.Double
+---@return System.Double
+_G['System']['Math'].FusedMultiplyAdd = function(x, y, z) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Int32
+_G['System']['Math'].ILogB = function(x) end
+
+---`Method Public Static`
+---@overload fun(d:System.Double):(System.Double)
+---@param a System.Double
+---@param newBase System.Double
+---@return System.Double
+_G['System']['Math'].Log = function(a, newBase) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].Log2 = function(x) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Log10 = function(d) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].Pow = function(x, y) end
+
+---`Method Public Static`
+---@param a System.Double
+---@return System.Double
+_G['System']['Math'].Sin = function(a) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.ValueTuple*1System*Double*1System*Double
+_G['System']['Math'].SinCos = function(x) end
+
+---`Method Private Static`
+---@param x System.Double
+---@param sin System.Double-ptr
+---@param cos System.Double-ptr
+_G['System']['Math'].SinCos = function(x, sin, cos) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.Double
+_G['System']['Math'].Sinh = function(value) end
+
+---`Method Public Static`
+---@param d System.Double
+---@return System.Double
+_G['System']['Math'].Sqrt = function(d) end
+
+---`Method Public Static`
+---@param a System.Double
+---@return System.Double
+_G['System']['Math'].Tan = function(a) end
+
+---`Method Public Static`
+---@param value System.Double
+---@return System.Double
+_G['System']['Math'].Tanh = function(value) end
+
+---`Method Private Static`
+---@param x System.Double
+---@param intptr System.Double-ptr
+---@return System.Double
+_G['System']['Math'].ModF = function(x, intptr) end
+
+---`Method Private Static`
+_G['System']['Math'].ThrowAbsOverflow = function() end
+
+---`Method Public Static`
+---@overload fun(a:System.Int32, b:System.Int32):(System.Int64)
+---@overload fun(a:System.UInt64, b:System.UInt64, low:System.UInt64-ref):(System.UInt64)
+---@param a System.Int64
+---@param b System.Int64
+---@param low System.Int64-ref
+---@return System.Int64
+_G['System']['Math'].BigMul = function(a, b, low) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].BitDecrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Double
+---@return System.Double
+_G['System']['Math'].BitIncrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].CopySign = function(x, y) end
+
+---`Method Public Static`
+---@overload fun(a:System.Int32, b:System.Int32, result:System.Int32-ref):(System.Int32)
+---@overload fun(a:System.Int64, b:System.Int64, result:System.Int64-ref):(System.Int64)
+---@overload fun(left:System.SByte, right:System.SByte):(System.ValueTuple*1System*SByte*1System*SByte)
+---@overload fun(left:System.Byte, right:System.Byte):(System.ValueTuple*1System*Byte*1System*Byte)
+---@overload fun(left:System.Int16, right:System.Int16):(System.ValueTuple*1System*Int16*1System*Int16)
+---@overload fun(left:System.UInt16, right:System.UInt16):(System.ValueTuple*1System*UInt16*1System*UInt16)
+---@overload fun(left:System.Int32, right:System.Int32):(System.ValueTuple*1System*Int32*1System*Int32)
+---@overload fun(left:System.UInt32, right:System.UInt32):(System.ValueTuple*1System*UInt32*1System*UInt32)
+---@overload fun(left:System.Int64, right:System.Int64):(System.ValueTuple*1System*Int64*1System*Int64)
+---@overload fun(left:System.UInt64, right:System.UInt64):(System.ValueTuple*1System*UInt64*1System*UInt64)
+---@overload fun(left:System.IntPtr, right:System.IntPtr):(System.ValueTuple*1System*IntPtr*1System*IntPtr)
+---@param left System.UIntPtr
+---@param right System.UIntPtr
+---@return System.ValueTuple*1System*UIntPtr*1System*UIntPtr
+_G['System']['Math'].DivRem = function(left, right) end
+
+---`Method Public Static`
+---@overload fun(value:System.Byte, min:System.Byte, max:System.Byte):(System.Byte)
+---@overload fun(value:System.Decimal, min:System.Decimal, max:System.Decimal):(System.Decimal)
+---@overload fun(value:System.Double, min:System.Double, max:System.Double):(System.Double)
+---@overload fun(value:System.Int16, min:System.Int16, max:System.Int16):(System.Int16)
+---@overload fun(value:System.Int32, min:System.Int32, max:System.Int32):(System.Int32)
+---@overload fun(value:System.Int64, min:System.Int64, max:System.Int64):(System.Int64)
+---@overload fun(value:System.IntPtr, min:System.IntPtr, max:System.IntPtr):(System.IntPtr)
+---@overload fun(value:System.SByte, min:System.SByte, max:System.SByte):(System.SByte)
+---@overload fun(value:System.Single, min:System.Single, max:System.Single):(System.Single)
+---@overload fun(value:System.UInt16, min:System.UInt16, max:System.UInt16):(System.UInt16)
+---@overload fun(value:System.UInt32, min:System.UInt32, max:System.UInt32):(System.UInt32)
+---@overload fun(value:System.UInt64, min:System.UInt64, max:System.UInt64):(System.UInt64)
+---@param value System.UIntPtr
+---@param min System.UIntPtr
+---@param max System.UIntPtr
+---@return System.UIntPtr
+_G['System']['Math'].Clamp = function(value, min, max) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].IEEERemainder = function(x, y) end
+
+---`Method Public Static`
+---@overload fun(val1:System.Byte, val2:System.Byte):(System.Byte)
+---@overload fun(val1:System.Decimal, val2:System.Decimal):(System.Decimal)
+---@overload fun(val1:System.Double, val2:System.Double):(System.Double)
+---@overload fun(val1:System.Int16, val2:System.Int16):(System.Int16)
+---@overload fun(val1:System.Int32, val2:System.Int32):(System.Int32)
+---@overload fun(val1:System.Int64, val2:System.Int64):(System.Int64)
+---@overload fun(val1:System.IntPtr, val2:System.IntPtr):(System.IntPtr)
+---@overload fun(val1:System.SByte, val2:System.SByte):(System.SByte)
+---@overload fun(val1:System.Single, val2:System.Single):(System.Single)
+---@overload fun(val1:System.UInt16, val2:System.UInt16):(System.UInt16)
+---@overload fun(val1:System.UInt32, val2:System.UInt32):(System.UInt32)
+---@overload fun(val1:System.UInt64, val2:System.UInt64):(System.UInt64)
+---@param val1 System.UIntPtr
+---@param val2 System.UIntPtr
+---@return System.UIntPtr
+_G['System']['Math'].Max = function(val1, val2) end
+
+---`Method Public Static`
+---@param x System.Double
+---@param y System.Double
+---@return System.Double
+_G['System']['Math'].MaxMagnitude = function(x, y) end
+
+---`Constructor Private Static`
+---@return System.Math
+_G['System']['Math'] = function() end
+
+---`Constructor Private Static`
+---@return System.Math
+_G['System']['Math'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9678B760.lua b/Meta/Types/server/_00007FFD9678B760.lua
new file mode 100644
index 0000000..bf60b71
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678B760.lua
@@ -0,0 +1,250 @@
+---@meta
+---@class System.MathF : System.Object
+---`Field Private Static`
+---@field roundPower10Single (System.Single-arr)|(System.Single[])
+---`Field Public Static`
+---@field E System.Single
+---`Field Public Static`
+---@field PI System.Single
+---`Field Public Static`
+---@field Tau System.Single
+_G['System']['MathF'] = {}
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Acos = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Acosh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Asin = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Asinh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Atan = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Atanh = function(x) end
+
+---`Method Public Static`
+---@param y System.Single
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Atan2 = function(y, x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Cbrt = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Ceiling = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Cos = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Cosh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Exp = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Floor = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@param z System.Single
+---@return System.Single
+_G['System']['MathF'].FusedMultiplyAdd = function(x, y, z) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Int32
+_G['System']['MathF'].ILogB = function(x) end
+
+---`Method Public Static`
+---@overload fun(x:System.Single):(System.Single)
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Log = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Log2 = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Log10 = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Pow = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Sin = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.ValueTuple*1System*Single*1System*Single
+_G['System']['MathF'].SinCos = function(x) end
+
+---`Method Private Static`
+---@param x System.Single
+---@param sin System.Single-ptr
+---@param cos System.Single-ptr
+_G['System']['MathF'].SinCos = function(x, sin, cos) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Sinh = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Sqrt = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Tan = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Tanh = function(x) end
+
+---`Method Private Static`
+---@param x System.Single
+---@param intptr System.Single-ptr
+---@return System.Single
+_G['System']['MathF'].ModF = function(x, intptr) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Abs = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].BitDecrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].BitIncrement = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].CopySign = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].IEEERemainder = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Max = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].MaxMagnitude = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].Min = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param y System.Single
+---@return System.Single
+_G['System']['MathF'].MinMagnitude = function(x, y) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].ReciprocalEstimate = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].ReciprocalSqrtEstimate = function(x) end
+
+---`Method Public Static`
+---@overload fun(x:System.Single):(System.Single)
+---@overload fun(x:System.Single, digits:System.Int32):(System.Single)
+---@overload fun(x:System.Single, mode:System.MidpointRounding):(System.Single)
+---@param x System.Single
+---@param digits System.Int32
+---@param mode System.MidpointRounding
+---@return System.Single
+_G['System']['MathF'].Round = function(x, digits, mode) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Int32
+_G['System']['MathF'].Sign = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@return System.Single
+_G['System']['MathF'].Truncate = function(x) end
+
+---`Method Public Static`
+---@param x System.Single
+---@param n System.Int32
+---@return System.Single
+_G['System']['MathF'].ScaleB = function(x, n) end
+
+---`Constructor Private Static`
+---@return System.MathF
+_G['System']['MathF'] = function() end
+
+---`Constructor Private Static`
+---@return System.MathF
+_G['System']['MathF'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9678B970.lua b/Meta/Types/server/_00007FFD9678B970.lua
new file mode 100644
index 0000000..3bc2906
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678B970.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Microsoft.Xna.Framework.MathHelper : System.Object
+---`Field Public Static`
+---@field E System.Single
+---`Field Public Static`
+---@field Log10E System.Single
+---`Field Public Static`
+---@field Log2E System.Single
+---`Field Public Static`
+---@field Pi System.Single
+---`Field Public Static`
+---@field PiOver2 System.Single
+---`Field Public Static`
+---@field PiOver4 System.Single
+---`Field Public Static`
+---@field TwoPi System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'] = {}
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param value3 System.Single
+---@param amount1 System.Single
+---@param amount2 System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Barycentric = function(value1, value2, value3, amount1, amount2) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param value3 System.Single
+---@param value4 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].CatmullRom = function(value1, value2, value3, value4, amount) end
+
+---`Method Public Static`
+---@overload fun(value:System.Single, min:System.Single, max:System.Single):(System.Single)
+---@param value System.Int32
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Clamp = function(value, min, max) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Distance = function(value1, value2) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param tangent1 System.Single
+---@param value2 System.Single
+---@param tangent2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Hermite = function(value1, tangent1, value2, tangent2, amount) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Lerp = function(value1, value2, amount) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].LerpPrecise = function(value1, value2, amount) end
+
+---`Method Public Static`
+---@overload fun(value1:System.Single, value2:System.Single):(System.Single)
+---@param value1 System.Int32
+---@param value2 System.Int32
+---@return System.Int32
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Max = function(value1, value2) end
+
+---`Method Public Static`
+---@overload fun(value1:System.Single, value2:System.Single):(System.Single)
+---@param value1 System.Int32
+---@param value2 System.Int32
+---@return System.Int32
+_G['Microsoft']['Xna']['Framework']['MathHelper'].Min = function(value1, value2) end
+
+---`Method Public Static`
+---@param value1 System.Single
+---@param value2 System.Single
+---@param amount System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].SmoothStep = function(value1, value2, amount) end
+
+---`Method Public Static`
+---@param radians System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].ToDegrees = function(radians) end
+
+---`Method Public Static`
+---@param degrees System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].ToRadians = function(degrees) end
+
+---`Method Public Static`
+---@param angle System.Single
+---@return System.Single
+_G['Microsoft']['Xna']['Framework']['MathHelper'].WrapAngle = function(angle) end
+
+---`Method Public Static`
+---@param value System.Int32
+---@return System.Boolean
+_G['Microsoft']['Xna']['Framework']['MathHelper'].IsPowerOfTwo = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD9678BBE0.lua b/Meta/Types/server/_00007FFD9678BBE0.lua
new file mode 100644
index 0000000..dd23cbe
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678BBE0.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.PerformanceCounter : System.Object
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Private Instance`
+---@field sampleBuffer (System.Collections.Generic.Queue*1System*Double)|(fun():(System.Double))
+---`Field Private Instance`
+---@field averageFramesPerSecondBuffer (System.Collections.Generic.Queue*1System*Double)|(fun():(System.Double))
+---`Field Private Instance`
+---@field timer System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field lastSecondMark System.Int64
+---`Field Private Instance`
+---@field lastMinuteMark System.Int64
+---`Field Private Instance`
+---@field elapsedTicks (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Queue*2System*Int64)|({[System.String]:((System.Collections.Generic.Queue*1System*Int64)|(fun():(System.Int64)))})
+---`Field Private Instance`
+---@field avgTicksPerFrame (System.Collections.Generic.Dictionary*1System*String*1System*Int64)|({[System.String]:(System.Int64)})
+---`Field Private Instance`
+---@field tempSavedIdentifiers (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Public Static`
+---@field MaximumSamples System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AverageFramesPerSecond System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentFramesPerSecond System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AverageFramesPerSecondInPastMinute System.Double
+---`Getter Public Instance`
+---@field GetSavedIdentifiers (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+_G['PerformanceCounter'] = {}
+
+---`Method Public Instance`
+---@param identifier System.String
+---@param ticks System.Int64
+_G['PerformanceCounter'].AddElapsedTicks = function(identifier, ticks) end
+
+---`Method Public Instance`
+---@param identifier System.String
+---@return System.Single
+_G['PerformanceCounter'].GetAverageElapsedMillisecs = function(identifier) end
+
+---`Method Public Instance`
+---@param deltaTime System.Double
+---@return System.Boolean
+_G['PerformanceCounter'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PerformanceCounter
+_G['PerformanceCounter'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PerformanceCounter
+_G['PerformanceCounter'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9678BFD0.lua b/Meta/Types/server/_00007FFD9678BFD0.lua
new file mode 100644
index 0000000..7e14353
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678BFD0.lua
@@ -0,0 +1,94 @@
+---@meta
+---@class Barotrauma.GameMain : System.Object
+---`Field Public Instance`
+---@field CommandLineArgs (System.String-arr)|(System.String[])
+---`Field Public Static`
+---@field Version System.Version
+---`Field Private Static`
+---@field world FarseerPhysics.Dynamics.World
+---`Field Public Static`
+---@field LuaCs Barotrauma.LuaCsSetup
+---`Field Public Static`
+---@field Server Barotrauma.Networking.GameServer
+---`Field Public Static`
+---@field GameSession Barotrauma.GameSession
+---`Field Public Static`
+---@field GameScreen Barotrauma.GameScreen
+---`Field Public Static`
+---@field NetLobbyScreen Barotrauma.NetLobbyScreen
+---`Field Public Static`
+---@field SubEditorScreen Barotrauma.Screen
+---`Field Public Static`
+---@field ShouldRun System.Boolean
+---`Field Private Static`
+---@field stopwatch System.Diagnostics.Stopwatch
+---`Field Private Static`
+---@field prevUpdateRates (System.Collections.Generic.Queue*1System*Int32)|(fun():(System.Int32))
+---`Field Private Static`
+---@field updateCount System.Int32
+---`Getter Public Static`
+---@field IsSingleplayer System.Boolean
+---`Getter Public Static`
+---@field IsMultiplayer System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field World FarseerPhysics.Dynamics.World
+---`Getter Public Static`
+---@field NetworkMember Barotrauma.Networking.NetworkMember
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Instance Barotrauma.GameMain
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MainThread System.Threading.Thread
+---`Getter Public Static`
+---@field VanillaContent Barotrauma.ContentPackage
+_G['GameMain'] = {}
+
+---`Method Public Instance`
+_G['GameMain'].Init = function() end
+
+---`Method Private Instance`
+_G['GameMain'].CheckContentPackage = function() end
+
+---`Method Public Instance`
+_G['GameMain'].StartServer = function() end
+
+---`Method Public Instance`
+_G['GameMain'].CloseServer = function() end
+
+---`Method Public Instance`
+_G['GameMain'].Run = function() end
+
+---`Method Public Static`
+_G['GameMain'].ResetFrameTime = function() end
+
+---`Method Public Instance`
+---@param loader (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+---@param waitKeyHit? System.Boolean
+---@return Barotrauma.CoroutineHandle
+_G['GameMain'].ShowLoading = function(loader, waitKeyHit) end
+
+---`Method Public Instance`
+_G['GameMain'].Exit = function() end
+
+---`Constructor Public Instance`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(args:(System.String-arr)|(System.String[])):Barotrauma.GameMain
+---@return Barotrauma.GameMain
+_G['GameMain'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9678C418.lua b/Meta/Types/server/_00007FFD9678C418.lua
new file mode 100644
index 0000000..420933a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678C418.lua
@@ -0,0 +1,149 @@
+---@meta
+---@class Barotrauma.SerializableProperty : System.Object
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field Attributes System.ComponentModel.AttributeCollection
+---`Field Public Instance`
+---@field PropertyType System.Type
+---`Field Public Instance`
+---@field OverridePrefabValues System.Boolean
+---`Field Public Instance`
+---@field PropertyInfo System.Reflection.PropertyInfo
+---`Field Private Instance`
+---@field valueGetters (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*Object*2System*Object)|({[Barotrauma.Identifier]:((System.Func*1System*Object*1System*Object)|(fun(arg:System.Object):(System.Object)))})
+---`Field Private Static`
+---@field supportedTypes (System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*String)|({[System.Type]:(System.String)})
+---`Field Private Static`
+---@field cachedProperties (System.Collections.Generic.Dictionary*1System*Type*1System*Collections*Generic*Dictionary*2Barotrauma*Identifier*2Barotrauma*SerializableProperty)|({[System.Type]:((System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)}))})
+_G['SerializableProperty'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.SerializableProperty.T
+_G['SerializableProperty'].GetAttribute = function() end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@param val System.Object
+_G['SerializableProperty'].SetValue = function(parentObject, val) end
+
+---`Method Public Instance`
+---@overload fun(parentObject:System.Object, value:System.String):(System.Boolean)
+---@overload fun(parentObject:System.Object, value:System.Object):(System.Boolean)
+---@overload fun(parentObject:System.Object, value:System.Single):(System.Boolean)
+---@overload fun(parentObject:System.Object, value:System.Boolean):(System.Boolean)
+---@param parentObject System.Object
+---@param value System.Int32
+---@return System.Boolean
+_G['SerializableProperty'].TrySetValue = function(parentObject, value) end
+
+---`Method Private Static`
+---@param stringArrayValues System.String
+---@return (System.String-arr)|(System.String[])
+_G['SerializableProperty'].ParseStringArray = function(stringArrayValues) end
+
+---`Method Private Static`
+---@param stringArrayValues System.String
+---@return (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+_G['SerializableProperty'].ParseIdentifierArray = function(stringArrayValues) end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@return System.Object
+_G['SerializableProperty'].GetValue = function(parentObject) end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@return System.Single
+_G['SerializableProperty'].GetFloatValue = function(parentObject) end
+
+---`Method Public Instance`
+---@param parentObject System.Object
+---@return System.Boolean
+_G['SerializableProperty'].GetBoolValue = function(parentObject) end
+
+---`Method Public Static`
+---@param type System.Type
+---@return System.String
+_G['SerializableProperty'].GetSupportedTypeName = function(type) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@return System.Object
+_G['SerializableProperty'].TryGetValueWithoutReflection = function(parentObject) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Single-ref
+---@return System.Boolean
+_G['SerializableProperty'].TryGetFloatValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Boolean-ref
+---@return System.Boolean
+_G['SerializableProperty'].TryGetBoolValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.String-ref
+---@return System.Boolean
+_G['SerializableProperty'].TryGetStringValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Single
+---@return System.Boolean
+_G['SerializableProperty'].TrySetFloatValueWithoutReflection = function(parentObject, value) end
+
+---`Method Private Instance`
+---@param parentObject System.Object
+---@param value System.Boolean
+---@return System.Boolean
+_G['SerializableProperty'].TrySetBoolValueWithoutReflection = function(parentObject, value) end
+
+---`Method Public Static`
+---@overload fun(obj:Barotrauma.ISerializableEntity):((System.Collections.Generic.List*1Barotrauma*SerializableProperty)|(Barotrauma.SerializableProperty[]))
+---@param obj System.Object
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['SerializableProperty'].GetProperties = function(obj) end
+
+---`Method Public Static`
+---@param obj System.Object
+---@param element? System.Xml.Linq.XElement
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['SerializableProperty'].DeserializeProperties = function(obj, element) end
+
+---`Method Public Static`
+---@param obj Barotrauma.ISerializableEntity
+---@param element System.Xml.Linq.XElement
+---@param saveIfDefault? System.Boolean
+---@param ignoreEditable? System.Boolean
+_G['SerializableProperty'].SerializeProperties = function(obj, element, saveIfDefault, ignoreEditable) end
+
+---`Method Public Static`
+---@param entity Barotrauma.ISerializableEntity
+---@param configElement Barotrauma.ContentXElement
+---@param savedVersion System.Version
+_G['SerializableProperty'].UpgradeGameVersion = function(entity, configElement, savedVersion) end
+
+---`Constructor Public Instance`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(property:System.ComponentModel.PropertyDescriptor):Barotrauma.SerializableProperty
+---@return Barotrauma.SerializableProperty
+_G['SerializableProperty'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9678CDB0.lua b/Meta/Types/server/_00007FFD9678CDB0.lua
new file mode 100644
index 0000000..f08391f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678CDB0.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.Range*1System*Single : System.ValueType
+---`Field Private Instance`
+---@field start System.Single
+---`Field Private Instance`
+---@field end System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Start System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field End System.Single
+_G['Range*1System*Single'] = {}
+
+---`Method Public Instance`
+---@param v System.Single-ref
+---@return System.Boolean
+_G['Range*1System*Single'].Contains = function(v) end
+
+---`Method Private Instance`
+_G['Range*1System*Single'].VerifyStartLessThanEnd = function() end
+
+---`Method Private Instance`
+_G['Range*1System*Single'].VerifyEndGreaterThanStart = function() end
+
+---`Constructor Public Instance`
+---@param start System.Single
+---@param luaKey__end System.Single
+---@return Barotrauma.Range*1System*Single
+_G['Range*1System*Single'] = function(start, luaKey__end) end
+
+---`Constructor Public Instance`
+---@param start System.Single
+---@param luaKey__end System.Single
+---@return Barotrauma.Range*1System*Single
+_G['Range*1System*Single'].__new = function(start, luaKey__end) end
+
diff --git a/Meta/Types/server/_00007FFD9678D048.lua b/Meta/Types/server/_00007FFD9678D048.lua
new file mode 100644
index 0000000..21a9577
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678D048.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.Range*1System*Int32 : System.ValueType
+---`Field Private Instance`
+---@field start System.Int32
+---`Field Private Instance`
+---@field end System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Start System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field End System.Int32
+_G['Range*1System*Int32'] = {}
+
+---`Method Public Instance`
+---@param v System.Int32-ref
+---@return System.Boolean
+_G['Range*1System*Int32'].Contains = function(v) end
+
+---`Method Private Instance`
+_G['Range*1System*Int32'].VerifyStartLessThanEnd = function() end
+
+---`Method Private Instance`
+_G['Range*1System*Int32'].VerifyEndGreaterThanStart = function() end
+
+---`Constructor Public Instance`
+---@param start System.Int32
+---@param luaKey__end System.Int32
+---@return Barotrauma.Range*1System*Int32
+_G['Range*1System*Int32'] = function(start, luaKey__end) end
+
+---`Constructor Public Instance`
+---@param start System.Int32
+---@param luaKey__end System.Int32
+---@return Barotrauma.Range*1System*Int32
+_G['Range*1System*Int32'].__new = function(start, luaKey__end) end
+
diff --git a/Meta/Types/server/_00007FFD9678D718.lua b/Meta/Types/server/_00007FFD9678D718.lua
new file mode 100644
index 0000000..89d4936
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678D718.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.LanguageIdentifier : System.ValueType
+---`Field Public Instance`
+---@field Value Barotrauma.Identifier
+---`Field Public Static`
+---@field None Barotrauma.LanguageIdentifier
+---`Getter Public Instance`
+---@field ValueHash System.Int32
+_G['LanguageIdentifier'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LanguageIdentifier'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LanguageIdentifier'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LanguageIdentifier'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(value:Barotrauma.Identifier):Barotrauma.LanguageIdentifier
+---@return Barotrauma.LanguageIdentifier
+_G['LanguageIdentifier'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9678D7B8.lua b/Meta/Types/server/_00007FFD9678D7B8.lua
new file mode 100644
index 0000000..cac540f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9678D7B8.lua
@@ -0,0 +1,138 @@
+---@meta
+---@class Barotrauma.LocalizedString : System.Object
+---@operator add(Barotrauma.LocalizedString):Barotrauma.LocalizedString
+---@operator add(System.Object):Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field languageVersion System.Int32
+---`Field NonPublic Instance`
+---@field cachedValue System.String
+---`Field Public Static`
+---@field EmptyString Barotrauma.RawLString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Getter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---@field Length System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Loaded System.Boolean
+_G['LocalizedString'] = {}
+
+---`Method NonPublic Instance`
+_G['LocalizedString'].UpdateLanguage = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['LocalizedString'].MustRetrieveValue = function() end
+
+---`Method NonPublic Static`
+---@param str Barotrauma.LocalizedString
+---@return System.Boolean
+_G['LocalizedString'].MustRetrieveValue = function(str) end
+
+---`Method Public Instance Abstract Virtual`
+_G['LocalizedString'].RetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LocalizedString'].ToString = function() end
+
+---`Method Public Instance`
+---@overload fun(subStr:System.String, comparison?:System.StringComparison):(System.Boolean)
+---@param chr System.Char
+---@param comparison? System.StringComparison
+---@return System.Boolean
+_G['LocalizedString'].Contains = function(chr, comparison) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].ToUpper = function() end
+
+---`Method Public Static`
+---@overload fun(separator:System.String, ...:Barotrauma.LocalizedString):(Barotrauma.LocalizedString)
+---@param separator System.String
+---@param subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].Join = function(separator, subStrs) end
+
+---`Method Public Instance`
+---@param fallback Barotrauma.LocalizedString
+---@param useDefaultLanguageIfFound? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].Fallback = function(fallback, useDefaultLanguageIfFound) end
+
+---`Method Public Instance`
+---@param ... System.Char
+---@return (System.Collections.Generic.IReadOnlyList*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+_G['LocalizedString'].Split = function(...) end
+
+---`Method Public Instance`
+---@overload fun(find:Barotrauma.Identifier, replace:Barotrauma.LocalizedString, stringComparison?:System.StringComparison):(Barotrauma.LocalizedString)
+---@overload fun(find:System.String, replace:Barotrauma.LocalizedString, stringComparison?:System.StringComparison):(Barotrauma.LocalizedString)
+---@param find Barotrauma.LocalizedString
+---@param replace Barotrauma.LocalizedString
+---@param stringComparison? System.StringComparison
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].Replace = function(find, replace, stringComparison) end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].TrimStart = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].TrimEnd = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].ToLower = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LocalizedString'].Equals = function(obj) end
+
+---`Method Public Instance`
+---@overload fun(other:Barotrauma.LocalizedString, comparison?:System.StringComparison):(System.Boolean)
+---@param other System.String
+---@param comparison? System.StringComparison
+---@return System.Boolean
+_G['LocalizedString'].Equals = function(other, comparison) end
+
+---`Method Public Instance`
+---@overload fun(other:Barotrauma.LocalizedString, comparison?:System.StringComparison):(System.Boolean)
+---@param other System.String
+---@param comparison? System.StringComparison
+---@return System.Boolean
+_G['LocalizedString'].StartsWith = function(other, comparison) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LocalizedString'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Int32
+_G['LocalizedString'].CompareTo = function(obj) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['LocalizedString'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967A10E8.lua b/Meta/Types/server/_00007FFD967A10E8.lua
new file mode 100644
index 0000000..2c0b746
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A10E8.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.AddedPunctuationLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStrs (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field punctuationSymbol System.Char
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['AddedPunctuationLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['AddedPunctuationLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param symbol System.Char
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.AddedPunctuationLString
+_G['AddedPunctuationLString'] = function(symbol, ...) end
+
+---`Constructor Public Instance`
+---@param symbol System.Char
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.AddedPunctuationLString
+_G['AddedPunctuationLString'].__new = function(symbol, ...) end
+
diff --git a/Meta/Types/server/_00007FFD967A2430.lua b/Meta/Types/server/_00007FFD967A2430.lua
new file mode 100644
index 0000000..37078ef
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A2430.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.CapitalizeLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['CapitalizeLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['CapitalizeLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@return Barotrauma.CapitalizeLString
+_G['CapitalizeLString'] = function(nStr) end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@return Barotrauma.CapitalizeLString
+_G['CapitalizeLString'].__new = function(nStr) end
+
diff --git a/Meta/Types/server/_00007FFD967A2608.lua b/Meta/Types/server/_00007FFD967A2608.lua
new file mode 100644
index 0000000..e0b8dad
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A2608.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.ConcatLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field left Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field right Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['ConcatLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['ConcatLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param l Barotrauma.LocalizedString
+---@param r Barotrauma.LocalizedString
+---@return Barotrauma.ConcatLString
+_G['ConcatLString'] = function(l, r) end
+
+---`Constructor Public Instance`
+---@param l Barotrauma.LocalizedString
+---@param r Barotrauma.LocalizedString
+---@return Barotrauma.ConcatLString
+_G['ConcatLString'].__new = function(l, r) end
+
diff --git a/Meta/Types/server/_00007FFD967A2858.lua b/Meta/Types/server/_00007FFD967A2858.lua
new file mode 100644
index 0000000..345173e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A2858.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.FallbackLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field primary Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field fallback Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field useDefaultLanguageIfFound System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PrimaryIsLoaded System.Boolean
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['FallbackLString'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['FallbackLString'].MustRetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+_G['FallbackLString'].RetrieveValue = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['FallbackLString'].GetLastFallback = function() end
+
+---`Constructor Public Instance`
+---@param primary Barotrauma.LocalizedString
+---@param fallback Barotrauma.LocalizedString
+---@param useDefaultLanguageIfFound? System.Boolean
+---@return Barotrauma.FallbackLString
+_G['FallbackLString'] = function(primary, fallback, useDefaultLanguageIfFound) end
+
+---`Constructor Public Instance`
+---@param primary Barotrauma.LocalizedString
+---@param fallback Barotrauma.LocalizedString
+---@param useDefaultLanguageIfFound? System.Boolean
+---@return Barotrauma.FallbackLString
+_G['FallbackLString'].__new = function(primary, fallback, useDefaultLanguageIfFound) end
+
diff --git a/Meta/Types/server/_00007FFD967A2A40.lua b/Meta/Types/server/_00007FFD967A2A40.lua
new file mode 100644
index 0000000..624393b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A2A40.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.FormattedLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field str Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field subStrs (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['FormattedLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['FormattedLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param str Barotrauma.LocalizedString
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.FormattedLString
+_G['FormattedLString'] = function(str, ...) end
+
+---`Constructor Public Instance`
+---@param str Barotrauma.LocalizedString
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.FormattedLString
+_G['FormattedLString'].__new = function(str, ...) end
+
diff --git a/Meta/Types/server/_00007FFD967A2C28.lua b/Meta/Types/server/_00007FFD967A2C28.lua
new file mode 100644
index 0000000..a80f989
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A2C28.lua
@@ -0,0 +1,29 @@
+---@meta
+---@class Barotrauma.InputTypeLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field useColorHighlight System.Boolean
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['InputTypeLString'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['InputTypeLString'].MustRetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+_G['InputTypeLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@param useColorHighlight? System.Boolean
+---@return Barotrauma.InputTypeLString
+_G['InputTypeLString'] = function(nStr, useColorHighlight) end
+
+---`Constructor Public Instance`
+---@param nStr Barotrauma.LocalizedString
+---@param useColorHighlight? System.Boolean
+---@return Barotrauma.InputTypeLString
+_G['InputTypeLString'].__new = function(nStr, useColorHighlight) end
+
diff --git a/Meta/Types/server/_00007FFD967A2E00.lua b/Meta/Types/server/_00007FFD967A2E00.lua
new file mode 100644
index 0000000..0273f0e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A2E00.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.JoinLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---`Field Private Instance`
+---@field separator System.String
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['JoinLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['JoinLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param separator System.String
+---@param subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---@return Barotrauma.JoinLString
+_G['JoinLString'] = function(separator, subStrs) end
+
+---`Constructor Public Instance`
+---@param separator System.String
+---@param subStrs (System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString)|(fun():(Barotrauma.LocalizedString))
+---@return Barotrauma.JoinLString
+_G['JoinLString'].__new = function(separator, subStrs) end
+
diff --git a/Meta/Types/server/_00007FFD967A3040.lua b/Meta/Types/server/_00007FFD967A3040.lua
new file mode 100644
index 0000000..dc34b15
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A3040.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.LowerLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['LowerLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['LowerLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.LowerLString
+_G['LowerLString'] = function(nestedStr) end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.LowerLString
+_G['LowerLString'].__new = function(nestedStr) end
+
diff --git a/Meta/Types/server/_00007FFD967A31F8.lua b/Meta/Types/server/_00007FFD967A31F8.lua
new file mode 100644
index 0000000..a60a211
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A31F8.lua
@@ -0,0 +1,23 @@
+---@meta
+---@class Barotrauma.RawLString : Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['RawLString'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['RawLString'].MustRetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+_G['RawLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.RawLString
+_G['RawLString'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.RawLString
+_G['RawLString'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD967A3440.lua b/Meta/Types/server/_00007FFD967A3440.lua
new file mode 100644
index 0000000..bf3067d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A3440.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.ReplaceLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field replacements (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*LocalizedString*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|({[Barotrauma.LocalizedString]:(System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals)})
+---`Field Private Instance`
+---@field stringComparison System.StringComparison
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['ReplaceLString'] = {}
+
+---`Method Private Static`
+---@param text System.String
+---@param variableTag System.String
+---@param variableValue System.String
+---@return System.String
+_G['ReplaceLString'].HandleVariableCapitalization = function(text, variableTag, variableValue) end
+
+---`Method Public Instance Virtual`
+_G['ReplaceLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, ...:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@param nStr Barotrauma.LocalizedString
+---@param sc System.StringComparison
+---@param ... System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString
+---@return Barotrauma.ReplaceLString
+_G['ReplaceLString'] = function(nStr, sc, ...) end
+
+---`Constructor Public Instance`
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, ...:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString):Barotrauma.ReplaceLString
+---@overload fun(nStr:Barotrauma.LocalizedString, sc:System.StringComparison, r:(System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))):Barotrauma.ReplaceLString
+---@param nStr Barotrauma.LocalizedString
+---@param sc System.StringComparison
+---@param ... System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString
+---@return Barotrauma.ReplaceLString
+_G['ReplaceLString'].__new = function(nStr, sc, ...) end
+
diff --git a/Meta/Types/server/_00007FFD967A3808.lua b/Meta/Types/server/_00007FFD967A3808.lua
new file mode 100644
index 0000000..ef8b9f8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A3808.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.ServerMsgLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field serverMessage System.String
+---`Field Private Instance`
+---@field messageSplit (System.Collections.Immutable.ImmutableArray*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field loadedSuccessfully Barotrauma.LocalizedString.LoadedSuccessfully
+---`Field Private Static`
+---@field reFormattedMessage System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field reReplacedMessage System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field messageFormatters (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*String*2System*String)|({[Barotrauma.Identifier]:((System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String)))})
+---`Field Private Static`
+---@field serverMessageCharacters (System.Collections.Immutable.ImmutableHashSet*1System*Char)|(System.Char[])
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['ServerMsgLString'] = {}
+
+---`Method Private Static`
+---@param message System.String
+---@return System.Boolean
+_G['ServerMsgLString'].IsServerMessageWithVariables = function(message) end
+
+---`Method Public Instance Virtual`
+_G['ServerMsgLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(serverMsg:System.String):Barotrauma.ServerMsgLString
+---@return Barotrauma.ServerMsgLString
+_G['ServerMsgLString'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967A3E80.lua b/Meta/Types/server/_00007FFD967A3E80.lua
new file mode 100644
index 0000000..38c6c64
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A3E80.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.SplitLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field loaded System.Boolean
+---`Field Private Instance`
+---@field splitter Barotrauma.LStringSplitter
+---`Field Private Instance`
+---@field index System.Int32
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['SplitLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['SplitLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param splitter Barotrauma.LStringSplitter
+---@param index System.Int32
+---@return Barotrauma.SplitLString
+_G['SplitLString'] = function(splitter, index) end
+
+---`Constructor Public Instance`
+---@param splitter Barotrauma.LStringSplitter
+---@param index System.Int32
+---@return Barotrauma.SplitLString
+_G['SplitLString'].__new = function(splitter, index) end
+
diff --git a/Meta/Types/server/_00007FFD967A5730.lua b/Meta/Types/server/_00007FFD967A5730.lua
new file mode 100644
index 0000000..4efc989
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A5730.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.TagLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field tags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field loadedSuccessfully Barotrauma.LocalizedString.LoadedSuccessfully
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UsingDefaultLanguageAsFallback System.Boolean
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['TagLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['TagLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param ... Barotrauma.Identifier
+---@return Barotrauma.TagLString
+_G['TagLString'] = function(...) end
+
+---`Constructor Public Instance`
+---@param ... Barotrauma.Identifier
+---@return Barotrauma.TagLString
+_G['TagLString'].__new = function(...) end
+
diff --git a/Meta/Types/server/_00007FFD967A61E0.lua b/Meta/Types/server/_00007FFD967A61E0.lua
new file mode 100644
index 0000000..402c8fd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A61E0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.TrimLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field mode Barotrauma.TrimLString.Mode
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['TrimLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['TrimLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@param mode Barotrauma.TrimLString.Mode
+---@return Barotrauma.TrimLString
+_G['TrimLString'] = function(nestedStr, mode) end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@param mode Barotrauma.TrimLString.Mode
+---@return Barotrauma.TrimLString
+_G['TrimLString'].__new = function(nestedStr, mode) end
+
diff --git a/Meta/Types/server/_00007FFD967A63B8.lua b/Meta/Types/server/_00007FFD967A63B8.lua
new file mode 100644
index 0000000..e2584cb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A63B8.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.UpperLString : Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field nestedStr Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['UpperLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['UpperLString'].RetrieveValue = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.LocalizedString
+_G['UpperLString'].ToUpper = function() end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.UpperLString
+_G['UpperLString'] = function(nestedStr) end
+
+---`Constructor Public Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@return Barotrauma.UpperLString
+_G['UpperLString'].__new = function(nestedStr) end
+
diff --git a/Meta/Types/server/_00007FFD967A6AE0.lua b/Meta/Types/server/_00007FFD967A6AE0.lua
new file mode 100644
index 0000000..14013ce
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A6AE0.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class Barotrauma.RichString : System.Object
+---`Field NonPublic Instance`
+---@field loaded System.Boolean
+---`Field NonPublic Instance`
+---@field language Barotrauma.LanguageIdentifier
+---`Field Private Instance`
+---@field languageVersion System.Int32
+---`Field NonPublic Instance`
+---@field cachedSanitizedValue System.String
+---`Field Private Instance`
+---@field postProcess (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---`Field Private Instance`
+---@field shouldParseRichTextData System.Boolean
+---`Field Private Instance`
+---@field originalStr Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SanitizedString Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field SanitizedValue System.String
+---`Getter Public Instance`
+---@field Length System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NestedStr Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RichTextData System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*RichTextData
+_G['RichString'] = {}
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@param postProcess? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---@return Barotrauma.RichString
+_G['RichString'].Rich = function(str, postProcess) end
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.RichString
+_G['RichString'].Plain = function(str) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['RichString'].MustRetrieveValue = function() end
+
+---`Method Public Instance`
+_G['RichString'].RetrieveValue = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.RichString
+_G['RichString'].ToUpper = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.RichString
+_G['RichString'].ToLower = function() end
+
+---`Method Public Instance`
+---@param from System.String
+---@param to System.String
+---@param stringComparison? System.StringComparison
+---@return Barotrauma.RichString
+_G['RichString'].Replace = function(from, to, stringComparison) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['RichString'].ToString = function() end
+
+---`Method Public Instance`
+---@overload fun(str:System.String, stringComparison?:System.StringComparison):(System.Boolean)
+---@param chr System.Char
+---@param stringComparison? System.StringComparison
+---@return System.Boolean
+_G['RichString'].Contains = function(chr, stringComparison) end
+
+---`Constructor Private Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@param shouldParseRichTextData System.Boolean
+---@param postProcess? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---@return Barotrauma.RichString
+_G['RichString'] = function(nestedStr, shouldParseRichTextData, postProcess) end
+
+---`Constructor Private Instance`
+---@param nestedStr Barotrauma.LocalizedString
+---@param shouldParseRichTextData System.Boolean
+---@param postProcess? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+---@return Barotrauma.RichString
+_G['RichString'].__new = function(nestedStr, shouldParseRichTextData, postProcess) end
+
diff --git a/Meta/Types/server/_00007FFD967A6C10.lua b/Meta/Types/server/_00007FFD967A6C10.lua
new file mode 100644
index 0000000..8dc8f70
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A6C10.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.RichTextData : System.Object
+---`Field Public Instance`
+---@field StartIndex System.Int32
+---`Field Public Instance`
+---@field EndIndex System.Int32
+---`Field Public Instance`
+---@field Color System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Public Instance`
+---@field Metadata System.String
+---`Field Public Instance`
+---@field Alpha System.Single
+---`Field Private Static`
+---@field definitionIndicator System.Char
+---`Field Private Static`
+---@field attributeSeparator System.Char
+---`Field Private Static`
+---@field keyValueSeparator System.Char
+---`Field Private Static`
+---@field colorDefinition System.String
+---`Field Private Static`
+---@field metadataDefinition System.String
+---`Field Private Static`
+---@field endDefinition System.String
+_G['RichTextData'] = {}
+
+---`Method Public Static`
+---@param text System.String
+---@param sanitizedText System.String-ref
+---@return System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*RichTextData
+_G['RichTextData'].GetRichTextData = function(text, sanitizedText) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.RichTextData
+_G['RichTextData'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.RichTextData
+_G['RichTextData'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967A75A8.lua b/Meta/Types/server/_00007FFD967A75A8.lua
new file mode 100644
index 0000000..c2c2c3b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A75A8.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.StripRichTagsLString : Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field RichStr Barotrauma.RichString
+---`Getter Public Instance Virtual`
+---@field Loaded System.Boolean
+_G['StripRichTagsLString'] = {}
+
+---`Method Public Instance Virtual`
+_G['StripRichTagsLString'].RetrieveValue = function() end
+
+---`Constructor Public Instance`
+---@param richStr Barotrauma.RichString
+---@return Barotrauma.StripRichTagsLString
+_G['StripRichTagsLString'] = function(richStr) end
+
+---`Constructor Public Instance`
+---@param richStr Barotrauma.RichString
+---@return Barotrauma.StripRichTagsLString
+_G['StripRichTagsLString'].__new = function(richStr) end
+
diff --git a/Meta/Types/server/_00007FFD967A9418.lua b/Meta/Types/server/_00007FFD967A9418.lua
new file mode 100644
index 0000000..845538b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A9418.lua
@@ -0,0 +1,186 @@
+---@meta
+---@class Barotrauma.TextManager : System.Object
+---`Field Public Static`
+---@field DebugDraw System.Boolean
+---`Field Public Static`
+---@field DefaultLanguage Barotrauma.LanguageIdentifier
+---`Field Public Static`
+---@field TextPacks (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack))
+---`Field Private Static`
+---@field cachedStrings (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*WeakReference*2Barotrauma*TagLString)|({[Barotrauma.Identifier]:(System.WeakReference*1Barotrauma*TagLString)})
+---`Field Private Static`
+---@field nonCacheableTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field SpeciallyHandledCharCategories (System.Collections.Immutable.ImmutableArray*1Barotrauma*TextManager*SpeciallyHandledCharCategory)|(Barotrauma.TextManager.SpeciallyHandledCharCategory[])
+---`Field Private Static`
+---@field SpeciallyHandledCharacterRanges (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*TextManager*SpeciallyHandledCharCategory*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Range*3System*Int32)|({[Barotrauma.TextManager.SpeciallyHandledCharCategory]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[]))})
+---`Getter Public Static`
+---@field AvailableLanguages (System.Collections.Generic.IEnumerable*1Barotrauma*LanguageIdentifier)|(fun():(Barotrauma.LanguageIdentifier))
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field LanguageVersion System.Int32
+_G['TextManager'] = {}
+
+---`Method Private Static`
+---@param ... System.Text.Unicode.UnicodeRange
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])
+_G['TextManager'].UnicodeToIntRanges = function(...) end
+
+---`Method Public Static`
+---@overload fun(text:Barotrauma.LocalizedString):(Barotrauma.TextManager.SpeciallyHandledCharCategory)
+---@param text System.String
+---@return Barotrauma.TextManager.SpeciallyHandledCharCategory
+_G['TextManager'].GetSpeciallyHandledCategories = function(text) end
+
+---`Method Public Static`
+---@overload fun(text:Barotrauma.LocalizedString):(System.Boolean)
+---@param text System.String
+---@return System.Boolean
+_G['TextManager'].IsCJK = function(text) end
+
+---`Method Public Static`
+_G['TextManager'].VerifyLanguageAvailable = function() end
+
+---`Method Public Static`
+---@overload fun(tag:System.String):(System.Boolean)
+---@overload fun(tag:Barotrauma.Identifier):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@param language Barotrauma.LanguageIdentifier
+---@return System.Boolean
+_G['TextManager'].ContainsTag = function(tag, language) end
+
+---`Method Public Static`
+---@overload fun(tag:System.String):((System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String)))
+---@param tag Barotrauma.Identifier
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['TextManager'].GetAll = function(tag) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2System*String)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1System*String))
+_G['TextManager'].GetAllTagTextPairs = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['TextManager'].GetTextFiles = function() end
+
+---`Method Private Static`
+---@param directory System.String
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['TextManager'].GetTextFilesRecursive = function(directory) end
+
+---`Method Public Static`
+---@param languageIdentifier Barotrauma.LanguageIdentifier
+---@return System.String
+_G['TextManager'].GetTranslatedLanguageName = function(languageIdentifier) end
+
+---`Method Public Static`
+_G['TextManager'].ClearCache = function() end
+
+---`Method Public Static`
+---@overload fun(...:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@overload fun(tag:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String):(Barotrauma.LocalizedString)
+---@param ... System.String
+---@return Barotrauma.LocalizedString
+_G['TextManager'].Get = function(...) end
+
+---`Method Public Static`
+---@param punctuationSymbol System.Char
+---@param ... Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['TextManager'].AddPunctuation = function(punctuationSymbol, ...) end
+
+---`Method Public Static`
+---@overload fun(tag:Barotrauma.Identifier, ...:System.Object):(Barotrauma.LocalizedString)
+---@param str Barotrauma.LocalizedString
+---@param ... System.Object
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetFormatted = function(str, ...) end
+
+---`Method Public Static`
+---@overload fun(str:System.String):(System.String)
+---@param message System.String
+---@param ... System.ValueTuple*1System*String*1System*String
+---@return System.String
+_G['TextManager'].FormatServerMessage = function(message, ...) end
+
+---`Method NonPublic Static`
+---@param charInfo Barotrauma.CharacterInfo
+---@param message System.String
+---@param ... System.ValueTuple*1System*String*1System*String
+---@return System.String
+_G['TextManager'].FormatServerMessageWithPronouns = function(charInfo, message, ...) end
+
+---`Method Public Static`
+---@param separator System.String
+---@param parts (System.String-arr)|(System.String[])
+---@param namePrefix? System.String
+---@return System.String
+_G['TextManager'].JoinServerMessages = function(separator, parts, namePrefix) end
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@param useColorHighlight? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['TextManager'].ParseInputTypes = function(str, useColorHighlight) end
+
+---`Method Public Static`
+---@overload fun(tag:System.String, varName:System.String, value:Barotrauma.LocalizedString, formatCapitals?:Barotrauma.FormatCapitals):(Barotrauma.LocalizedString)
+---@param tag Barotrauma.Identifier
+---@param varName Barotrauma.Identifier
+---@param value Barotrauma.LocalizedString
+---@param formatCapitals? Barotrauma.FormatCapitals
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetWithVariable = function(tag, varName, value, formatCapitals) end
+
+---`Method Public Static`
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1System*String):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1Barotrauma*LocalizedString):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals):(Barotrauma.LocalizedString)
+---@overload fun(tag:System.String, ...:System.ValueTuple*1System*String*1System*String*1Barotrauma*FormatCapitals):(Barotrauma.LocalizedString)
+---@overload fun(tag:Barotrauma.Identifier, ...:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString):(Barotrauma.LocalizedString)
+---@param tag Barotrauma.Identifier
+---@param replacements (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals)|(fun():(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals))
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetWithVariables = function(tag, replacements) end
+
+---`Method Public Static`
+---@param description Barotrauma.LocalizedString-ref
+---@param descriptionElement System.Xml.Linq.XElement
+---@param customTagReplacer? (System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))
+_G['TextManager'].ConstructDescription = function(description, descriptionElement, customTagReplacer) end
+
+---`Method Public Static`
+---@param amount System.Int32
+---@param includeCurrencySymbol? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['TextManager'].FormatCurrency = function(amount, includeCurrencySymbol) end
+
+---`Method Public Static`
+---@param serverMessage System.String
+---@return Barotrauma.LocalizedString
+_G['TextManager'].GetServerMessage = function(serverMessage) end
+
+---`Method Public Static`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['TextManager'].Capitalize = function(str) end
+
+---`Method Public Static`
+_G['TextManager'].IncrementLanguageVersion = function() end
+
+---`Method Public Static`
+---@param lang Barotrauma.LanguageIdentifier
+_G['TextManager'].CheckForDuplicates = function(lang) end
+
+---`Method Public Static`
+_G['TextManager'].WriteToCSV = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.TextManager
+_G['TextManager'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.TextManager
+_G['TextManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967A9D10.lua b/Meta/Types/server/_00007FFD967A9D10.lua
new file mode 100644
index 0000000..02bacfa
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A9D10.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.TextPack : System.Object
+---`Field Public Instance`
+---@field ContentFile Barotrauma.TextFile
+---`Field Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Field Public Instance`
+---@field Texts (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*TextPack*Text)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text)|(Barotrauma.TextPack.Text[]))})
+---`Field Public Instance`
+---@field TranslatedName System.String
+---`Field Public Instance`
+---@field NoWhitespace System.Boolean
+_G['TextPack'] = {}
+
+---`Method Public Instance`
+---@param index System.Int32
+_G['TextPack'].CheckForDuplicates = function(index) end
+
+---`Method Public Instance`
+---@param index System.Int32
+_G['TextPack'].WriteToCSV = function(index) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.TextFile
+---@param mainElement Barotrauma.ContentXElement
+---@param language Barotrauma.LanguageIdentifier
+---@return Barotrauma.TextPack
+_G['TextPack'] = function(file, mainElement, language) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.TextFile
+---@param mainElement Barotrauma.ContentXElement
+---@param language Barotrauma.LanguageIdentifier
+---@return Barotrauma.TextPack
+_G['TextPack'].__new = function(file, mainElement, language) end
+
diff --git a/Meta/Types/server/_00007FFD967A9FB8.lua b/Meta/Types/server/_00007FFD967A9FB8.lua
new file mode 100644
index 0000000..b4d0955
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967A9FB8.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.INetSerializableStruct
+_G['INetSerializableStruct'] = {}
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@return Barotrauma.INetSerializableStruct.T
+_G['INetSerializableStruct'].Read = function(inc) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param bitField Barotrauma.ReadOnlyBitField
+---@return Barotrauma.INetSerializableStruct.T
+_G['INetSerializableStruct'].ReadInternal = function(inc, bitField) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['INetSerializableStruct'].Write = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param bitField Barotrauma.WriteOnlyBitField
+_G['INetSerializableStruct'].WriteInternal = function(msg, bitField) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.AccountInfo
+---@param data Barotrauma.T-ref
+---@return System.Boolean
+_G['INetSerializableStruct'].TryRead = function(inc, sender, data) end
+
diff --git a/Meta/Types/server/_00007FFD967AA1B0.lua b/Meta/Types/server/_00007FFD967AA1B0.lua
new file mode 100644
index 0000000..2e1cec5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AA1B0.lua
@@ -0,0 +1,50 @@
+---@meta
+---@class Barotrauma.Networking.AccountInfo : System.ValueType
+---`Field Public Instance`
+---@field AccountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---`Field Public Instance`
+---@field OtherMatchingIds (System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*AccountId)|(Barotrauma.Networking.AccountId[])
+---`Field Public Static`
+---@field None Barotrauma.Networking.AccountInfo
+---`Getter Public Instance`
+---@field IsNone System.Boolean
+_G['AccountInfo'] = {}
+
+---`Method Public Instance`
+---@param accountId Barotrauma.Networking.AccountId
+---@return System.Boolean
+_G['AccountInfo'].Matches = function(accountId) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['AccountInfo'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['AccountInfo'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(accountId:Barotrauma.Networking.AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@overload fun(accountId:Barotrauma.Option*1Barotrauma*Networking*AccountId, ...:Barotrauma.Networking.AccountId):Barotrauma.Networking.AccountInfo
+---@return Barotrauma.Networking.AccountInfo
+_G['AccountInfo'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967ABCB8.lua b/Meta/Types/server/_00007FFD967ABCB8.lua
new file mode 100644
index 0000000..470eb9a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967ABCB8.lua
@@ -0,0 +1,232 @@
+---@meta
+---@class System.Net.IPAddress : System.Object
+---`Field Private Instance`
+---@field _addressOrScopeId System.UInt32
+---`Field Private Instance`
+---@field _numbers (System.UInt16-arr)|(System.UInt16[])
+---`Field Private Instance`
+---@field _toString System.String
+---`Field Private Instance`
+---@field _hashCode System.Int32
+---`Field Public Static`
+---@field Any System.Net.IPAddress
+---`Field Public Static`
+---@field Loopback System.Net.IPAddress
+---`Field Public Static`
+---@field Broadcast System.Net.IPAddress
+---`Field Public Static`
+---@field None System.Net.IPAddress
+---`Field Public Static`
+---@field IPv6Any System.Net.IPAddress
+---`Field Public Static`
+---@field IPv6Loopback System.Net.IPAddress
+---`Field Public Static`
+---@field IPv6None System.Net.IPAddress
+---`Field Private Static`
+---@field s_loopbackMappedToIPv6 System.Net.IPAddress
+---`Getter Private Instance`
+---@field IsIPv4 System.Boolean
+---`Getter Private Instance`
+---@field IsIPv6 System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field PrivateAddress System.UInt32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field PrivateScopeId System.UInt32
+---`Getter Public Instance`
+---@field AddressFamily System.Net.Sockets.AddressFamily
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScopeId System.Int64
+---`Getter Public Instance`
+---@field IsIPv6Multicast System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6LinkLocal System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6SiteLocal System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6Teredo System.Boolean
+---`Getter Public Instance`
+---@field IsIPv6UniqueLocal System.Boolean
+---`Getter Public Instance`
+---@field IsIPv4MappedToIPv6 System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Address System.Int64
+_G['IPAddress'] = {}
+
+---`Method Public Static`
+---@overload fun(ipString:System.String, address:System.Net.IPAddress-ref):(System.Boolean)
+---@param ipSpan System.ReadOnlySpan*1System*Char
+---@param address System.Net.IPAddress-ref
+---@return System.Boolean
+_G['IPAddress'].TryParse = function(ipSpan, address) end
+
+---`Method Public Static`
+---@overload fun(ipString:System.String):(System.Net.IPAddress)
+---@param ipSpan System.ReadOnlySpan*1System*Char
+---@return System.Net.IPAddress
+_G['IPAddress'].Parse = function(ipSpan) end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Byte
+---@param bytesWritten System.Int32-ref
+---@return System.Boolean
+_G['IPAddress'].TryWriteBytes = function(destination, bytesWritten) end
+
+---`Method Private Instance`
+---@param destination System.Span*1System*Byte
+_G['IPAddress'].WriteIPv6Bytes = function(destination) end
+
+---`Method Private Instance`
+---@param destination System.Span*1System*Byte
+_G['IPAddress'].WriteIPv4Bytes = function(destination) end
+
+---`Method Public Instance`
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IPAddress'].GetAddressBytes = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['IPAddress'].ToString = function() end
+
+---`Method Public Instance`
+---@param destination System.Span*1System*Char
+---@param charsWritten System.Int32-ref
+---@return System.Boolean
+_G['IPAddress'].TryFormat = function(destination, charsWritten) end
+
+---`Method Public Static`
+---@overload fun(host:System.Int64):(System.Int64)
+---@overload fun(host:System.Int32):(System.Int32)
+---@param host System.Int16
+---@return System.Int16
+_G['IPAddress'].HostToNetworkOrder = function(host) end
+
+---`Method Public Static`
+---@overload fun(network:System.Int64):(System.Int64)
+---@overload fun(network:System.Int32):(System.Int32)
+---@param network System.Int16
+---@return System.Int16
+_G['IPAddress'].NetworkToHostOrder = function(network) end
+
+---`Method Public Static`
+---@param address System.Net.IPAddress
+---@return System.Boolean
+_G['IPAddress'].IsLoopback = function(address) end
+
+---`Method Public Instance Virtual`
+---@param comparand System.Object
+---@return System.Boolean
+_G['IPAddress'].Equals = function(comparand) end
+
+---`Method NonPublic Instance`
+---@param comparand System.Net.IPAddress
+---@return System.Boolean
+_G['IPAddress'].Equals = function(comparand) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['IPAddress'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@return System.Net.IPAddress
+_G['IPAddress'].MapToIPv6 = function() end
+
+---`Method Public Instance`
+---@return System.Net.IPAddress
+_G['IPAddress'].MapToIPv4 = function() end
+
+---`Method Private Static`
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IPAddress'].ThrowAddressNullException = function() end
+
+---`Constructor Public Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
+---`Constructor Private Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(newAddress:System.Int64):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[]), scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte, scopeid:System.Int64):System.Net.IPAddress
+---@overload fun(numbers:System.ReadOnlySpan*1System*UInt16, scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(numbers:(System.UInt16-arr)|(System.UInt16[]), scopeid:System.UInt32):System.Net.IPAddress
+---@overload fun(address:(System.Byte-arr)|(System.Byte[])):System.Net.IPAddress
+---@overload fun(address:System.ReadOnlySpan*1System*Byte):System.Net.IPAddress
+---@return System.Net.IPAddress
+_G['IPAddress'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967ABE70.lua b/Meta/Types/server/_00007FFD967ABE70.lua
new file mode 100644
index 0000000..d7cf385
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967ABE70.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.Address : System.Object
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Abstract Virtual`
+---@field IsLocalHost System.Boolean
+_G['Address'] = {}
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*Address
+_G['Address'].Parse = function(str) end
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Address'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['Address'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Address'].ToString = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.Address
+_G['Address'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.Address
+_G['Address'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967AC070.lua b/Meta/Types/server/_00007FFD967AC070.lua
new file mode 100644
index 0000000..310924c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AC070.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenAddress : Barotrauma.Networking.Address
+---`Field Public Instance`
+---@field NetAddress System.Net.IPAddress
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['LidgrenAddress'] = {}
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenAddress
+_G['LidgrenAddress'].Parse = function(endpointStr) end
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenAddress
+_G['LidgrenAddress'].ParseHostName = function(endpointStr) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LidgrenAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LidgrenAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param netAddress System.Net.IPAddress
+---@return Barotrauma.Networking.LidgrenAddress
+_G['LidgrenAddress'] = function(netAddress) end
+
+---`Constructor Public Instance`
+---@param netAddress System.Net.IPAddress
+---@return Barotrauma.Networking.LidgrenAddress
+_G['LidgrenAddress'].__new = function(netAddress) end
+
diff --git a/Meta/Types/server/_00007FFD967AC1B8.lua b/Meta/Types/server/_00007FFD967AC1B8.lua
new file mode 100644
index 0000000..f03a60f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AC1B8.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.Networking.P2PAddress : Barotrauma.Networking.Address
+_G['P2PAddress'] = {}
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*P2PAddress
+_G['P2PAddress'].Parse = function(str) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.P2PAddress
+_G['P2PAddress'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.P2PAddress
+_G['P2PAddress'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967AC2F8.lua b/Meta/Types/server/_00007FFD967AC2F8.lua
new file mode 100644
index 0000000..5f357cd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AC2F8.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.SteamP2PAddress : Barotrauma.Networking.P2PAddress
+---`Field Public Instance`
+---@field SteamId Barotrauma.Networking.SteamId
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['SteamP2PAddress'] = {}
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamP2PAddress
+_G['SteamP2PAddress'].Parse = function(endpointStr) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamP2PAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamP2PAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PAddress
+_G['SteamP2PAddress'] = function(steamId) end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PAddress
+_G['SteamP2PAddress'].__new = function(steamId) end
+
diff --git a/Meta/Types/server/_00007FFD967AC498.lua b/Meta/Types/server/_00007FFD967AC498.lua
new file mode 100644
index 0000000..9481142
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AC498.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Networking.PipeAddress : Barotrauma.Networking.Address
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['PipeAddress'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['PipeAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['PipeAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeAddress
+_G['PipeAddress'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeAddress
+_G['PipeAddress'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967AC608.lua b/Meta/Types/server/_00007FFD967AC608.lua
new file mode 100644
index 0000000..e5b786e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AC608.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Networking.UnknownAddress : Barotrauma.Networking.Address
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['UnknownAddress'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['UnknownAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['UnknownAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.UnknownAddress
+_G['UnknownAddress'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.UnknownAddress
+_G['UnknownAddress'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967AC838.lua b/Meta/Types/server/_00007FFD967AC838.lua
new file mode 100644
index 0000000..feedf1c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AC838.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Networking.EosP2PAddress : Barotrauma.Networking.P2PAddress
+---`Field Public Instance`
+---@field EosStringRepresentation System.String
+---`Field Private Static`
+---@field prefix System.String
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field IsLocalHost System.Boolean
+_G['EosP2PAddress'] = {}
+
+---`Method Public Static`
+---@param addressStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*EosP2PAddress
+_G['EosP2PAddress'].Parse = function(addressStr) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['EosP2PAddress'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['EosP2PAddress'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EosP2PAddress
+_G['EosP2PAddress'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@return Barotrauma.Networking.EosP2PAddress
+_G['EosP2PAddress'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD967ACA30.lua b/Meta/Types/server/_00007FFD967ACA30.lua
new file mode 100644
index 0000000..30ddf23
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967ACA30.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Networking.Endpoint : System.Object
+---`Field Public Instance`
+---@field Address Barotrauma.Networking.Address
+---`Getter Public Instance Abstract Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Abstract Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['Endpoint'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Endpoint'].Equals = function(obj) end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['Endpoint'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Endpoint'].ToString = function() end
+
+---`Method Public Static`
+---@param str System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*Endpoint
+_G['Endpoint'].Parse = function(str) end
+
+---`Constructor Public Instance`
+---@param address Barotrauma.Networking.Address
+---@return Barotrauma.Networking.Endpoint
+_G['Endpoint'] = function(address) end
+
+---`Constructor Public Instance`
+---@param address Barotrauma.Networking.Address
+---@return Barotrauma.Networking.Endpoint
+_G['Endpoint'].__new = function(address) end
+
diff --git a/Meta/Types/server/_00007FFD967ACC80.lua b/Meta/Types/server/_00007FFD967ACC80.lua
new file mode 100644
index 0000000..910edbc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967ACC80.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenEndpoint : Barotrauma.Networking.Endpoint
+---`Field Public Instance`
+---@field NetEndpoint System.Net.IPEndPoint
+---`Getter Public Instance`
+---@field Port System.Int32
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['LidgrenEndpoint'] = {}
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenEndpoint
+_G['LidgrenEndpoint'].Parse = function(endpointStr) end
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@param tryParseHostName System.Boolean
+---@return Barotrauma.Option*1Barotrauma*Networking*LidgrenEndpoint
+_G['LidgrenEndpoint'].ParseFromWithHostNameCheck = function(endpointStr, tryParseHostName) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['LidgrenEndpoint'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['LidgrenEndpoint'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@overload fun(address:System.Net.IPAddress, port:System.Int32):Barotrauma.Networking.LidgrenEndpoint
+---@param netEndpoint System.Net.IPEndPoint
+---@return Barotrauma.Networking.LidgrenEndpoint
+_G['LidgrenEndpoint'] = function(netEndpoint) end
+
+---`Constructor Public Instance`
+---@overload fun(address:System.Net.IPAddress, port:System.Int32):Barotrauma.Networking.LidgrenEndpoint
+---@param netEndpoint System.Net.IPEndPoint
+---@return Barotrauma.Networking.LidgrenEndpoint
+_G['LidgrenEndpoint'].__new = function(netEndpoint) end
+
diff --git a/Meta/Types/server/_00007FFD967ACF78.lua b/Meta/Types/server/_00007FFD967ACF78.lua
new file mode 100644
index 0000000..57fab4e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967ACF78.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Networking.SteamP2PEndpoint : Barotrauma.Networking.P2PEndpoint
+---`Getter Public Instance`
+---@field SteamId Barotrauma.Networking.SteamId
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['SteamP2PEndpoint'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['SteamP2PEndpoint'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['SteamP2PEndpoint'].Equals = function(obj) end
+
+---`Method Public Static`
+---@param endpointStr System.String
+---@return Barotrauma.Option*1Barotrauma*Networking*SteamP2PEndpoint
+_G['SteamP2PEndpoint'].Parse = function(endpointStr) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Networking.P2PConnection
+_G['SteamP2PEndpoint'].MakeConnectionFromEndpoint = function() end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PEndpoint
+_G['SteamP2PEndpoint'] = function(steamId) end
+
+---`Constructor Public Instance`
+---@param steamId Barotrauma.Networking.SteamId
+---@return Barotrauma.Networking.SteamP2PEndpoint
+_G['SteamP2PEndpoint'].__new = function(steamId) end
+
diff --git a/Meta/Types/server/_00007FFD967AD138.lua b/Meta/Types/server/_00007FFD967AD138.lua
new file mode 100644
index 0000000..9d466b2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AD138.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Networking.PipeEndpoint : Barotrauma.Networking.Endpoint
+---`Getter Public Instance Virtual`
+---@field StringRepresentation System.String
+---`Getter Public Instance Virtual`
+---@field ServerTypeString Barotrauma.LocalizedString
+_G['PipeEndpoint'] = {}
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['PipeEndpoint'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['PipeEndpoint'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeEndpoint
+_G['PipeEndpoint'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.PipeEndpoint
+_G['PipeEndpoint'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967AD468.lua b/Meta/Types/server/_00007FFD967AD468.lua
new file mode 100644
index 0000000..295baac
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AD468.lua
@@ -0,0 +1,109 @@
+---@meta
+---@class Barotrauma.Md5Hash : System.Object
+---`Field Public Instance`
+---@field ByteRepresentation (System.Byte-arr)|(System.Byte[])
+---`Field Public Instance`
+---@field StringRepresentation System.String
+---`Field Public Instance`
+---@field ShortRepresentation System.String
+---`Field Public Static`
+---@field Blank Barotrauma.Md5Hash
+---`Field Private Static`
+---@field stringHashRegex System.Text.RegularExpressions.Regex
+_G['Md5Hash'] = {}
+
+---`Method Private Static`
+---@param s System.String
+---@return System.String
+_G['Md5Hash'].RemoveWhitespace = function(s) end
+
+---`Method Private Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@param stringRepresentation System.String-ref
+---@param byteRepresentation System.Byte-arr-ref
+_G['Md5Hash'].CalculateHash = function(bytes, stringRepresentation, byteRepresentation) end
+
+---`Method Private Static`
+---@param byteHash (System.Byte-arr)|(System.Byte[])
+---@return System.String
+_G['Md5Hash'].ByteRepresentationToStringRepresentation = function(byteHash) end
+
+---`Method Private Static`
+---@param strHash System.String
+---@return (System.Byte-arr)|(System.Byte[])
+_G['Md5Hash'].StringRepresentationToByteRepresentation = function(strHash) end
+
+---`Method Public Static`
+---@param fullHash System.String
+---@return System.String
+_G['Md5Hash'].GetShortHash = function(fullHash) end
+
+---`Method Public Static`
+---@param hash System.String
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].StringAsHash = function(hash) end
+
+---`Method Public Static`
+---@param hashes (System.Collections.Generic.IEnumerable*1Barotrauma*Md5Hash)|(fun():(Barotrauma.Md5Hash))
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].MergeHashes = function(hashes) end
+
+---`Method Public Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].CalculateForBytes = function(bytes) end
+
+---`Method Public Static`
+---@param bytes (System.Byte-arr)|(System.Byte[])
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].BytesAsHash = function(bytes) end
+
+---`Method Public Static`
+---@param path System.String
+---@param options Barotrauma.Md5Hash.StringHashOptions
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].CalculateForFile = function(path, options) end
+
+---`Method Public Static`
+---@param str System.String
+---@param options Barotrauma.Md5Hash.StringHashOptions
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].CalculateForString = function(str, options) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Md5Hash'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['Md5Hash'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['Md5Hash'].GetHashCode = function() end
+
+---`Constructor Private Instance`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(md5Hash:System.String):Barotrauma.Md5Hash
+---@overload fun(bytes:(System.Byte-arr)|(System.Byte[]), calculate:System.Boolean):Barotrauma.Md5Hash
+---@return Barotrauma.Md5Hash
+_G['Md5Hash'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967AD6C0.lua b/Meta/Types/server/_00007FFD967AD6C0.lua
new file mode 100644
index 0000000..cb16e92
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AD6C0.lua
@@ -0,0 +1,72 @@
+---@meta
+---@class Barotrauma.ContentFile : System.Object
+---`Field Public Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Field Public Instance`
+---@field Path Barotrauma.ContentPath
+---`Field Public Instance`
+---@field Hash Barotrauma.Md5Hash
+---`Field Public Static`
+---@field Types (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*ContentFile*TypeInfo)|(Barotrauma.ContentFile.TypeInfo[])
+---`Getter Public Instance`
+---@field NotSyncedInMultiplayer System.Boolean
+_G['ContentFile'] = {}
+
+---`Method Public Static`
+---@param contentFileElement System.Xml.Linq.XElement
+---@param package Barotrauma.ContentPackage
+---@param logWarning System.Boolean
+---@return System.Boolean
+_G['ContentFile'].IsLegacyContentType = function(contentFileElement, package, logWarning) end
+
+---`Method Public Static`
+---@param contentPackage Barotrauma.ContentPackage
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Result*1Barotrauma*ContentFile*1Barotrauma*ContentPackage*LoadError
+_G['ContentFile'].CreateFromXElement = function(contentPackage, element) end
+
+---`Method Public Instance Abstract Virtual`
+_G['ContentFile'].LoadFile = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['ContentFile'].UnloadFile = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['ContentFile'].Sort = function() end
+
+---`Method Public Instance Virtual`
+---@param addPreloadedSprite (System.Action*1Barotrauma*Sprite)|(fun(obj:Barotrauma.Sprite))
+_G['ContentFile'].Preload = function(addPreloadedSprite) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Md5Hash
+_G['ContentFile'].CalculateHash = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'] = function(contentPackage, path) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'].__new = function(contentPackage, path) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'] = function(contentPackage, path) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.ContentFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentFile
+_G['ContentFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967AFC30.lua b/Meta/Types/server/_00007FFD967AFC30.lua
new file mode 100644
index 0000000..ec5d75d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967AFC30.lua
@@ -0,0 +1,149 @@
+---@meta
+---@class Barotrauma.ContentPackage : System.Object
+---`Field Public Instance`
+---@field AltNames (System.Collections.Immutable.ImmutableArray*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field UgcId Barotrauma.Option*1Barotrauma*ContentPackageId
+---`Field Public Instance`
+---@field GameVersion System.Version
+---`Field Public Instance`
+---@field ModVersion System.String
+---`Field Public Instance`
+---@field InstallTime Barotrauma.Option*1Barotrauma*SerializableDateTime
+---`Field Public Static`
+---@field MinimumHashCompatibleVersion System.Version
+---`Field Public Static`
+---@field WorkshopModsDir System.String
+---`Field Public Static`
+---@field LocalModsDir System.String
+---`Field Public Static`
+---@field FileListFileName System.String
+---`Field Public Static`
+---@field DefaultModVersion System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Path System.String
+---`Getter Public Instance`
+---@field Dir System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Hash Barotrauma.Md5Hash
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Files (System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FatalLoadErrors (System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentPackage*LoadError)|(Barotrauma.ContentPackage.LoadError[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EnableError Barotrauma.Option*1Barotrauma*ContentPackageManager*LoadProgress*Error
+---`Getter Public Instance`
+---@field HasAnyErrors System.Boolean
+---`Getter Public Instance`
+---@field Index System.Int32
+---`Getter Public Instance`
+---@field HasMultiplayerSyncedContent System.Boolean
+_G['ContentPackage'] = {}
+
+---`Method Public Instance`
+---@return System.Threading.Tasks.Task*1System*Boolean
+_G['ContentPackage'].IsUpToDate = function() end
+
+---`Method Public Instance`
+---@param expectedHash System.String
+---@return System.Boolean
+_G['ContentPackage'].HashMismatches = function(expectedHash) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage*T)|(fun():(Barotrauma.ContentPackage.T)))
+---@param type System.Type
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['ContentPackage'].GetFiles = function(type) end
+
+---`Method Public Instance`
+---@overload fun(name:Barotrauma.Identifier):(System.Boolean)
+---@param name System.String
+---@return System.Boolean
+_G['ContentPackage'].NameMatches = function(name) end
+
+---`Method Public Static`
+---@param path System.String
+---@return Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception
+_G['ContentPackage'].TryLoad = function(path) end
+
+---`Method Public Instance`
+---@param logging? System.Boolean
+---@param name? System.String
+---@param modVersion? System.String
+---@return Barotrauma.Md5Hash
+_G['ContentPackage'].CalculateHash = function(logging, name, modVersion) end
+
+---`Method NonPublic Instance`
+---@param condition System.Boolean
+---@param errorMsg System.String
+_G['ContentPackage'].AssertCondition = function(condition, errorMsg) end
+
+---`Method Public Instance`
+_G['ContentPackage'].LoadFilesOfType = function() end
+
+---`Method Public Instance`
+_G['ContentPackage'].UnloadFilesOfType = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.ContentPackage.LoadResult
+_G['ContentPackage'].LoadContent = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackage'].LoadContentEnumerable = function() end
+
+---`Method Public Instance`
+_G['ContentPackage'].UnloadContent = function() end
+
+---`Method Public Instance`
+_G['ContentPackage'].ReloadSubsAndItemAssemblies = function() end
+
+---`Method Public Static`
+---@param path System.String
+---@return System.Boolean
+_G['ContentPackage'].PathAllowedAsLocalModFile = function(path) end
+
+---`Method Public Instance`
+_G['ContentPackage'].LogErrors = function() end
+
+---`Method Public Instance`
+---@param newName System.String
+---@return System.Boolean
+_G['ContentPackage'].TryRenameLocal = function(newName) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPackage'].TryDeleteLocal = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPackage'].TryCreateLocalFromWorkshop = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(doc:System.Xml.Linq.XDocument, path:System.String):Barotrauma.ContentPackage
+---@return Barotrauma.ContentPackage
+_G['ContentPackage'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967B12D8.lua b/Meta/Types/server/_00007FFD967B12D8.lua
new file mode 100644
index 0000000..bcfbc33
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B12D8.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.ContentPackageManager : System.Object
+---`Field Public Static`
+---@field LocalPackages Barotrauma.ContentPackageManager.PackageSource
+---`Field Public Static`
+---@field WorkshopPackages Barotrauma.ContentPackageManager.PackageSource
+---`Field Public Static`
+---@field CopyIndicatorFileName System.String
+---`Field Public Static`
+---@field VanillaFileList System.String
+---`Field Public Static`
+---@field CorePackageElementName System.String
+---`Field Public Static`
+---@field RegularPackagesElementName System.String
+---`Field Public Static`
+---@field RegularPackagesSubElementName System.String
+---`Getter Public Static`
+---@field ModsEnabled System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field VanillaCorePackage Barotrauma.CorePackage
+---`Getter Public Static`
+---@field CorePackages (System.Collections.Generic.IEnumerable*1Barotrauma*CorePackage)|(fun():(Barotrauma.CorePackage))
+---`Getter Public Static`
+---@field RegularPackages (System.Collections.Generic.IEnumerable*1Barotrauma*RegularPackage)|(fun():(Barotrauma.RegularPackage))
+---`Getter Public Static`
+---@field AllPackages (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager'] = {}
+
+---`Method Public Static`
+_G['ContentPackageManager'].UpdateContentPackageList = function() end
+
+---`Method Public Static`
+---@param p Barotrauma.ContentPackage
+---@return Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception
+_G['ContentPackageManager'].ReloadContentPackage = function(p) end
+
+---`Method Public Static`
+_G['ContentPackageManager'].LoadVanillaFileList = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackageManager'].Init = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager'].LogEnabledRegularPackageErrors = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager
+_G['ContentPackageManager'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager
+_G['ContentPackageManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967B1630.lua b/Meta/Types/server/_00007FFD967B1630.lua
new file mode 100644
index 0000000..732654d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B1630.lua
@@ -0,0 +1,53 @@
+---@meta
+---@class Barotrauma.ContentPackageManager.PackageSource : System.Object
+---`Field Private Instance`
+---@field skipPredicate (System.Predicate*1System*String)|(fun(obj:System.String):(System.Boolean))
+---`Field Private Instance`
+---@field onLoadFail (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---`Field Private Instance`
+---@field directory System.String
+---`Field Private Instance`
+---@field regularPackages (System.Collections.Generic.HashSet*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---`Field Private Instance`
+---@field corePackages (System.Collections.Generic.HashSet*1Barotrauma*CorePackage)|(Barotrauma.CorePackage[])
+---`Getter Public Instance`
+---@field Regular (System.Collections.Generic.IEnumerable*1Barotrauma*RegularPackage)|(fun():(Barotrauma.RegularPackage))
+---`Getter Public Instance`
+---@field Core (System.Collections.Generic.IEnumerable*1Barotrauma*CorePackage)|(fun():(Barotrauma.CorePackage))
+---`Getter Public Instance Virtual`
+---@field Count System.Int32
+---`Getter Public Instance Virtual`
+---@field IsReadOnly System.Boolean
+_G['ContentPackageManager']['PackageSource'] = {}
+
+---`Method Public Instance`
+---@param oldPackage Barotrauma.ContentPackage
+---@param newPackage Barotrauma.ContentPackage
+_G['ContentPackageManager']['PackageSource'].SwapPackage = function(oldPackage, newPackage) end
+
+---`Method Public Instance`
+_G['ContentPackageManager']['PackageSource'].Refresh = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*ContentPackage
+_G['ContentPackageManager']['PackageSource'].GetEnumerator = function() end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.ContentPackage
+---@return System.Boolean
+_G['ContentPackageManager']['PackageSource'].Contains = function(item) end
+
+---`Constructor Public Instance`
+---@param dir System.String
+---@param skipPredicate (System.Predicate*1System*String)|(fun(obj:System.String):(System.Boolean))
+---@param onLoadFail (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---@return Barotrauma.ContentPackageManager.PackageSource
+_G['ContentPackageManager']['PackageSource'] = function(dir, skipPredicate, onLoadFail) end
+
+---`Constructor Public Instance`
+---@param dir System.String
+---@param skipPredicate (System.Predicate*1System*String)|(fun(obj:System.String):(System.Boolean))
+---@param onLoadFail (System.Action*1System*String*1System*Exception)|(fun(arg1:System.String, arg2:System.Exception))
+---@return Barotrauma.ContentPackageManager.PackageSource
+_G['ContentPackageManager']['PackageSource'].__new = function(dir, skipPredicate, onLoadFail) end
+
diff --git a/Meta/Types/server/_00007FFD967B1AF0.lua b/Meta/Types/server/_00007FFD967B1AF0.lua
new file mode 100644
index 0000000..fe3d4b5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B1AF0.lua
@@ -0,0 +1,81 @@
+---@meta
+---@class Barotrauma.ContentPackageManager.EnabledPackages : System.Object
+---`Field Private Static`
+---@field regular (System.Collections.Generic.List*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Core Barotrauma.CorePackage
+---`Getter Public Static`
+---@field Regular (System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field MergedHash Barotrauma.Md5Hash
+---`Getter Public Static`
+---@field All (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager']['EnabledPackages'] = {}
+
+---`Method Public Static`
+---@param newCore Barotrauma.CorePackage
+_G['ContentPackageManager']['EnabledPackages'].SetCore = function(newCore) end
+
+---`Method Public Static`
+---@param newCore Barotrauma.CorePackage
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackageManager']['EnabledPackages'].SetCoreEnumerable = function(newCore) end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].ReloadCore = function() end
+
+---`Method Public Static`
+---@param p Barotrauma.ContentPackage
+_G['ContentPackageManager']['EnabledPackages'].ReloadPackage = function(p) end
+
+---`Method Public Static`
+---@param p Barotrauma.RegularPackage
+_G['ContentPackageManager']['EnabledPackages'].EnableRegular = function(p) end
+
+---`Method Public Static`
+---@param newRegular (System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+_G['ContentPackageManager']['EnabledPackages'].SetRegular = function(newRegular) end
+
+---`Method Public Static`
+---@param inNewRegular (System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage)|(Barotrauma.RegularPackage[])
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress)|(fun():(Barotrauma.ContentPackageManager.LoadProgress))
+_G['ContentPackageManager']['EnabledPackages'].SetRegularEnumerable = function(inNewRegular) end
+
+---`Method Public Static`
+---@param pkgs (System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager']['EnabledPackages'].ThrowIfDuplicates = function(pkgs) end
+
+---`Method Private Static`
+_G['ContentPackageManager']['EnabledPackages'].SortContent = function() end
+
+---`Method Public Static`
+---@param contentPackage Barotrauma.ContentPackage
+---@return System.Int32
+_G['ContentPackageManager']['EnabledPackages'].IndexOf = function(contentPackage) end
+
+---`Method Public Static`
+---@param mods (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*ContentPackage)|(fun():(Barotrauma.ContentPackage))
+_G['ContentPackageManager']['EnabledPackages'].DisableMods = function(mods) end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].DisableRemovedMods = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].RefreshUpdatedMods = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].BackUp = function() end
+
+---`Method Public Static`
+_G['ContentPackageManager']['EnabledPackages'].Restore = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager.EnabledPackages
+_G['ContentPackageManager']['EnabledPackages'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.ContentPackageManager.EnabledPackages
+_G['ContentPackageManager']['EnabledPackages'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967B1C08.lua b/Meta/Types/server/_00007FFD967B1C08.lua
new file mode 100644
index 0000000..85ad1a1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B1C08.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.RegularPackage : Barotrauma.ContentPackage
+_G['RegularPackage'] = {}
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.RegularPackage
+_G['RegularPackage'] = function(doc, path) end
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.RegularPackage
+_G['RegularPackage'].__new = function(doc, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B1D90.lua b/Meta/Types/server/_00007FFD967B1D90.lua
new file mode 100644
index 0000000..0f9769a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B1D90.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.CorePackage : Barotrauma.ContentPackage
+_G['CorePackage'] = {}
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.CorePackage
+_G['CorePackage'] = function(doc, path) end
+
+---`Constructor Public Instance`
+---@param doc System.Xml.Linq.XDocument
+---@param path System.String
+---@return Barotrauma.CorePackage
+_G['CorePackage'].__new = function(doc, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B2530.lua b/Meta/Types/server/_00007FFD967B2530.lua
new file mode 100644
index 0000000..007bc8b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B2530.lua
@@ -0,0 +1,288 @@
+---@meta
+---@class Barotrauma.ContentXElement : System.Object
+---`Field Public Instance`
+---@field Element System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Getter Public Instance`
+---@field Name System.Xml.Linq.XName
+---`Getter Public Instance`
+---@field BaseUri System.String
+---`Getter Public Instance`
+---@field Document System.Xml.Linq.XDocument
+---`Getter Public Instance`
+---@field Parent Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field HasElements System.Boolean
+_G['ContentXElement'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.Identifier
+_G['ContentXElement'].NameAsIdentifier = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'].FirstElement = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentXElement'].IsOverride = function() end
+
+---`Method Public Instance`
+---@param other Barotrauma.ContentXElement
+---@return System.Boolean
+_G['ContentXElement'].ComesAfter = function(other) end
+
+---`Method Public Instance`
+---@param name System.String
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'].GetChildElement = function(name) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].Elements = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].ElementsBeforeSelf = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].Descendants = function() end
+
+---`Method Public Instance`
+---@param name System.String
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['ContentXElement'].GetChildElements = function(name) end
+
+---`Method Public Instance`
+---@param name System.String
+---@return System.Xml.Linq.XAttribute
+_G['ContentXElement'].GetAttribute = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute)))
+---@param name System.String
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+_G['ContentXElement'].Attributes = function(name) end
+
+---`Method Public Instance`
+---@return System.String
+_G['ContentXElement'].ElementInnerText = function() end
+
+---`Method Public Instance`
+---@overload fun(key:System.String, def:System.String):(Barotrauma.Identifier)
+---@param key System.String
+---@param def Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['ContentXElement'].GetAttributeIdentifier = function(key, def) end
+
+---`Method Public Instance`
+---@overload fun(def:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), ...:System.String):((Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]))
+---@param key System.String
+---@param def (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+_G['ContentXElement'].GetAttributeIdentifierArray = function(key, def, trim) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['ContentXElement'].GetAttributeIdentifierImmutableHashSet = function(key, def, trim) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.String
+---@return System.String
+_G['ContentXElement'].GetAttributeString = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.String
+---@return System.String
+_G['ContentXElement'].GetAttributeStringUnrestricted = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.String-arr)|(System.String[])
+---@param convertToLowerInvariant? System.Boolean
+---@return (System.String-arr)|(System.String[])
+_G['ContentXElement'].GetAttributeStringArray = function(key, def, convertToLowerInvariant) end
+
+---`Method Public Instance`
+---@param key System.String
+---@return Barotrauma.ContentPath
+_G['ContentXElement'].GetAttributeContentPath = function(key) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.Int32
+---@return System.Int32
+_G['ContentXElement'].GetAttributeInt = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.UInt16
+---@return System.UInt16
+_G['ContentXElement'].GetAttributeUInt16 = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.Int32-arr)|(System.Int32[])
+---@return (System.Int32-arr)|(System.Int32[])
+_G['ContentXElement'].GetAttributeIntArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.UInt16-arr)|(System.UInt16[])
+---@return (System.UInt16-arr)|(System.UInt16[])
+_G['ContentXElement'].GetAttributeUshortArray = function(key, def) end
+
+---`Method Public Instance`
+---@overload fun(key:System.String, def:System.Single):(System.Single)
+---@param def System.Single
+---@param ... System.String
+---@return System.Single
+_G['ContentXElement'].GetAttributeFloat = function(def, ...) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (System.Single-arr)|(System.Single[])
+---@return (System.Single-arr)|(System.Single[])
+_G['ContentXElement'].GetAttributeFloatArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.Boolean
+---@return System.Boolean
+_G['ContentXElement'].GetAttributeBool = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Point-ref
+---@return Microsoft.Xna.Framework.Point
+_G['ContentXElement'].GetAttributePoint = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Vector2-ref
+---@return Microsoft.Xna.Framework.Vector2
+_G['ContentXElement'].GetAttributeVector2 = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Vector4-ref
+---@return Microsoft.Xna.Framework.Vector4
+_G['ContentXElement'].GetAttributeVector4 = function(key, def) end
+
+---`Method Public Instance`
+---@overload fun(key:System.String, def:Microsoft.Xna.Framework.Color-ref):(Microsoft.Xna.Framework.Color)
+---@param key System.String
+---@return System.Nullable*1Microsoft*Xna*Framework*Color
+_G['ContentXElement'].GetAttributeColor = function(key) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---@return (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+_G['ContentXElement'].GetAttributeColorArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Microsoft.Xna.Framework.Rectangle-ref
+---@return Microsoft.Xna.Framework.Rectangle
+_G['ContentXElement'].GetAttributeRect = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.Version
+---@return System.Version
+_G['ContentXElement'].GetAttributeVersion = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Barotrauma.T-ref
+---@return Barotrauma.ContentXElement.T
+_G['ContentXElement'].GetAttributeEnum = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def (Barotrauma.T-arr)|(Barotrauma.ContentXElement.T[])
+---@return (Barotrauma.T-arr)|(Barotrauma.ContentXElement.T[])
+_G['ContentXElement'].GetAttributeEnumArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.ValueTuple
+---@return System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2
+_G['ContentXElement'].GetAttributeTuple = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def System.ValueTuple
+---@return (System.ValueTuple)|(System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2[])
+_G['ContentXElement'].GetAttributeTupleArray = function(key, def) end
+
+---`Method Public Instance`
+---@param key System.String
+---@param def Barotrauma.Range
+---@return Barotrauma.Range*1System*Int32
+_G['ContentXElement'].GetAttributeRange = function(key, def) end
+
+---`Method Public Instance`
+---@return Barotrauma.Identifier
+_G['ContentXElement'].VariantOf = function() end
+
+---`Method Public Instance`
+---@param key System.String
+---@return System.Boolean
+_G['ContentXElement'].DoesAttributeReferenceFileNameAlone = function(key) end
+
+---`Method Public Instance`
+---@return System.String
+_G['ContentXElement'].ParseContentPathFromUri = function() end
+
+---`Method Public Instance`
+---@param key System.String
+---@param val System.String
+_G['ContentXElement'].SetAttributeValue = function(key, val) end
+
+---`Method Public Instance`
+---@param elem Barotrauma.ContentXElement
+_G['ContentXElement'].Add = function(elem) end
+
+---`Method Public Instance`
+---@param elem Barotrauma.ContentXElement
+_G['ContentXElement'].AddFirst = function(elem) end
+
+---`Method Public Instance`
+---@param elem Barotrauma.ContentXElement
+_G['ContentXElement'].AddAfterSelf = function(elem) end
+
+---`Method Public Instance`
+_G['ContentXElement'].Remove = function() end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['ContentXElement'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ContentXElement'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'] = function(contentPackage, element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.ContentXElement
+_G['ContentXElement'].__new = function(contentPackage, element) end
+
diff --git a/Meta/Types/server/_00007FFD967B28A8.lua b/Meta/Types/server/_00007FFD967B28A8.lua
new file mode 100644
index 0000000..7d69acc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B28A8.lua
@@ -0,0 +1,90 @@
+---@meta
+---@class Barotrauma.ContentPath : System.Object
+---`Field Public Instance`
+---@field RawValue System.String
+---`Field Public Instance`
+---@field ContentPackage Barotrauma.ContentPackage
+---`Field Private Instance`
+---@field cachedValue System.String
+---`Field Private Instance`
+---@field cachedFullPath System.String
+---`Field Public Static`
+---@field Empty Barotrauma.ContentPath
+---`Field Private Static`
+---@field OtherModDirRegex System.Text.RegularExpressions.Regex
+---`Field Private Static`
+---@field prevCreatedRaw Barotrauma.ContentPath
+---`Field Public Static`
+---@field ModDirStr System.String
+---`Field Public Static`
+---@field OtherModDirFmt System.String
+---`Getter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---@field FullPath System.String
+_G['ContentPath'] = {}
+
+---`Method Public Static`
+---@overload fun(rawValue:System.String):(Barotrauma.ContentPath)
+---@param contentPackage Barotrauma.ContentPackage
+---@param rawValue System.String
+---@return Barotrauma.ContentPath
+_G['ContentPath'].FromRaw = function(contentPackage, rawValue) end
+
+---`Method Private Static`
+---@param a System.String
+---@param b System.String
+---@return System.Boolean
+_G['ContentPath'].StringEquality = function(a, b) end
+
+---`Method NonPublic Instance`
+---@param other Barotrauma.ContentPath
+---@return System.Boolean
+_G['ContentPath'].Equals = function(other) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['ContentPath'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ContentPath'].GetHashCode = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPath'].IsPathNullOrEmpty = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['ContentPath'].IsPathNullOrWhiteSpace = function() end
+
+---`Method Public Instance`
+---@param suffix System.String
+---@return System.Boolean
+_G['ContentPath'].EndsWith = function(suffix) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ContentPath'].ToString = function() end
+
+---`Constructor Private Instance`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(contentPackage:Barotrauma.ContentPackage, rawValue:System.String):Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ContentPath'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967B3238.lua b/Meta/Types/server/_00007FFD967B3238.lua
new file mode 100644
index 0000000..8043c6a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B3238.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.Success*1Barotrauma*ContentPackage*1System*Exception : Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception
+---`Field Public Instance`
+---@field Value Barotrauma.ContentPackage
+---`Getter Public Instance Virtual`
+---@field IsSuccess System.Boolean
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'] = {}
+
+---`Method Public Instance Virtual`
+---@param value Barotrauma.ContentPackage-ref
+---@return System.Boolean
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].TryUnwrapSuccess = function(value) end
+
+---`Method Public Instance Virtual`
+---@param value System.Exception-ref
+---@return System.Boolean
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].TryUnwrapFailure = function(value) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param value Barotrauma.ContentPackage
+---@return Barotrauma.Success*1Barotrauma*ContentPackage*1System*Exception
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'] = function(value) end
+
+---`Constructor Public Instance`
+---@param value Barotrauma.ContentPackage
+---@return Barotrauma.Success*1Barotrauma*ContentPackage*1System*Exception
+_G['Success*1Barotrauma*ContentPackage*1System*Exception'].__new = function(value) end
+
diff --git a/Meta/Types/server/_00007FFD967B34F0.lua b/Meta/Types/server/_00007FFD967B34F0.lua
new file mode 100644
index 0000000..3db15b4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B34F0.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.AfflictionsFile : Barotrauma.ContentFile
+---`Field Private Static`
+---@field afflictionTypes (System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[])
+_G['AfflictionsFile'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param overriding System.Boolean
+_G['AfflictionsFile'].ParseElement = function(element, overriding) end
+
+---`Method Public Instance Virtual`
+_G['AfflictionsFile'].LoadFile = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param type System.Type
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionsFile'].CreatePrefab = function(element, type) end
+
+---`Method Public Instance Virtual`
+_G['AfflictionsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['AfflictionsFile'].Sort = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'] = function(contentPackage, path) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'].__new = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.AfflictionsFile
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.AfflictionsFile
+_G['AfflictionsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B3750.lua b/Meta/Types/server/_00007FFD967B3750.lua
new file mode 100644
index 0000000..3f61bc2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B3750.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.OtherFile : Barotrauma.HashlessFile
+_G['OtherFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['OtherFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OtherFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OtherFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OtherFile
+_G['OtherFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OtherFile
+_G['OtherFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B3840.lua b/Meta/Types/server/_00007FFD967B3840.lua
new file mode 100644
index 0000000..8d1d283
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B3840.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.BackgroundCreaturePrefabsFile : Barotrauma.OtherFile
+_G['BackgroundCreaturePrefabsFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BackgroundCreaturePrefabsFile
+_G['BackgroundCreaturePrefabsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BackgroundCreaturePrefabsFile
+_G['BackgroundCreaturePrefabsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B3D40.lua b/Meta/Types/server/_00007FFD967B3D40.lua
new file mode 100644
index 0000000..f6c2de3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B3D40.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.BallastFloraFile : Barotrauma.GenericPrefabFile*1Barotrauma*BallastFloraPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*BallastFloraPrefab)|(fun():(Barotrauma.BallastFloraPrefab))
+_G['BallastFloraFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['BallastFloraFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['BallastFloraFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.BallastFloraPrefab
+_G['BallastFloraFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BallastFloraFile
+_G['BallastFloraFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BallastFloraFile
+_G['BallastFloraFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B42A8.lua b/Meta/Types/server/_00007FFD967B42A8.lua
new file mode 100644
index 0000000..b1b4958
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B42A8.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.BeaconStationFile : Barotrauma.BaseSubFile
+_G['BeaconStationFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BeaconStationFile
+_G['BeaconStationFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.BeaconStationFile
+_G['BeaconStationFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B4410.lua b/Meta/Types/server/_00007FFD967B4410.lua
new file mode 100644
index 0000000..9a0f75d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B4410.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.CaveGenerationParametersFile : Barotrauma.GenericPrefabFile*1Barotrauma*CaveGenerationParams
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CaveGenerationParams)|(fun():(Barotrauma.CaveGenerationParams))
+_G['CaveGenerationParametersFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CaveGenerationParametersFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CaveGenerationParametersFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.CaveGenerationParams
+_G['CaveGenerationParametersFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CaveGenerationParametersFile
+_G['CaveGenerationParametersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CaveGenerationParametersFile
+_G['CaveGenerationParametersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B4B40.lua b/Meta/Types/server/_00007FFD967B4B40.lua
new file mode 100644
index 0000000..52f2fbf
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B4B40.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.CharacterFile : Barotrauma.ContentFile
+_G['CharacterFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['CharacterFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['CharacterFile'].UnloadFile = function() end
+
+---`Method Private Static`
+_G['CharacterFile'].ClearCaches = function() end
+
+---`Method Public Instance Virtual`
+_G['CharacterFile'].Sort = function() end
+
+---`Method Public Instance Virtual`
+---@param addPreloadedSprite (System.Action*1Barotrauma*Sprite)|(fun(obj:Barotrauma.Sprite))
+_G['CharacterFile'].Preload = function(addPreloadedSprite) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CharacterFile
+_G['CharacterFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CharacterFile
+_G['CharacterFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B4CE8.lua b/Meta/Types/server/_00007FFD967B4CE8.lua
new file mode 100644
index 0000000..64456c8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B4CE8.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.CorpsesFile : Barotrauma.GenericPrefabFile*1Barotrauma*CorpsePrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CorpsePrefab)|(fun():(Barotrauma.CorpsePrefab))
+_G['CorpsesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CorpsesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CorpsesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.CorpsePrefab
+_G['CorpsesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CorpsesFile
+_G['CorpsesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.CorpsesFile
+_G['CorpsesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B5860.lua b/Meta/Types/server/_00007FFD967B5860.lua
new file mode 100644
index 0000000..087a5a0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B5860.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.Level.PositionType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field MainPath Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field SidePath Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Cave Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Ruin Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Wreck Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field BeaconStation Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Abyss Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field AbyssCave Barotrauma.Level.PositionType
+---`Field Public Static`
+---@field Outpost Barotrauma.Level.PositionType
+_G['Level']['PositionType'] = {}
+_G['PositionType'] = _G['Level']['PositionType']
+
diff --git a/Meta/Types/server/_00007FFD967B5C50.lua b/Meta/Types/server/_00007FFD967B5C50.lua
new file mode 100644
index 0000000..86db98b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B5C50.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.DecalsFile : Barotrauma.ContentFile
+_G['DecalsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['DecalsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['DecalsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['DecalsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.DecalsFile
+_G['DecalsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.DecalsFile
+_G['DecalsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B5DB8.lua b/Meta/Types/server/_00007FFD967B5DB8.lua
new file mode 100644
index 0000000..96d5d96
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B5DB8.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.EnemySubmarineFile : Barotrauma.BaseSubFile
+_G['EnemySubmarineFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EnemySubmarineFile
+_G['EnemySubmarineFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EnemySubmarineFile
+_G['EnemySubmarineFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B5F20.lua b/Meta/Types/server/_00007FFD967B5F20.lua
new file mode 100644
index 0000000..934162d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B5F20.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.EventManagerSettingsFile : Barotrauma.GenericPrefabFile*1Barotrauma*EventManagerSettings
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))
+_G['EventManagerSettingsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['EventManagerSettingsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['EventManagerSettingsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettingsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EventManagerSettingsFile
+_G['EventManagerSettingsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.EventManagerSettingsFile
+_G['EventManagerSettingsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B6138.lua b/Meta/Types/server/_00007FFD967B6138.lua
new file mode 100644
index 0000000..44c35c2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B6138.lua
@@ -0,0 +1,50 @@
+---@meta
+---@class Barotrauma.EventManagerSettings : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field EventThresholdIncrease System.Single
+---`Field Public Instance`
+---@field DefaultEventThreshold System.Single
+---`Field Public Instance`
+---@field EventCooldown System.Single
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Single
+---`Field Public Instance`
+---@field FreezeDurationWhenCrewAway System.Single
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))
+---`Getter Public Static`
+---@field OrderedByDifficulty (System.Linq.IOrderedEnumerable*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))
+_G['EventManagerSettings'] = {}
+
+---`Method Public Static`
+---@param p System.Single
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'].GetByDifficultyPercentile = function(p) end
+
+---`Method Public Instance Virtual`
+_G['EventManagerSettings'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.EventManagerSettingsFile):Barotrauma.EventManagerSettings
+---@return Barotrauma.EventManagerSettings
+_G['EventManagerSettings'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967B6380.lua b/Meta/Types/server/_00007FFD967B6380.lua
new file mode 100644
index 0000000..183adbb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B6380.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.FactionsFile : Barotrauma.GenericPrefabFile*1Barotrauma*FactionPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*FactionPrefab)|(fun():(Barotrauma.FactionPrefab))
+_G['FactionsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['FactionsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['FactionsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.FactionPrefab
+_G['FactionsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.FactionsFile
+_G['FactionsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.FactionsFile
+_G['FactionsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B6738.lua b/Meta/Types/server/_00007FFD967B6738.lua
new file mode 100644
index 0000000..a9bb362
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B6738.lua
@@ -0,0 +1,61 @@
+---@meta
+---@class Barotrauma.FactionPrefab : Barotrauma.Prefab
+---`Field Public Instance`
+---@field HireableCharacters (System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*HireableCharacter)|(Barotrauma.FactionPrefab.HireableCharacter[])
+---`Field Public Instance`
+---@field AutomaticMissions (System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*AutomaticMission)|(Barotrauma.FactionPrefab.AutomaticMission[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*FactionPrefab)|(fun():(Barotrauma.FactionPrefab))
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field ShortDescription Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field OpposingFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---@field StartOutpost System.Boolean
+---`Getter Public Instance`
+---@field MenuOrder System.Int32
+---`Getter Public Instance`
+---@field MinReputation System.Int32
+---`Getter Public Instance`
+---@field MaxReputation System.Int32
+---`Getter Public Instance`
+---@field InitialReputation System.Int32
+---`Getter Public Instance`
+---@field ControlledOutpostPercentage System.Single
+---`Getter Public Instance`
+---@field SecondaryControlledOutpostPercentage System.Single
+---`Getter Public Instance`
+---@field IconColor Microsoft.Xna.Framework.Color
+_G['FactionPrefab'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['FactionPrefab'].ToString = function() end
+
+---`Method Public Instance Virtual`
+_G['FactionPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.FactionsFile):Barotrauma.FactionPrefab
+---@return Barotrauma.FactionPrefab
+_G['FactionPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967B7BA0.lua b/Meta/Types/server/_00007FFD967B7BA0.lua
new file mode 100644
index 0000000..c53e4ae
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B7BA0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.ItemAssemblyFile : Barotrauma.GenericPrefabFile*1Barotrauma*ItemAssemblyPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemAssemblyPrefab)|(fun():(Barotrauma.ItemAssemblyPrefab))
+_G['ItemAssemblyFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemAssemblyFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemAssemblyFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemAssemblyFile
+_G['ItemAssemblyFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemAssemblyFile
+_G['ItemAssemblyFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967B8260.lua b/Meta/Types/server/_00007FFD967B8260.lua
new file mode 100644
index 0000000..b42ec64
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B8260.lua
@@ -0,0 +1,163 @@
+---@meta
+---@class Barotrauma.MapEntityPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field cachedAllowedUpgrades System.String
+---`Field Private Instance`
+---@field allowedUpgradeSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field NonPublic Static`
+---@field placePosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntityPrefab)|(fun():(Barotrauma.MapEntityPrefab))
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field Selected Barotrauma.MapEntityPrefab
+---`Getter Public Instance Abstract Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipX System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipY System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Abstract Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Abstract Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Abstract Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Abstract Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Abstract Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ResizeHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ResizeVertical System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field AllowedUpgrades System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field HideInMenus System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field HideInEditors System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Subcategory System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Scale System.Single
+_G['MapEntityPrefab'] = {}
+
+---`Method Public Static`
+---@param selection System.Object
+---@return System.Boolean
+_G['MapEntityPrefab'].SelectPrefab = function(selection) end
+
+---`Method Public Static`
+---@return System.Object
+_G['MapEntityPrefab'].GetSelected = function() end
+
+---`Method Public Static`
+---@overload fun(name:System.String, identifier?:System.String, showErrorMessages?:System.Boolean):(Barotrauma.MapEntityPrefab)
+---@overload fun(name:System.String, identifier:Barotrauma.Identifier, showErrorMessages?:System.Boolean):(Barotrauma.MapEntityPrefab)
+---@param predicate (System.Predicate*1Barotrauma*MapEntityPrefab)|(fun(obj:Barotrauma.MapEntityPrefab):(System.Boolean))
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].Find = function(predicate) end
+
+---`Method Public Static`
+---@param predicate (System.Predicate*1Barotrauma*MapEntityPrefab)|(fun(obj:Barotrauma.MapEntityPrefab):(System.Boolean))
+---@param sync Barotrauma.Rand.RandSync
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].GetRandom = function(predicate, sync) end
+
+---`Method Public Static`
+---@param name System.String
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].FindByName = function(name) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].FindByIdentifier = function(identifier) end
+
+---`Method Public Instance`
+---@return System.String
+_G['MapEntityPrefab'].GetItemNameTextId = function() end
+
+---`Method Public Instance`
+---@return System.String
+_G['MapEntityPrefab'].GetHullNameTextId = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['MapEntityPrefab'].GetAllowedUpgrades = function() end
+
+---`Method Public Instance`
+---@param subcategory System.String
+---@return System.Boolean
+_G['MapEntityPrefab'].HasSubCategory = function(subcategory) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['MapEntityPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance`
+_G['MapEntityPrefab'].DebugCreateInstance = function() end
+
+---`Method Public Instance`
+---@overload fun(name:System.String, comparisonType:System.StringComparison):(System.Boolean)
+---@param allowedNames (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---@param comparisonType System.StringComparison
+---@return System.Boolean
+_G['MapEntityPrefab'].NameMatches = function(allowedNames, comparisonType) end
+
+---`Method Public Instance`
+---@param target Barotrauma.MapEntityPrefab
+---@return System.Boolean
+_G['MapEntityPrefab'].IsLinkAllowed = function(target) end
+
+---`Method NonPublic Instance`
+---@param element Barotrauma.ContentXElement
+_G['MapEntityPrefab'].LoadDescription = function(element) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'] = function(element, file) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].__new = function(element, file) end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):Barotrauma.MapEntityPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ContentFile
+---@return Barotrauma.MapEntityPrefab
+_G['MapEntityPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/server/_00007FFD967B9E48.lua b/Meta/Types/server/_00007FFD967B9E48.lua
new file mode 100644
index 0000000..420dfdb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967B9E48.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.ItemAssemblyPrefab : Barotrauma.MapEntityPrefab
+---`Field Private Instance`
+---@field configElement System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field DisplayEntities (System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemAssemblyPrefab*DisplayEntity)|(Barotrauma.ItemAssemblyPrefab.DisplayEntity[])
+---`Field Public Instance`
+---@field Bounds Microsoft.Xna.Framework.Rectangle
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemAssemblyPrefab)|(fun():(Barotrauma.ItemAssemblyPrefab))
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+_G['ItemAssemblyPrefab'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['ItemAssemblyPrefab'].DetermineIdentifier = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['ItemAssemblyPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param sub Barotrauma.Submarine
+---@param selectInstance? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['ItemAssemblyPrefab'].CreateInstance = function(position, sub, selectInstance) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param sub Barotrauma.Submarine
+---@param configElement System.Xml.Linq.XElement
+---@param filePath? System.String
+---@param selectInstance? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['ItemAssemblyPrefab'].PasteEntities = function(position, sub, configElement, filePath, selectInstance) end
+
+---`Method Public Instance`
+_G['ItemAssemblyPrefab'].Delete = function() end
+
+---`Method Public Instance Virtual`
+_G['ItemAssemblyPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.ItemAssemblyFile):Barotrauma.ItemAssemblyPrefab
+---@return Barotrauma.ItemAssemblyPrefab
+_G['ItemAssemblyPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967BA870.lua b/Meta/Types/server/_00007FFD967BA870.lua
new file mode 100644
index 0000000..00ec2d1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967BA870.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.ItemFile : Barotrauma.GenericPrefabFile*1Barotrauma*ItemPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+_G['ItemFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['ItemFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.ItemPrefab
+_G['ItemFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemFile
+_G['ItemFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ItemFile
+_G['ItemFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967BDAE8.lua b/Meta/Types/server/_00007FFD967BDAE8.lua
new file mode 100644
index 0000000..4fdc54a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967BDAE8.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.DeconstructItem : System.ValueType
+---`Field Public Instance`
+---@field ItemIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field MinCondition System.Single
+---`Field Public Instance`
+---@field MaxCondition System.Single
+---`Field Public Instance`
+---@field OutConditionMin System.Single
+---`Field Public Instance`
+---@field OutConditionMax System.Single
+---`Field Public Instance`
+---@field CopyCondition System.Boolean
+---`Field Public Instance`
+---@field RequiredDeconstructor (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredOtherItem (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field ActivateButtonText System.String
+---`Field Public Instance`
+---@field InfoText System.String
+---`Field Public Instance`
+---@field InfoTextOnOtherItemMissing System.String
+---`Field Public Instance`
+---@field Commonness System.Single
+_G['DeconstructItem'] = {}
+
+---`Method Public Instance`
+---@param deconstructor Barotrauma.Item
+---@return System.Boolean
+_G['DeconstructItem'].IsValidDeconstructor = function(deconstructor) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param parentDebugName Barotrauma.Identifier
+---@return Barotrauma.DeconstructItem
+_G['DeconstructItem'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param parentDebugName Barotrauma.Identifier
+---@return Barotrauma.DeconstructItem
+_G['DeconstructItem'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/server/_00007FFD967C0E78.lua b/Meta/Types/server/_00007FFD967C0E78.lua
new file mode 100644
index 0000000..9c959ee
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C0E78.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.MapEntityCategory : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Structure Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Decorative Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Machine Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Medical Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Weapon Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Diving Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Equipment Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Fuel Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Electrical Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Material Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Alien Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Wrecked Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field ItemAssembly Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Legacy Barotrauma.MapEntityCategory
+---`Field Public Static`
+---@field Misc Barotrauma.MapEntityCategory
+_G['MapEntityCategory'] = {}
+
diff --git a/Meta/Types/server/_00007FFD967C1050.lua b/Meta/Types/server/_00007FFD967C1050.lua
new file mode 100644
index 0000000..1f7c8a5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C1050.lua
@@ -0,0 +1,445 @@
+---@meta
+---@class Barotrauma.ItemPrefab : Barotrauma.MapEntityPrefab
+---`Field Private Instance`
+---@field defaultPrice Barotrauma.PriceInfo
+---`Field Private Instance`
+---@field treatmentSuitability (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Instance`
+---@field originalElement Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field canSpriteFlipX System.Boolean
+---`Field Private Instance`
+---@field canSpriteFlipY System.Boolean
+---`Field Private Instance`
+---@field sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field name Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field allowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field category Barotrauma.MapEntityCategory
+---`Field Private Instance`
+---@field aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field health System.Single
+---`Field Private Instance`
+---@field impactTolerance System.Single
+---`Field Private Instance`
+---@field maxStackSize System.Int32
+---`Field Private Instance`
+---@field maxStackSizeCharacterInventory System.Int32
+---`Field Private Instance`
+---@field maxStackSizeHoldableOrWearableInventory System.Int32
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Field Public Static`
+---@field DefaultInteractDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DefaultPrice Barotrauma.PriceInfo
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field StorePrices (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo)|({[Barotrauma.Identifier]:(Barotrauma.PriceInfo)})
+---`Getter Public Instance`
+---@field CanBeBought System.Boolean
+---`Getter Public Instance`
+---@field CanBeSold System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Triggers (System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---`Getter Public Instance`
+---@field IsOverride System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeconstructItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*DeconstructItem)|(Barotrauma.DeconstructItem[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FabricationRecipes (System.Collections.Immutable.ImmutableDictionary*1System*UInt32*1Barotrauma*FabricationRecipe)|({[System.UInt32]:(Barotrauma.FabricationRecipe)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeconstructTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDeconstruct System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PreferredContainers (System.Collections.Immutable.ImmutableArray*1Barotrauma*PreferredContainer)|(Barotrauma.PreferredContainer[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SkillRequirementHints (System.Collections.Immutable.ImmutableArray*1Barotrauma*SkillRequirementHint)|(Barotrauma.SkillRequirementHint[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwappableItem Barotrauma.SwappableItem
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field LevelCommonness (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*CommonnessInfo)|({[Barotrauma.Identifier]:(Barotrauma.ItemPrefab.CommonnessInfo)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LevelQuantity (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*FixedQuantityResourceInfo)|({[Barotrauma.Identifier]:(Barotrauma.ItemPrefab.FixedQuantityResourceInfo)})
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipX System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipY System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAsExtraCargo System.Nullable*1System*Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomDeconstructionOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomDeconstructionOutputAmount System.Int32
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InteractDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InteractPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InteractThroughWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideConditionBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideConditionInTooltip System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequireBodyInsideTrigger System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequireCursorInsideTrigger System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequireCampaignInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FocusOnSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OffsetOnSelected System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrabWhenSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDeselectWhenIdling System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowSellingWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowStealingAlways System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Indestructible System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByExplosions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByContainedItemExplosions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExplosionDamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ItemDamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByProjectiles System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByMeleeWeapons System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByRepairTools System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamagedByMonsters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnDamagedThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SonarSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseInHealthInterface System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisableItemUsageWhenSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CargoContainerIdentifier System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseContainedSpriteColor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseContainedInventoryIconColor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AddedRepairSpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AddedPickingSpeedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CannotRepairFail System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EquipConfirmationText System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowRotatingInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowContentsInTooltip System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanFlipX System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanFlipY System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsDangerous System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxStackSize System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxStackSizeCharacterInventory System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxStackSizeHoldableOrWearableInventory System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDroppingOnSwap System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowDroppingOnSwapWith (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DontTransferBetweenSubs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BotPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowNameInHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsAITurretTarget System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AITurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AISlowTurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AITurretTargetingMaxDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowStealingContainedItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SignalComponentColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableCommandMenuWhenSelected System.Boolean
+---`Getter Public Instance Virtual`
+---@field VariantOf Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ParentPrefab Barotrauma.ItemPrefab
+_G['ItemPrefab'] = {}
+
+---`Method Public Instance`
+---@overload fun(location:Barotrauma.Location):(System.Boolean)
+---@param store Barotrauma.Location.StoreInfo
+---@param priceInfo Barotrauma.PriceInfo-ref
+---@return System.Boolean
+_G['ItemPrefab'].CanBeBoughtFrom = function(store, priceInfo) end
+
+---`Method Public Instance`
+---@return System.Nullable*1System*Int32
+_G['ItemPrefab'].GetMinPrice = function() end
+
+---`Method Public Instance`
+---@param maxCost? System.Int32
+---@return (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo)|({[Barotrauma.Identifier]:(Barotrauma.PriceInfo)})
+_G['ItemPrefab'].GetBuyPricesUnder = function(maxCost) end
+
+---`Method Public Instance`
+---@param minCost? System.Int32
+---@param sellingImportant? System.Boolean
+---@return (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo)|({[Barotrauma.Identifier]:(Barotrauma.PriceInfo)})
+_G['ItemPrefab'].GetSellPricesOver = function(minCost, sellingImportant) end
+
+---`Method Public Static`
+---@param name System.String
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].Find = function(name, identifier) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item, targetContainer:Barotrauma.Items.Components.ItemContainer, isPreferencesDefined:System.Boolean-ref, isSecondary:System.Boolean-ref, requireConditionRequirement?:System.Boolean, checkTransferConditions?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param identifiersOrTags (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param isPreferencesDefined System.Boolean-ref
+---@param isSecondary System.Boolean-ref
+---@return System.Boolean
+_G['ItemPrefab'].IsContainerPreferred = function(item, identifiersOrTags, isPreferencesDefined, isSecondary) end
+
+---`Method Public Static`
+---@overload fun(preferences:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), c:Barotrauma.Items.Components.ItemContainer):(System.Boolean)
+---@param preferences (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param ids (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['ItemPrefab'].IsContainerPreferred = function(preferences, ids) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@param pc Barotrauma.PreferredContainer
+---@return System.Boolean
+_G['ItemPrefab'].IsItemConditionAcceptable = function(item, pc) end
+
+---`Method Private Static`
+---@param item Barotrauma.Identifier
+---@param pc Barotrauma.PreferredContainer
+---@param targetContainer Barotrauma.Items.Components.ItemContainer
+---@return System.Boolean
+_G['ItemPrefab'].CanBeTransferred = function(item, pc, targetContainer) end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['ItemPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance Virtual`
+_G['ItemPrefab'].Dispose = function() end
+
+---`Method Public Instance Virtual`
+---@param parent Barotrauma.ItemPrefab
+_G['ItemPrefab'].InheritFrom = function(parent) end
+
+---`Method Public Instance`
+---@return Barotrauma.ContentPackage
+_G['ItemPrefab'].GetParentModPackageOrThisPackage = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ItemPrefab'].ToString = function() end
+
+---`Method Public Static`
+---@param itemNameOrId System.String
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].GetItemPrefab = function(itemNameOrId) end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.Inventory
+---@return System.Int32
+_G['ItemPrefab'].GetMaxStackSize = function(inventory) end
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['ItemPrefab'].DetermineIdentifier = function(element) end
+
+---`Method Public Static`
+---@param name System.String
+---@return Barotrauma.Identifier
+_G['ItemPrefab'].GenerateLegacyIdentifier = function(name) end
+
+---`Method Private Instance`
+---@param subElement Barotrauma.ContentXElement
+---@param variantOf Barotrauma.ItemPrefab
+---@return System.String
+_G['ItemPrefab'].GetTexturePath = function(subElement, variantOf) end
+
+---`Method Private Instance`
+---@param variantOf Barotrauma.ItemPrefab
+_G['ItemPrefab'].ParseConfigElement = function(variantOf) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Nullable*1Barotrauma*ItemPrefab*CommonnessInfo
+_G['ItemPrefab'].GetCommonnessInfo = function(level) end
+
+---`Method Public Instance`
+---@param treatmentIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['ItemPrefab'].GetTreatmentSuitability = function(treatmentIdentifier) end
+
+---`Method Public Instance`
+---@param store Barotrauma.Location.StoreInfo
+---@return Barotrauma.PriceInfo
+_G['ItemPrefab'].GetPriceInfo = function(store) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ItemPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ItemFile
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'] = function(element, file) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.ItemPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ItemFile
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].__new = function(element, file) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.ItemPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ItemFile
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.ItemPrefab
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.ItemFile
+---@return Barotrauma.ItemPrefab
+_G['ItemPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/server/_00007FFD967C23D8.lua b/Meta/Types/server/_00007FFD967C23D8.lua
new file mode 100644
index 0000000..17e7e35
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C23D8.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.PreferredContainer : System.Object
+---`Field Public Instance`
+---@field Primary (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Secondary (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field SpawnProbability System.Single
+---`Field Public Instance`
+---@field MaxCondition System.Single
+---`Field Public Instance`
+---@field MinCondition System.Single
+---`Field Public Instance`
+---@field MinAmount System.Int32
+---`Field Public Instance`
+---@field MaxAmount System.Int32
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field CampaignOnly System.Boolean
+---`Field Public Instance`
+---@field NotCampaign System.Boolean
+---`Field Public Instance`
+---@field NotPvP System.Boolean
+---`Field Public Instance`
+---@field TransferOnlyOnePerContainer System.Boolean
+---`Field Public Instance`
+---@field AllowTransfersHere System.Boolean
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Single
+_G['PreferredContainer'] = {}
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.PreferredContainer
+_G['PreferredContainer'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.PreferredContainer
+_G['PreferredContainer'].__new = function(element) end
+
diff --git a/Meta/Types/server/_00007FFD967C3428.lua b/Meta/Types/server/_00007FFD967C3428.lua
new file mode 100644
index 0000000..6077f09
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C3428.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.JobsFile : Barotrauma.ContentFile
+_G['JobsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['JobsFile'].LoadFile = function() end
+
+---`Method Private Instance`
+---@param mainElement Barotrauma.ContentXElement
+---@param isOverride System.Boolean
+_G['JobsFile'].LoadElements = function(mainElement, isOverride) end
+
+---`Method Public Instance Virtual`
+_G['JobsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['JobsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.JobsFile
+_G['JobsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.JobsFile
+_G['JobsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C3608.lua b/Meta/Types/server/_00007FFD967C3608.lua
new file mode 100644
index 0000000..5877ad6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C3608.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.LevelGenerationParametersFile : Barotrauma.ContentFile
+_G['LevelGenerationParametersFile'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param isOverride System.Boolean
+_G['LevelGenerationParametersFile'].LoadBiomes = function(element, isOverride) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param isOverride System.Boolean
+_G['LevelGenerationParametersFile'].LoadLevelGenerationParams = function(element, isOverride) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param overridePropagation System.Boolean
+_G['LevelGenerationParametersFile'].LoadSubElements = function(element, overridePropagation) end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParametersFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParametersFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParametersFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelGenerationParametersFile
+_G['LevelGenerationParametersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelGenerationParametersFile
+_G['LevelGenerationParametersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C37B0.lua b/Meta/Types/server/_00007FFD967C37B0.lua
new file mode 100644
index 0000000..8c0d2da
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C37B0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LevelObjectPrefabsFile : Barotrauma.GenericPrefabFile*1Barotrauma*LevelObjectPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LevelObjectPrefab)|(fun():(Barotrauma.LevelObjectPrefab))
+_G['LevelObjectPrefabsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LevelObjectPrefabsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LevelObjectPrefabsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefabsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelObjectPrefabsFile
+_G['LevelObjectPrefabsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LevelObjectPrefabsFile
+_G['LevelObjectPrefabsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C4208.lua b/Meta/Types/server/_00007FFD967C4208.lua
new file mode 100644
index 0000000..8d0b744
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C4208.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Alignment : System.Enum
+---`Field Public Static`
+---@field CenterX Barotrauma.Alignment
+---`Field Public Static`
+---@field Left Barotrauma.Alignment
+---`Field Public Static`
+---@field Right Barotrauma.Alignment
+---`Field Public Static`
+---@field CenterY Barotrauma.Alignment
+---`Field Public Static`
+---@field Top Barotrauma.Alignment
+---`Field Public Static`
+---@field Bottom Barotrauma.Alignment
+---`Field Public Static`
+---@field TopLeft Barotrauma.Alignment
+---`Field Public Static`
+---@field TopCenter Barotrauma.Alignment
+---`Field Public Static`
+---@field TopRight Barotrauma.Alignment
+---`Field Public Static`
+---@field CenterLeft Barotrauma.Alignment
+---`Field Public Static`
+---@field Center Barotrauma.Alignment
+---`Field Public Static`
+---@field CenterRight Barotrauma.Alignment
+---`Field Public Static`
+---@field BottomLeft Barotrauma.Alignment
+---`Field Public Static`
+---@field BottomCenter Barotrauma.Alignment
+---`Field Public Static`
+---@field BottomRight Barotrauma.Alignment
+---`Field Public Static`
+---@field Any Barotrauma.Alignment
+_G['GUI']['Alignment'] = {}
+
diff --git a/Meta/Types/server/_00007FFD967C44D0.lua b/Meta/Types/server/_00007FFD967C44D0.lua
new file mode 100644
index 0000000..ad539cc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C44D0.lua
@@ -0,0 +1,164 @@
+---@meta
+---@class Barotrauma.LevelObjectPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field LevelTriggerElements (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Public Instance`
+---@field OverrideCommonness (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Instance`
+---@field randomRotation Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field swingAmount System.Single
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LevelObjectPrefab)|(fun():(Barotrauma.LevelObjectPrefab))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeformableSprite Barotrauma.DeformableSprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Alignment Barotrauma.Alignment
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpawnPos Barotrauma.LevelObjectPrefab.SpawnPosType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Config System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBodyElement System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBodyTriggerIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteSpecificPhysicsBodyElements (System.Collections.Generic.Dictionary*1Barotrauma*Sprite*1System*Xml*Linq*XElement)|({[Barotrauma.Sprite]:(System.Xml.Linq.XElement)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DepthRange Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClusteringAmount System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClusteringGroup System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AlignWithSurface System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAtStart System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAtEnd System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinSurfaceWidth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomRotation Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field RandomRotationRad Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwingAmount System.Single
+---`Getter Public Instance`
+---@field SwingAmountRad System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwingFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleOscillation Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleOscillationFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Commonness System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SonarDisruption System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TakeLevelWallDamage System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HideWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ChildObjects (System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab*ChildObject)|(Barotrauma.LevelObjectPrefab.ChildObject[])
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OverrideProperties (System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab)|(Barotrauma.LevelObjectPrefab[])
+_G['LevelObjectPrefab'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LevelObjectPrefab'].ToString = function() end
+
+---`Method Public Static`
+---@param identifierOverride Barotrauma.Identifier
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['LevelObjectPrefab'].ParseIdentifier = function(identifierOverride, element) end
+
+---`Method Private Instance`
+---@param file Barotrauma.LevelObjectPrefabsFile
+---@param element Barotrauma.ContentXElement
+---@param parentTriggerIndex System.Int32
+_G['LevelObjectPrefab'].LoadElements = function(file, element, parentTriggerIndex) end
+
+---`Method Public Instance`
+---@overload fun(generationParams:Barotrauma.CaveGenerationParams, requireCaveSpecificOverride?:System.Boolean):(System.Single)
+---@param levelData Barotrauma.LevelData
+---@return System.Single
+_G['LevelObjectPrefab'].GetCommonness = function(levelData) end
+
+---`Method Public Instance Virtual`
+_G['LevelObjectPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelObjectPrefabsFile, identifierOverride?:Barotrauma.Identifier):Barotrauma.LevelObjectPrefab
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967C4740.lua b/Meta/Types/server/_00007FFD967C4740.lua
new file mode 100644
index 0000000..b8ecb48
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C4740.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.LocationTypesFile : Barotrauma.GenericPrefabFile*1Barotrauma*LocationType
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LocationType)|(fun():(Barotrauma.LocationType))
+_G['LocationTypesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LocationTypesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['LocationTypesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.LocationType
+_G['LocationTypesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LocationTypesFile
+_G['LocationTypesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.LocationTypesFile
+_G['LocationTypesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C6CF8.lua b/Meta/Types/server/_00007FFD967C6CF8.lua
new file mode 100644
index 0000000..d1a2bcb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C6CF8.lua
@@ -0,0 +1,163 @@
+---@meta
+---@class Barotrauma.LocationType : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field rawNames (System.Collections.Immutable.ImmutableArray*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field portraits (System.Collections.Immutable.ImmutableArray*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field hireableJobs (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Single*2System*Boolean)|(System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean[])
+---`Field Private Instance`
+---@field totalHireableWeight System.Single
+---`Field Public Instance`
+---@field CommonnessPerZone (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---`Field Public Instance`
+---@field MinCountPerZone (System.Collections.Generic.Dictionary*1System*Int32*1System*Int32)|({[System.Int32]:(System.Int32)})
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field ForceLocationName Barotrauma.Identifier
+---`Field Public Instance`
+---@field BeaconStationChance System.Single
+---`Field Public Instance`
+---@field OutpostTeam Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field IsAnyOutpost System.Boolean
+---`Field Public Instance`
+---@field CanChangeTo (System.Collections.Generic.List*1Barotrauma*LocationTypeChange)|(Barotrauma.LocationTypeChange[])
+---`Field Public Instance`
+---@field MissionIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field MissionTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field HideEntitySubcategories (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field nameIdentifiers System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier
+---`Field Private Instance`
+---@field nameFormatLanguage Barotrauma.LanguageIdentifier
+---`Field Private Instance`
+---@field nameFormats System.Nullable*1System*Collections*Immutable*ImmutableArray*2System*String
+---`Field Private Instance`
+---@field forceOutpostGenerationParamsIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field ShowSonarMarker System.Boolean
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*LocationType)|(fun():(Barotrauma.LocationType))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsEnterable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAsBiomeGate System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowInRandomLevels System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UsePortraitInRandomLoadingScreens System.Boolean
+---`Getter Public Instance`
+---@field NameFormats (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+---`Getter Public Instance`
+---@field HasHireableCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasOutpost System.Boolean
+---`Getter Public Instance`
+---@field ReplaceInRadiation Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Getter Public Instance`
+---@field SecondaryFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field RadiationSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field IgnoreGenericEvents System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field StoreMaxReputationModifier System.Single
+---`Getter Public Instance`
+---@field StoreSellPriceModifier System.Single
+---`Getter Public Instance`
+---@field DailySpecialPriceModifier System.Single
+---`Getter Public Instance`
+---@field RequestGoodPriceModifier System.Single
+---`Getter Public Instance`
+---@field StoreInitialBalance System.Int32
+---`Getter Public Instance`
+---@field StorePriceModifierRange System.Int32
+---`Getter Public Instance`
+---@field DailySpecialsCount System.Int32
+---`Getter Public Instance`
+---@field RequestedGoodsCount System.Int32
+_G['LocationType'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LocationType'].ToString = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab)|(fun():(Barotrauma.JobPrefab))
+_G['LocationType'].GetHireablesMissingFromCrew = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.JobPrefab
+_G['LocationType'].GetRandomHireable = function() end
+
+---`Method Public Instance`
+---@param randomSeed System.Int32
+---@return Barotrauma.Sprite
+_G['LocationType'].GetPortrait = function(randomSeed) end
+
+---`Method Public Instance`
+---@param rand System.Random
+---@param existingLocations (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+---@return Barotrauma.Identifier
+_G['LocationType'].GetRandomNameId = function(rand, existingLocations) end
+
+---`Method Public Instance`
+---@param rand System.Random
+---@param existingLocations (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+---@return System.String
+_G['LocationType'].GetRandomRawName = function(rand, existingLocations) end
+
+---`Method Public Static`
+---@param rand System.Random
+---@param zone? System.Nullable*1System*Int32
+---@param requireOutpost? System.Boolean
+---@param predicate? (System.Func*1Barotrauma*LocationType*1System*Boolean)|(fun(arg:Barotrauma.LocationType):(System.Boolean))
+---@return Barotrauma.LocationType
+_G['LocationType'].Random = function(rand, zone, requireOutpost, predicate) end
+
+---`Method Public Instance`
+---@return Barotrauma.OutpostGenerationParams
+_G['LocationType'].GetForcedOutpostGenerationParams = function() end
+
+---`Method Public Instance Virtual`
+_G['LocationType'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LocationTypesFile):Barotrauma.LocationType
+---@return Barotrauma.LocationType
+_G['LocationType'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967C7308.lua b/Meta/Types/server/_00007FFD967C7308.lua
new file mode 100644
index 0000000..03d3c92
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C7308.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Barotrauma.Sprite : System.Object
+---`Field Private Instance`
+---@field sourceRect Microsoft.Xna.Framework.Rectangle
+---`Field NonPublic Instance`
+---@field offset Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field origin Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field size Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field rotation System.Single
+---`Field NonPublic Instance`
+---@field depth System.Single
+---`Field Private Instance`
+---@field _relativeOrigin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SourceElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LazyLoad System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourceRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Depth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RelativeOrigin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RelativeSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FilePath Barotrauma.ContentPath
+---`Getter Public Instance`
+---@field FullPath System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Compress System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EntityIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Name System.String
+_G['Sprite'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Sprite'].ToString = function() end
+
+---`Method NonPublic Instance`
+---@param spriteParams Barotrauma.RagdollParams.SpriteParams
+---@param isFlipped System.Boolean
+_G['Sprite'].LoadParams = function(spriteParams, isFlipped) end
+
+---`Method Private Instance`
+---@param newFile System.String
+---@param sourceRectangle? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param newOrigin? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param newOffset? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param newRotation? System.Single
+_G['Sprite'].Init = function(newFile, sourceRectangle, newOrigin, newOffset, newRotation) end
+
+---`Method Public Static`
+---@param sourceElement System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['Sprite'].GetIdentifier = function(sourceElement) end
+
+---`Method Public Instance`
+_G['Sprite'].Remove = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Sprite'].Finalize = function() end
+
+---`Method Public Instance`
+_G['Sprite'].ReloadXML = function() end
+
+---`Method Public Instance`
+---@param path? System.String
+---@param file? System.String
+---@return System.Boolean
+_G['Sprite'].ParseTexturePath = function(path, file) end
+
+---`Method Private Instance`
+---@return System.Xml.Linq.XElement
+_G['Sprite'].GetLocalizationOverrideElement = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String, lazyLoad?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.Sprite
+---@overload fun(newFile:System.String, newOrigin:Microsoft.Xna.Framework.Vector2):Barotrauma.Sprite
+---@param newFile System.String
+---@param sourceRectangle System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param origin? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param rotation? System.Single
+---@return Barotrauma.Sprite
+_G['Sprite'] = function(newFile, sourceRectangle, origin, rotation) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String, lazyLoad?:System.Boolean, sourceRectScale?:System.Single):Barotrauma.Sprite
+---@overload fun(newFile:System.String, newOrigin:Microsoft.Xna.Framework.Vector2):Barotrauma.Sprite
+---@param newFile System.String
+---@param sourceRectangle System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@param origin? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param rotation? System.Single
+---@return Barotrauma.Sprite
+_G['Sprite'].__new = function(newFile, sourceRectangle, origin, rotation) end
+
diff --git a/Meta/Types/server/_00007FFD967C8408.lua b/Meta/Types/server/_00007FFD967C8408.lua
new file mode 100644
index 0000000..933d99d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C8408.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.MapGenerationParametersFile : Barotrauma.ContentFile
+_G['MapGenerationParametersFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['MapGenerationParametersFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['MapGenerationParametersFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['MapGenerationParametersFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MapGenerationParametersFile
+_G['MapGenerationParametersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MapGenerationParametersFile
+_G['MapGenerationParametersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C85B0.lua b/Meta/Types/server/_00007FFD967C85B0.lua
new file mode 100644
index 0000000..f2684d7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C85B0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.MissionsFile : Barotrauma.GenericPrefabFile*1Barotrauma*MissionPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+_G['MissionsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['MissionsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['MissionsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.MissionPrefab
+_G['MissionsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MissionsFile
+_G['MissionsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.MissionsFile
+_G['MissionsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C90F8.lua b/Meta/Types/server/_00007FFD967C90F8.lua
new file mode 100644
index 0000000..fbc33b3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C90F8.lua
@@ -0,0 +1,171 @@
+---@meta
+---@class Barotrauma.MissionPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field constructor System.Reflection.ConstructorInfo
+---`Field Public Instance`
+---@field Type Barotrauma.Identifier
+---`Field Public Instance`
+---@field MissionClass System.Type
+---`Field Public Instance`
+---@field MultiplayerOnly System.Boolean
+---`Field Public Instance`
+---@field SingleplayerOnly System.Boolean
+---`Field Public Instance`
+---@field TextIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SuccessMessage Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field FailureMessage Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SonarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SonarIconIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field AchievementIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field ReputationRewards (System.Collections.Immutable.ImmutableList*1Barotrauma*MissionPrefab*ReputationReward)|(Barotrauma.MissionPrefab.ReputationReward[])
+---`Field Public Instance`
+---@field DataRewards (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Object*2Barotrauma*SetDataAction*OperationType)|(System.ValueTuple*1Barotrauma*Identifier*1System*Object*1Barotrauma*SetDataAction*OperationType[])
+---`Field Public Instance`
+---@field Commonness System.Int32
+---`Field Public Instance`
+---@field Difficulty System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Int32
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Int32
+---`Field Public Instance`
+---@field Reward System.Int32
+---`Field Public Instance`
+---@field Headers (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Public Instance`
+---@field Messages (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Public Instance`
+---@field AllowRetry System.Boolean
+---`Field Public Instance`
+---@field ShowInMenus System.Boolean
+---`Field Public Instance`
+---@field ShowStartMessage System.Boolean
+---`Field Public Instance`
+---@field IsSideObjective System.Boolean
+---`Field Public Instance`
+---@field AllowOtherMissionsInLevel System.Boolean
+---`Field Public Instance`
+---@field RequireWreck System.Boolean
+---`Field Public Instance`
+---@field RequireRuin System.Boolean
+---`Field Public Instance`
+---@field RequireBeaconStation System.Boolean
+---`Field Public Instance`
+---@field RequireThalamusWreck System.Boolean
+---`Field Public Instance`
+---@field SpawnBeaconStationInMiddle System.Boolean
+---`Field Public Instance`
+---@field AllowOutpostNPCs System.Boolean
+---`Field Public Instance`
+---@field ForceOutpostGenerationParameters Barotrauma.Identifier
+---`Field Public Instance`
+---@field ForceRespawnMode System.Nullable*1Barotrauma*Networking*RespawnMode
+---`Field Public Instance`
+---@field AllowOutpostSelectionFromTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field LoadSubmarines System.Boolean
+---`Field Public Instance`
+---@field BlockLocationTypeChanges System.Boolean
+---`Field Public Instance`
+---@field ShowProgressBar System.Boolean
+---`Field Public Instance`
+---@field ShowProgressInNumbers System.Boolean
+---`Field Public Instance`
+---@field MaxProgressState System.Int32
+---`Field Public Instance`
+---@field ProgressBarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field AllowedConnectionTypes (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Field Public Instance`
+---@field AllowedLocationTypes (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredLocationFaction Barotrauma.Identifier
+---`Field Public Instance`
+---@field UnhideEntitySubCategories (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field TriggerEvents (System.Collections.Generic.List*1Barotrauma*MissionPrefab*TriggerEvent)|(Barotrauma.MissionPrefab.TriggerEvent[])
+---`Field Public Instance`
+---@field LocationTypeChangeOnCompleted Barotrauma.LocationTypeChange
+---`Field Public Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+---`Field Public Static`
+---@field CoOpMissionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---`Field Public Static`
+---@field PvPMissionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---`Field Public Static`
+---@field HiddenMissionTypes (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field MinDifficulty System.Int32
+---`Field Public Static`
+---@field MaxDifficulty System.Int32
+_G['MissionPrefab'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@return System.Type
+_G['MissionPrefab'].FindMissionClass = function(element) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param missionClass System.Type
+---@return System.Reflection.ConstructorInfo
+_G['MissionPrefab'].FindMissionConstructor = function(element, missionClass) end
+
+---`Method Public Instance`
+---@param from Barotrauma.Location
+---@param to Barotrauma.Location
+---@return System.Boolean
+_G['MissionPrefab'].IsAllowed = function(from, to) end
+
+---`Method Public Instance`
+---@param difficulty System.Single
+---@return System.Boolean
+_G['MissionPrefab'].IsAllowedDifficulty = function(difficulty) end
+
+---`Method Public Instance`
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Mission
+_G['MissionPrefab'].Instantiate = function(locations, sub) end
+
+---`Method Public Instance Virtual`
+_G['MissionPrefab'].Dispose = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['MissionPrefab'].GetAllMultiplayerSelectableMissionTypes = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.MissionsFile):Barotrauma.MissionPrefab
+---@return Barotrauma.MissionPrefab
+_G['MissionPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967C9330.lua b/Meta/Types/server/_00007FFD967C9330.lua
new file mode 100644
index 0000000..77bb37c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C9330.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.NPCConversationsFile : Barotrauma.ContentFile
+_G['NPCConversationsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['NPCConversationsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['NPCConversationsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['NPCConversationsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCConversationsFile
+_G['NPCConversationsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCConversationsFile
+_G['NPCConversationsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C94D8.lua b/Meta/Types/server/_00007FFD967C94D8.lua
new file mode 100644
index 0000000..4448c53
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C94D8.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.NPCPersonalityTraitsFile : Barotrauma.GenericPrefabFile*1Barotrauma*NPCPersonalityTrait
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*NPCPersonalityTrait)|(fun():(Barotrauma.NPCPersonalityTrait))
+_G['NPCPersonalityTraitsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCPersonalityTraitsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCPersonalityTraitsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.NPCPersonalityTrait
+_G['NPCPersonalityTraitsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCPersonalityTraitsFile
+_G['NPCPersonalityTraitsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCPersonalityTraitsFile
+_G['NPCPersonalityTraitsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967C98F8.lua b/Meta/Types/server/_00007FFD967C98F8.lua
new file mode 100644
index 0000000..a78644f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967C98F8.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.NPCSetsFile : Barotrauma.GenericPrefabFile*1Barotrauma*NPCSet
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*NPCSet)|(fun():(Barotrauma.NPCSet))
+_G['NPCSetsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCSetsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['NPCSetsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.NPCSet
+_G['NPCSetsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCSetsFile
+_G['NPCSetsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.NPCSetsFile
+_G['NPCSetsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CA428.lua b/Meta/Types/server/_00007FFD967CA428.lua
new file mode 100644
index 0000000..350fc88
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CA428.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.OrdersFile : Barotrauma.ContentFile
+_G['OrdersFile'] = {}
+
+---`Method Public Instance`
+---@param parentElement Barotrauma.ContentXElement
+---@param overriding System.Boolean
+_G['OrdersFile'].LoadFromXElement = function(parentElement, overriding) end
+
+---`Method Public Instance Virtual`
+_G['OrdersFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OrdersFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['OrdersFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OrdersFile
+_G['OrdersFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OrdersFile
+_G['OrdersFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CA648.lua b/Meta/Types/server/_00007FFD967CA648.lua
new file mode 100644
index 0000000..039271a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CA648.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.OutpostConfigFile : Barotrauma.GenericPrefabFile*1Barotrauma*OutpostGenerationParams
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*OutpostGenerationParams)|(fun():(Barotrauma.OutpostGenerationParams))
+_G['OutpostConfigFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['OutpostConfigFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['OutpostConfigFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.OutpostGenerationParams
+_G['OutpostConfigFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostConfigFile
+_G['OutpostConfigFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostConfigFile
+_G['OutpostConfigFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CBF48.lua b/Meta/Types/server/_00007FFD967CBF48.lua
new file mode 100644
index 0000000..a7d2b67
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CBF48.lua
@@ -0,0 +1,114 @@
+---@meta
+---@class Barotrauma.LevelData : System.Object
+---`Field Public Instance`
+---@field Type Barotrauma.LevelData.LevelType
+---`Field Public Instance`
+---@field Seed System.String
+---`Field Public Instance`
+---@field Difficulty System.Single
+---`Field Public Instance`
+---@field Biome Barotrauma.Biome
+---`Field Public Instance`
+---@field HasBeaconStation System.Boolean
+---`Field Public Instance`
+---@field IsBeaconActive System.Boolean
+---`Field Public Instance`
+---@field HasHuntingGrounds System.Boolean
+---`Field Public Instance`
+---@field OriginallyHadHuntingGrounds System.Boolean
+---`Field Public Instance`
+---@field ForceOutpostGenerationParams Barotrauma.OutpostGenerationParams
+---`Field Public Instance`
+---@field ForceBeaconStation Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field ForceWreck Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field ForceRuinGenerationParams Barotrauma.RuinGeneration.RuinGenerationParams
+---`Field Public Instance`
+---@field AllowInvalidOutpost System.Boolean
+---`Field Public Instance`
+---@field Size Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field InitialDepth System.Int32
+---`Field Public Instance`
+---@field MinMainPathWidth System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field EventHistory (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field NonRepeatableEvents (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field FinishedEvents (System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Int32)|({[Barotrauma.EventSet]:(System.Int32)})
+---`Field Public Static`
+---@field ConsoleForceWreck Barotrauma.SubmarineInfo
+---`Field Public Static`
+---@field ConsoleForceBeaconStation Barotrauma.SubmarineInfo
+---`Field Public Static`
+---@field ForceThalamus Barotrauma.LevelData.ThalamusSpawn
+---`Field Public Static`
+---@field HuntingGroundsDifficultyThreshold System.Single
+---`Field Public Static`
+---@field MaxHuntingGroundsProbability System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GenerationParams Barotrauma.LevelGenerationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EventsExhausted System.Boolean
+---`Getter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---@field RealWorldCrushDepth System.Single
+---`Getter Public Instance`
+---@field OutpostGenerationParamsExist System.Boolean
+_G['LevelData'] = {}
+
+---`Method Public Instance`
+---@param minDifficulty System.Single
+---@param maxDifficulty System.Single
+---@return System.Boolean
+_G['LevelData'].IsAllowedDifficulty = function(minDifficulty, maxDifficulty) end
+
+---`Method Public Static`
+---@param seed? System.String
+---@param difficulty? System.Nullable*1System*Single
+---@param generationParams? Barotrauma.LevelGenerationParams
+---@param biomeId? Barotrauma.Identifier
+---@param requireOutpost? System.Boolean
+---@param pvpOnly? System.Boolean
+---@return Barotrauma.LevelData
+_G['LevelData'].CreateRandom = function(seed, difficulty, generationParams, biomeId, requireOutpost, pvpOnly) end
+
+---`Method Public Instance`
+---@param seed System.String
+_G['LevelData'].ReassignGenerationParams = function(seed) end
+
+---`Method Public Static`
+---@param location Barotrauma.Location
+---@param levelData Barotrauma.LevelData
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerationParams)|(fun():(Barotrauma.OutpostGenerationParams))
+_G['LevelData'].GetSuitableOutpostGenerationParams = function(location, levelData) end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+_G['LevelData'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(seed:System.String, difficulty:System.Single, sizeFactor:System.Single, generationParams:Barotrauma.LevelGenerationParams, biome:Barotrauma.Biome):Barotrauma.LevelData
+---@overload fun(element:System.Xml.Linq.XElement, forceDifficulty?:System.Nullable*1System*Single, clampDifficultyToBiome?:System.Boolean):Barotrauma.LevelData
+---@overload fun(locationConnection:Barotrauma.LocationConnection):Barotrauma.LevelData
+---@param location Barotrauma.Location
+---@param map Barotrauma.Map
+---@param difficulty System.Single
+---@return Barotrauma.LevelData
+_G['LevelData'] = function(location, map, difficulty) end
+
+---`Constructor Public Instance`
+---@overload fun(seed:System.String, difficulty:System.Single, sizeFactor:System.Single, generationParams:Barotrauma.LevelGenerationParams, biome:Barotrauma.Biome):Barotrauma.LevelData
+---@overload fun(element:System.Xml.Linq.XElement, forceDifficulty?:System.Nullable*1System*Single, clampDifficultyToBiome?:System.Boolean):Barotrauma.LevelData
+---@overload fun(locationConnection:Barotrauma.LocationConnection):Barotrauma.LevelData
+---@param location Barotrauma.Location
+---@param map Barotrauma.Map
+---@param difficulty System.Single
+---@return Barotrauma.LevelData
+_G['LevelData'].__new = function(location, map, difficulty) end
+
diff --git a/Meta/Types/server/_00007FFD967CC088.lua b/Meta/Types/server/_00007FFD967CC088.lua
new file mode 100644
index 0000000..e07e797
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CC088.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.OutpostFile : Barotrauma.BaseSubFile
+_G['OutpostFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostFile
+_G['OutpostFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostFile
+_G['OutpostFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CC1B0.lua b/Meta/Types/server/_00007FFD967CC1B0.lua
new file mode 100644
index 0000000..76e6ec1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CC1B0.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.OutpostModuleFile : Barotrauma.BaseSubFile
+_G['OutpostModuleFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostModuleFile
+_G['OutpostModuleFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.OutpostModuleFile
+_G['OutpostModuleFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CC2D8.lua b/Meta/Types/server/_00007FFD967CC2D8.lua
new file mode 100644
index 0000000..53f16fb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CC2D8.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.ParticlesFile : Barotrauma.OtherFile
+_G['ParticlesFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ParticlesFile
+_G['ParticlesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ParticlesFile
+_G['ParticlesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CC448.lua b/Meta/Types/server/_00007FFD967CC448.lua
new file mode 100644
index 0000000..ed0916a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CC448.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.RandomEventsFile : Barotrauma.ContentFile
+_G['RandomEventsFile'] = {}
+
+---`Method Public Instance`
+---@param parentElement Barotrauma.ContentXElement
+---@param overriding System.Boolean
+_G['RandomEventsFile'].LoadFromXElement = function(parentElement, overriding) end
+
+---`Method Public Instance Virtual`
+_G['RandomEventsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['RandomEventsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['RandomEventsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RandomEventsFile
+_G['RandomEventsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RandomEventsFile
+_G['RandomEventsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CC5F0.lua b/Meta/Types/server/_00007FFD967CC5F0.lua
new file mode 100644
index 0000000..221e842
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CC5F0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.RuinConfigFile : Barotrauma.GenericPrefabFile*1Barotrauma*RuinGeneration*RuinGenerationParams
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*RuinGeneration*RuinGenerationParams)|(fun():(Barotrauma.RuinGeneration.RuinGenerationParams))
+_G['RuinConfigFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['RuinConfigFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['RuinConfigFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.RuinGeneration.RuinGenerationParams
+_G['RuinConfigFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RuinConfigFile
+_G['RuinConfigFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.RuinConfigFile
+_G['RuinConfigFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CCA48.lua b/Meta/Types/server/_00007FFD967CCA48.lua
new file mode 100644
index 0000000..827c7e1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CCA48.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.ServerExecutableFile : Barotrauma.OtherFile
+_G['ServerExecutableFile'] = {}
+
+---`Method Public Static`
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ContentPath
+_G['ServerExecutableFile'].MutateContentPath = function(path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ServerExecutableFile
+_G['ServerExecutableFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.ServerExecutableFile
+_G['ServerExecutableFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CCBA0.lua b/Meta/Types/server/_00007FFD967CCBA0.lua
new file mode 100644
index 0000000..e377b9a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CCBA0.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.SkillSettingsFile : Barotrauma.ContentFile
+_G['SkillSettingsFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['SkillSettingsFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['SkillSettingsFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['SkillSettingsFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SkillSettingsFile
+_G['SkillSettingsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SkillSettingsFile
+_G['SkillSettingsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CCD08.lua b/Meta/Types/server/_00007FFD967CCD08.lua
new file mode 100644
index 0000000..87b0314
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CCD08.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.SoundsFile : Barotrauma.OtherFile
+_G['SoundsFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SoundsFile
+_G['SoundsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SoundsFile
+_G['SoundsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CCE70.lua b/Meta/Types/server/_00007FFD967CCE70.lua
new file mode 100644
index 0000000..cc8e117
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CCE70.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.StartItemsFile : Barotrauma.GenericPrefabFile*1Barotrauma*StartItemSet
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*StartItemSet)|(fun():(Barotrauma.StartItemSet))
+_G['StartItemsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StartItemsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StartItemsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.StartItemSet
+_G['StartItemsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StartItemsFile
+_G['StartItemsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StartItemsFile
+_G['StartItemsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CD008.lua b/Meta/Types/server/_00007FFD967CD008.lua
new file mode 100644
index 0000000..a753d86
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CD008.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.StartItemSet : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Items (System.Collections.Immutable.ImmutableArray*1Barotrauma*StartItem)|(Barotrauma.StartItem[])
+---`Field Public Instance`
+---@field Order System.Int32
+---`Field Public Static`
+---@field Sets (Barotrauma.PrefabCollection*1Barotrauma*StartItemSet)|(fun():(Barotrauma.StartItemSet))
+_G['StartItemSet'] = {}
+
+---`Method Public Instance Virtual`
+_G['StartItemSet'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StartItemsFile):Barotrauma.StartItemSet
+---@return Barotrauma.StartItemSet
+_G['StartItemSet'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967CD1C8.lua b/Meta/Types/server/_00007FFD967CD1C8.lua
new file mode 100644
index 0000000..0024aa9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CD1C8.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.StartItem : System.Object
+---`Field Public Instance`
+---@field Item Barotrauma.Identifier
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field MultiPlayerOnly System.Boolean
+_G['StartItem'] = {}
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.StartItem
+_G['StartItem'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.StartItem
+_G['StartItem'].__new = function(element) end
+
diff --git a/Meta/Types/server/_00007FFD967CDA88.lua b/Meta/Types/server/_00007FFD967CDA88.lua
new file mode 100644
index 0000000..5cfc49a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CDA88.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.StructureFile : Barotrauma.GenericPrefabFile*1Barotrauma*StructurePrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*StructurePrefab)|(fun():(Barotrauma.StructurePrefab))
+_G['StructureFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StructureFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['StructureFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.StructurePrefab
+_G['StructureFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StructureFile
+_G['StructureFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.StructureFile
+_G['StructureFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CE3A8.lua b/Meta/Types/server/_00007FFD967CE3A8.lua
new file mode 100644
index 0000000..fa34b57
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CE3A8.lua
@@ -0,0 +1,125 @@
+---@meta
+---@class Barotrauma.StructurePrefab : Barotrauma.MapEntityPrefab
+---`Field Public Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field IsHorizontal System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field BackgroundSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field health System.Single
+---`Field NonPublic Instance`
+---@field textureScale Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*StructurePrefab)|(fun():(Barotrauma.StructurePrefab))
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipX System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanSpriteFlipY System.Boolean
+---`Getter Public Instance`
+---@field ScaledSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Body System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyRotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyWidth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyHeight System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Platform System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAttachItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowRotatingInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinHealth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IndestructibleInOutposts System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CastShadow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StairDirection Barotrauma.Direction
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StairAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NoAITarget System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageSound System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageParticle System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TextureScale Microsoft.Xna.Framework.Vector2
+_G['StructurePrefab'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['StructurePrefab'].DetermineIdentifier = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['StructurePrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance Virtual`
+_G['StructurePrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.StructureFile):Barotrauma.StructurePrefab
+---@return Barotrauma.StructurePrefab
+_G['StructurePrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967CE608.lua b/Meta/Types/server/_00007FFD967CE608.lua
new file mode 100644
index 0000000..338dfb4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CE608.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.SubmarineFile : Barotrauma.BaseSubFile
+_G['SubmarineFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SubmarineFile
+_G['SubmarineFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.SubmarineFile
+_G['SubmarineFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CE770.lua b/Meta/Types/server/_00007FFD967CE770.lua
new file mode 100644
index 0000000..eeb7fb1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CE770.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.TalentsFile : Barotrauma.GenericPrefabFile*1Barotrauma*TalentPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab)|(fun():(Barotrauma.TalentPrefab))
+_G['TalentsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.TalentPrefab
+_G['TalentsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentsFile
+_G['TalentsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentsFile
+_G['TalentsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CF250.lua b/Meta/Types/server/_00007FFD967CF250.lua
new file mode 100644
index 0000000..8a39937
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CF250.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.TalentPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field AbilityEffectsStackWithSameTalent System.Boolean
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field TrackedStat Barotrauma.Option*1System*ValueTuple*2Barotrauma*Identifier*2System*Int32
+---`Field Public Instance`
+---@field Migrations (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*TalentMigration)|(Barotrauma.TalentMigration[])
+---`Field Public Static`
+---@field TalentPrefabs (Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab)|(fun():(Barotrauma.TalentPrefab))
+---`Getter Public Instance`
+---@field OriginalName System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+_G['TalentPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['TalentPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentsFile):Barotrauma.TalentPrefab
+---@return Barotrauma.TalentPrefab
+_G['TalentPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967CF498.lua b/Meta/Types/server/_00007FFD967CF498.lua
new file mode 100644
index 0000000..8bbf836
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CF498.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.TalentTreesFile : Barotrauma.GenericPrefabFile*1Barotrauma*TalentTree
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*TalentTree)|(fun():(Barotrauma.TalentTree))
+_G['TalentTreesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentTreesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentTreesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.TalentTree
+_G['TalentTreesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentTreesFile
+_G['TalentTreesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TalentTreesFile
+_G['TalentTreesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967CF728.lua b/Meta/Types/server/_00007FFD967CF728.lua
new file mode 100644
index 0000000..33d9c5e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CF728.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.TalentTree : Barotrauma.Prefab
+---`Field Public Instance`
+---@field TalentSubTrees (System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentSubTree)|(Barotrauma.TalentSubTree[])
+---`Field Public Instance`
+---@field AllTalentIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field JobTalentTrees (Barotrauma.PrefabCollection*1Barotrauma*TalentTree)|(fun():(Barotrauma.TalentTree))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+_G['TalentTree'] = {}
+
+---`Method Public Instance`
+---@param talentIdentifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TalentTree'].TalentIsInTree = function(talentIdentifier) end
+
+---`Method Public Static`
+---@overload fun(character:Barotrauma.Character, talentIdentifier:Barotrauma.Identifier):(System.Boolean)
+---@param character Barotrauma.Character
+---@param talentIdentifier Barotrauma.Identifier
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentTree'].IsViableTalentForCharacter = function(character, talentIdentifier, selectedTalents) end
+
+---`Method Public Static`
+---@param tree Barotrauma.TalentTree
+---@param targetTree Barotrauma.TalentSubTree
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentTree'].TalentTreeMeetsRequirements = function(tree, targetTree, selectedTalents) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param subTreeIdentifier Barotrauma.Identifier
+---@param index System.Int32
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return Barotrauma.TalentTree.TalentStages
+_G['TalentTree'].GetTalentOptionStageState = function(character, subTreeIdentifier, index, selectedTalents) end
+
+---`Method Public Static`
+---@param talentIdentifier Barotrauma.Identifier
+---@param characterList (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return System.Boolean
+_G['TalentTree'].IsTalentLocked = function(talentIdentifier, characterList) end
+
+---`Method Public Static`
+---@param controlledCharacter Barotrauma.Character
+---@param selectedTalents (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['TalentTree'].CheckTalentSelection = function(controlledCharacter, selectedTalents) end
+
+---`Method Public Instance Virtual`
+_G['TalentTree'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.TalentTreesFile):Barotrauma.TalentTree
+---@return Barotrauma.TalentTree
+_G['TalentTree'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967CFAA8.lua b/Meta/Types/server/_00007FFD967CFAA8.lua
new file mode 100644
index 0000000..3168dab
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967CFAA8.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.TalentOption : System.ValueType
+---`Field Private Instance`
+---@field talentIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredTalents System.Int32
+---`Field Public Instance`
+---@field MaxChosenTalents System.Int32
+---`Field Public Instance`
+---@field ShowCaseTalents (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[]))})
+---`Getter Public Instance`
+---@field TalentIdentifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['TalentOption'] = {}
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.CharacterInfo):(System.Boolean)
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentOption'].HasEnoughTalents = function(selectedTalents) end
+
+---`Method Public Instance`
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentOption'].HasMaxTalents = function(selectedTalents) end
+
+---`Method Public Instance`
+---@param selectedTalents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentOption'].HasSelectedTalent = function(selectedTalents) end
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Int32
+_G['TalentOption'].CountMatchingTalents = function(talents) end
+
+---`Constructor Public Instance`
+---@param talentOptionsElement Barotrauma.ContentXElement
+---@param debugIdentifier Barotrauma.Identifier
+---@return Barotrauma.TalentOption
+_G['TalentOption'] = function(talentOptionsElement, debugIdentifier) end
+
+---`Constructor Public Instance`
+---@param talentOptionsElement Barotrauma.ContentXElement
+---@param debugIdentifier Barotrauma.Identifier
+---@return Barotrauma.TalentOption
+_G['TalentOption'].__new = function(talentOptionsElement, debugIdentifier) end
+
diff --git a/Meta/Types/server/_00007FFD967D17E8.lua b/Meta/Types/server/_00007FFD967D17E8.lua
new file mode 100644
index 0000000..89b82e8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D17E8.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.TalentSubTree : System.Object
+---`Field Public Instance`
+---@field TalentOptionStages (System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentOption)|(Barotrauma.TalentOption[])
+---`Field Public Instance`
+---@field AllTalentIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Type Barotrauma.TalentTreeType
+---`Field Public Instance`
+---@field RequiredTrees (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field BlockedTrees (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+_G['TalentSubTree'] = {}
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentSubTree'].HasEnoughTalents = function(talents) end
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentSubTree'].HasMaxTalents = function(talents) end
+
+---`Method Public Instance`
+---@param talents (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['TalentSubTree'].HasAnyTalent = function(talents) end
+
+---`Constructor Public Instance`
+---@param subTreeElement Barotrauma.ContentXElement
+---@return Barotrauma.TalentSubTree
+_G['TalentSubTree'] = function(subTreeElement) end
+
+---`Constructor Public Instance`
+---@param subTreeElement Barotrauma.ContentXElement
+---@return Barotrauma.TalentSubTree
+_G['TalentSubTree'].__new = function(subTreeElement) end
+
diff --git a/Meta/Types/server/_00007FFD967D2838.lua b/Meta/Types/server/_00007FFD967D2838.lua
new file mode 100644
index 0000000..bda7ced
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D2838.lua
@@ -0,0 +1,25 @@
+---@meta
+---@class Barotrauma.TextFile : Barotrauma.ContentFile
+_G['TextFile'] = {}
+
+---`Method Public Instance Virtual`
+_G['TextFile'].LoadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['TextFile'].UnloadFile = function() end
+
+---`Method Public Instance Virtual`
+_G['TextFile'].Sort = function() end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TextFile
+_G['TextFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TextFile
+_G['TextFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967D29E0.lua b/Meta/Types/server/_00007FFD967D29E0.lua
new file mode 100644
index 0000000..3bff36d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D29E0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.TutorialsFile : Barotrauma.GenericPrefabFile*1Barotrauma*TutorialPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*TutorialPrefab)|(fun():(Barotrauma.TutorialPrefab))
+_G['TutorialsFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TutorialsFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['TutorialsFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.TutorialPrefab
+_G['TutorialsFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TutorialsFile
+_G['TutorialsFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.TutorialsFile
+_G['TutorialsFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967D3218.lua b/Meta/Types/server/_00007FFD967D3218.lua
new file mode 100644
index 0000000..a441442
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D3218.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.UIStyleFile : Barotrauma.OtherFile
+_G['UIStyleFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UIStyleFile
+_G['UIStyleFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UIStyleFile
+_G['UIStyleFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967D3380.lua b/Meta/Types/server/_00007FFD967D3380.lua
new file mode 100644
index 0000000..1c9ff7b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D3380.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.UpgradeModulesFile : Barotrauma.GenericPrefabFile*1Barotrauma*UpgradeContentPrefab
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*UpgradeContentPrefab)|(fun():(Barotrauma.UpgradeContentPrefab))
+_G['UpgradeModulesFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['UpgradeModulesFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['UpgradeModulesFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UpgradeContentPrefab
+_G['UpgradeModulesFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UpgradeModulesFile
+_G['UpgradeModulesFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.UpgradeModulesFile
+_G['UpgradeModulesFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967D36F0.lua b/Meta/Types/server/_00007FFD967D36F0.lua
new file mode 100644
index 0000000..bd9c04f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D36F0.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.WreckAIConfigFile : Barotrauma.GenericPrefabFile*1Barotrauma*WreckAIConfig
+---`Getter NonPublic Instance Virtual`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*WreckAIConfig)|(fun():(Barotrauma.WreckAIConfig))
+_G['WreckAIConfigFile'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['WreckAIConfigFile'].MatchesSingular = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['WreckAIConfigFile'].MatchesPlural = function(identifier) end
+
+---`Method NonPublic Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.WreckAIConfig
+_G['WreckAIConfigFile'].CreatePrefab = function(element) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckAIConfigFile
+_G['WreckAIConfigFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckAIConfigFile
+_G['WreckAIConfigFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967D40D0.lua b/Meta/Types/server/_00007FFD967D40D0.lua
new file mode 100644
index 0000000..ce98664
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D40D0.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.WreckFile : Barotrauma.BaseSubFile
+_G['WreckFile'] = {}
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckFile
+_G['WreckFile'] = function(contentPackage, path) end
+
+---`Constructor Public Instance`
+---@param contentPackage Barotrauma.ContentPackage
+---@param path Barotrauma.ContentPath
+---@return Barotrauma.WreckFile
+_G['WreckFile'].__new = function(contentPackage, path) end
+
diff --git a/Meta/Types/server/_00007FFD967D4A98.lua b/Meta/Types/server/_00007FFD967D4A98.lua
new file mode 100644
index 0000000..f752ab0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967D4A98.lua
@@ -0,0 +1,466 @@
+---@meta
+---@class Barotrauma.XMLExtensions : System.Object
+---`Field Private Static`
+---@field Converters (System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*Func*2System*String*2System*Object*2System*Object)|({[System.Type]:((System.Func*1System*String*1System*Object*1System*Object)|(fun(arg1:System.String, arg2:System.Object):(System.Object)))})
+---`Field Public Static`
+---@field ReaderSettings System.Xml.XmlReaderSettings
+---`Field Private Static`
+---@field monoGameColors (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color)|({[Barotrauma.Identifier]:(Microsoft.Xna.Framework.Color)})
+_G['XMLExtensions'] = {}
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param other System.Xml.Linq.XElement
+---@return System.Boolean
+_G['XMLExtensions'].ComesAfter = function(element, other) end
+
+---`Method Public Static`
+---@overload fun(elem:System.Xml.Linq.XElement):(Barotrauma.Identifier)
+---@param attr System.Xml.Linq.XAttribute
+---@return Barotrauma.Identifier
+_G['XMLExtensions'].NameAsIdentifier = function(attr) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XObject
+---@return System.String
+_G['XMLExtensions'].ParseContentPathFromUri = function(element) end
+
+---`Method Public Static`
+---@param stream System.IO.Stream
+---@param baseUri? System.String
+---@return System.Xml.XmlReader
+_G['XMLExtensions'].CreateReader = function(stream, baseUri) end
+
+---`Method Public Static`
+---@overload fun(stream:System.IO.Stream):(System.Xml.Linq.XDocument)
+---@overload fun(path:Barotrauma.ContentPath):(System.Xml.Linq.XDocument)
+---@overload fun(filePath:System.String):(System.Xml.Linq.XDocument)
+---@param filePath System.String
+---@param exception System.Exception-ref
+---@return System.Xml.Linq.XDocument
+_G['XMLExtensions'].TryLoadXml = function(filePath, exception) end
+
+---`Method Public Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@return System.Object
+_G['XMLExtensions'].GetAttributeObject = function(attribute) end
+
+---`Method Public Static`
+---@param value System.String
+---@return System.Object
+_G['XMLExtensions'].ParseToObject = function(value) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.String
+---@return System.String
+_G['XMLExtensions'].GetAttributeString = function(element, name, defaultValue) end
+
+---`Method Private Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.String
+---@return System.String
+_G['XMLExtensions'].GetAttributeString = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.String
+---@return System.String
+_G['XMLExtensions'].GetAttributeStringUnrestricted = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@return System.Boolean
+_G['XMLExtensions'].DoesAttributeReferenceFileNameAlone = function(element, name) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param contentPackage Barotrauma.ContentPackage
+---@return Barotrauma.ContentPath
+_G['XMLExtensions'].GetAttributeContentPath = function(element, name, contentPackage) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.String):(Barotrauma.Identifier)
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['XMLExtensions'].GetAttributeIdentifier = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.String-arr)|(System.String[])
+---@param trim? System.Boolean
+---@param convertToLowerInvariant? System.Boolean
+---@return (System.String-arr)|(System.String[])
+_G['XMLExtensions'].GetAttributeStringArray = function(element, name, defaultValue, trim, convertToLowerInvariant) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, defaultValue:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), ...:System.String):((Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]))
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+_G['XMLExtensions'].GetAttributeIdentifierArray = function(element, name, defaultValue, trim) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param key System.String
+---@param defaultValue (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param trim? System.Boolean
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['XMLExtensions'].GetAttributeIdentifierImmutableHashSet = function(element, key, defaultValue, trim) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, defaultValue:System.Single, ...:System.String):(System.Single)
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Single):(System.Single)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Single
+---@return System.Single
+_G['XMLExtensions'].GetAttributeFloat = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Double):(System.Double)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Double
+---@return System.Double
+_G['XMLExtensions'].GetAttributeDouble = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.Single-arr)|(System.Single[])
+---@return (System.Single-arr)|(System.Single[])
+_G['XMLExtensions'].GetAttributeFloatArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param result System.Int32-ref
+---@return System.Boolean
+_G['XMLExtensions'].TryGetAttributeInt = function(element, name, result) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Int32):(System.Int32)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Int32
+---@return System.Int32
+_G['XMLExtensions'].GetAttributeInt = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.UInt32
+---@return System.UInt32
+_G['XMLExtensions'].GetAttributeUInt = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.UInt16
+---@return System.UInt16
+_G['XMLExtensions'].GetAttributeUInt16 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.UInt64
+---@return System.UInt64
+_G['XMLExtensions'].GetAttributeUInt64 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@return Barotrauma.Option*1Barotrauma*SerializableDateTime
+_G['XMLExtensions'].GetAttributeDateTime = function(element, name) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.Version
+---@return System.Version
+_G['XMLExtensions'].GetAttributeVersion = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.Int32-arr)|(System.Int32[])
+---@return (System.Int32-arr)|(System.Int32[])
+_G['XMLExtensions'].GetAttributeIntArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.UInt16-arr)|(System.UInt16[])
+---@return (System.UInt16-arr)|(System.UInt16[])
+_G['XMLExtensions'].GetAttributeUshortArray = function(element, name, defaultValue) end
+
+---`Method Private Static`
+---@param value System.String
+---@param defaultValue Barotrauma.XMLExtensions.T
+---@param attribute System.Xml.Linq.XAttribute
+---@return Barotrauma.XMLExtensions.T
+_G['XMLExtensions'].ParseEnumValue = function(value, defaultValue, attribute) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Barotrauma.XMLExtensions.T
+---@return Barotrauma.XMLExtensions.T
+_G['XMLExtensions'].GetAttributeEnum = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (Barotrauma.T-arr)|(Barotrauma.XMLExtensions.T[])
+---@return (Barotrauma.T-arr)|(Barotrauma.XMLExtensions.T[])
+_G['XMLExtensions'].GetAttributeEnumArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:System.Boolean):(System.Boolean)
+---@param attribute System.Xml.Linq.XAttribute
+---@param defaultValue System.Boolean
+---@return System.Boolean
+_G['XMLExtensions'].GetAttributeBool = function(attribute, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Point
+---@return Microsoft.Xna.Framework.Point
+_G['XMLExtensions'].GetAttributePoint = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['XMLExtensions'].GetAttributeVector2 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Vector3
+---@return Microsoft.Xna.Framework.Vector3
+_G['XMLExtensions'].GetAttributeVector3 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Vector4
+---@return Microsoft.Xna.Framework.Vector4
+_G['XMLExtensions'].GetAttributeVector4 = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, defaultValue:Microsoft.Xna.Framework.Color):(Microsoft.Xna.Framework.Color)
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@return System.Nullable*1Microsoft*Xna*Framework*Color
+_G['XMLExtensions'].GetAttributeColor = function(element, name) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---@return (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+_G['XMLExtensions'].GetAttributeColorArray = function(element, name, defaultValue) end
+
+---`Method Private Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@param element System.Xml.Linq.XElement
+---@param e System.Exception
+_G['XMLExtensions'].LogAttributeError = function(attribute, element, e) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Microsoft.Xna.Framework.Rectangle
+---@return Microsoft.Xna.Framework.Rectangle
+_G['XMLExtensions'].GetAttributeRect = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+---@return System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+_G['XMLExtensions'].GetAttributeTuple = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue (System.ValueTuple)|(System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2[])
+---@return (System.ValueTuple)|(System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2[])
+_G['XMLExtensions'].GetAttributeTupleArray = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param defaultValue Barotrauma.Range*1System*Int32
+---@return Barotrauma.Range*1System*Int32
+_G['XMLExtensions'].GetAttributeRange = function(element, name, defaultValue) end
+
+---`Method Public Static`
+---@param el System.Xml.Linq.XElement
+---@return System.String
+_G['XMLExtensions'].ElementInnerText = function(el) end
+
+---`Method Public Static`
+---@param point Microsoft.Xna.Framework.Point
+---@return System.String
+_G['XMLExtensions'].PointToString = function(point) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector2
+---@return System.String
+_G['XMLExtensions'].Vector2ToString = function(vector) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector3
+---@param format? System.String
+---@return System.String
+_G['XMLExtensions'].Vector3ToString = function(vector, format) end
+
+---`Method Public Static`
+---@param vector Microsoft.Xna.Framework.Vector4
+---@param format? System.String
+---@return System.String
+_G['XMLExtensions'].Vector4ToString = function(vector, format) end
+
+---`Method Public Static`
+---@param color Microsoft.Xna.Framework.Color
+---@return System.String
+_G['XMLExtensions'].ColorToString = function(color) end
+
+---`Method Public Static`
+---@param color Microsoft.Xna.Framework.Color
+---@return System.String
+_G['XMLExtensions'].ToStringHex = function(color) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@return System.String
+_G['XMLExtensions'].RectToString = function(rect) end
+
+---`Method Public Static`
+---@param strValue System.String
+---@param defaultValue System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+---@return System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2
+_G['XMLExtensions'].ParseTuple = function(strValue, defaultValue) end
+
+---`Method Public Static`
+---@param stringPoint System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Point
+_G['XMLExtensions'].ParsePoint = function(stringPoint, errorMessages) end
+
+---`Method Public Static`
+---@param stringVector2 System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['XMLExtensions'].ParseVector2 = function(stringVector2, errorMessages) end
+
+---`Method Public Static`
+---@param stringVector3 System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Vector3
+_G['XMLExtensions'].ParseVector3 = function(stringVector3, errorMessages) end
+
+---`Method Public Static`
+---@param stringVector4 System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Vector4
+_G['XMLExtensions'].ParseVector4 = function(stringVector4, errorMessages) end
+
+---`Method Public Static`
+---@param stringColor System.String
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Color
+_G['XMLExtensions'].ParseColor = function(stringColor, errorMessages) end
+
+---`Method Public Static`
+---@param stringRect System.String
+---@param requireSize System.Boolean
+---@param errorMessages? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['XMLExtensions'].ParseRect = function(stringRect, requireSize, errorMessages) end
+
+---`Method Public Static`
+---@param stringArray (System.String-arr)|(System.String[])
+---@return (System.Single-arr)|(System.Single[])
+_G['XMLExtensions'].ParseFloatArray = function(stringArray) end
+
+---`Method Public Static`
+---@param rangeString System.String
+---@return Barotrauma.Range*1System*Int32
+_G['XMLExtensions'].ParseRange = function(rangeString) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Identifier
+_G['XMLExtensions'].VariantOf = function(element) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['XMLExtensions'].IsOverride = function(element) end
+
+---`Method Public Static`
+---@param doc System.Xml.Linq.XDocument
+---@return System.Xml.Linq.XElement
+_G['XMLExtensions'].GetRootExcludingOverride = function(doc) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['XMLExtensions'].FirstElement = function(element) end
+
+---`Method Public Static`
+---@overload fun(element:System.Xml.Linq.XElement, name:System.String, comparisonMethod?:System.StringComparison):(System.Xml.Linq.XAttribute)
+---@overload fun(element:System.Xml.Linq.XElement, name:Barotrauma.Identifier):(System.Xml.Linq.XAttribute)
+---@param element System.Xml.Linq.XElement
+---@param predicate (System.Func*1System*Xml*Linq*XAttribute*1System*Boolean)|(fun(arg:System.Xml.Linq.XAttribute):(System.Boolean))
+---@return System.Xml.Linq.XAttribute
+_G['XMLExtensions'].GetAttribute = function(element, predicate) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param value System.Object
+---@param comparisonMethod? System.StringComparison
+---@return System.Boolean
+_G['XMLExtensions'].TrySetAttributeValue = function(element, name, value, comparisonMethod) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param name System.String
+---@param value System.Object
+_G['XMLExtensions'].SetAttribute = function(element, name, value) end
+
+---`Method Public Static`
+---@param container System.Xml.Linq.XContainer
+---@param name System.String
+---@param comparisonMethod? System.StringComparison
+---@return System.Xml.Linq.XElement
+_G['XMLExtensions'].GetChildElement = function(container, name, comparisonMethod) end
+
+---`Method Public Static`
+---@overload fun(container:System.Xml.Linq.XContainer, name:System.String, comparisonMethod?:System.StringComparison):((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param container System.Xml.Linq.XContainer
+---@param ... System.String
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XMLExtensions'].GetChildElements = function(container, ...) end
+
+---`Constructor Private Static`
+---@return Barotrauma.XMLExtensions
+_G['XMLExtensions'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.XMLExtensions
+_G['XMLExtensions'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967DDCA8.lua b/Meta/Types/server/_00007FFD967DDCA8.lua
new file mode 100644
index 0000000..e1c1b6f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967DDCA8.lua
@@ -0,0 +1,182 @@
+---@meta
+---@class System.Xml.Linq.XNode : System.Xml.Linq.XObject
+---`Field NonPublic Instance`
+---@field next System.Xml.Linq.XNode
+---`Field Private Static`
+---@field s_documentOrderComparer System.Xml.Linq.XNodeDocumentOrderComparer
+---`Field Private Static`
+---@field s_equalityComparer System.Xml.Linq.XNodeEqualityComparer
+---`Getter Public Instance`
+---@field NextNode System.Xml.Linq.XNode
+---`Getter Public Instance`
+---@field PreviousNode System.Xml.Linq.XNode
+---`Getter Public Static`
+---@field DocumentOrderComparer System.Xml.Linq.XNodeDocumentOrderComparer
+---`Getter Public Static`
+---@field EqualityComparer System.Xml.Linq.XNodeEqualityComparer
+_G['XNode'] = {}
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XNode'].AddAfterSelf = function(...) end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XNode'].AddBeforeSelf = function(...) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].Ancestors = function(name) end
+
+---`Method Public Static`
+---@param n1 System.Xml.Linq.XNode
+---@param n2 System.Xml.Linq.XNode
+---@return System.Int32
+_G['XNode'].CompareDocumentOrder = function(n1, n2) end
+
+---`Method Public Instance`
+---@overload fun():(System.Xml.XmlReader)
+---@param readerOptions System.Xml.Linq.ReaderOptions
+---@return System.Xml.XmlReader
+_G['XNode'].CreateReader = function(readerOptions) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XNode'].NodesAfterSelf = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XNode'].NodesBeforeSelf = function() end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].ElementsAfterSelf = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].ElementsBeforeSelf = function(name) end
+
+---`Method Public Instance`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].IsAfter = function(node) end
+
+---`Method Public Instance`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].IsBefore = function(node) end
+
+---`Method Public Static`
+---@param reader System.Xml.XmlReader
+---@return System.Xml.Linq.XNode
+_G['XNode'].ReadFrom = function(reader) end
+
+---`Method Public Static`
+---@param reader System.Xml.XmlReader
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XNode
+_G['XNode'].ReadFromAsync = function(reader, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XNode
+_G['XNode'].ReadFromAsyncInternal = function(reader, cancellationToken) end
+
+---`Method Public Instance`
+_G['XNode'].Remove = function() end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XNode'].ReplaceWith = function(...) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['XNode'].ToString = function() end
+
+---`Method Public Instance`
+---@param options System.Xml.Linq.SaveOptions
+---@return System.String
+_G['XNode'].ToString = function(options) end
+
+---`Method Public Static`
+---@param n1 System.Xml.Linq.XNode
+---@param n2 System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].DeepEquals = function(n1, n2) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XNode'].DeepEquals = function(node) end
+
+---`Method Public Instance Abstract Virtual`
+---@param writer System.Xml.XmlWriter
+_G['XNode'].WriteTo = function(writer) end
+
+---`Method Public Instance Abstract Virtual`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XNode'].WriteToAsync = function(writer, cancellationToken) end
+
+---`Method NonPublic Instance Virtual`
+---@param sb System.Text.StringBuilder
+_G['XNode'].AppendText = function(sb) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Xml.Linq.XNode
+_G['XNode'].CloneNode = function() end
+
+---`Method NonPublic Instance`
+---@param name System.Xml.Linq.XName
+---@param self System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].GetAncestors = function(name, self) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].GetElementsAfterSelf = function(name) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XNode'].GetElementsBeforeSelf = function(name) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Int32
+_G['XNode'].GetDeepHashCode = function() end
+
+---`Method NonPublic Static`
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.XmlReaderSettings
+_G['XNode'].GetXmlReaderSettings = function(o) end
+
+---`Method NonPublic Static`
+---@param o System.Xml.Linq.SaveOptions
+---@return System.Xml.XmlWriterSettings
+_G['XNode'].GetXmlWriterSettings = function(o) end
+
+---`Method Private Instance`
+---@param o System.Xml.Linq.SaveOptions
+---@return System.String
+_G['XNode'].GetXmlString = function(o) end
+
+---`Constructor NonPublic Instance`
+---@return System.Xml.Linq.XNode
+_G['XNode'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return System.Xml.Linq.XNode
+_G['XNode'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD967DE270.lua b/Meta/Types/server/_00007FFD967DE270.lua
new file mode 100644
index 0000000..2e9fdb1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967DE270.lua
@@ -0,0 +1,201 @@
+---@meta
+---@class System.Xml.Linq.XContainer : System.Xml.Linq.XNode
+---`Field NonPublic Instance`
+---@field content System.Object
+---`Getter Public Instance`
+---@field FirstNode System.Xml.Linq.XNode
+---`Getter Public Instance`
+---@field LastNode System.Xml.Linq.XNode
+_G['XContainer'] = {}
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XContainer'].Add = function(...) end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XContainer'].AddFirst = function(...) end
+
+---`Method Public Instance`
+---@return System.Xml.XmlWriter
+_G['XContainer'].CreateWriter = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XContainer'].DescendantNodes = function() end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].Descendants = function(name) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@return System.Xml.Linq.XElement
+_G['XContainer'].Element = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].Elements = function(name) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XContainer'].Nodes = function() end
+
+---`Method Public Instance`
+_G['XContainer'].RemoveNodes = function() end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XContainer'].ReplaceNodes = function(...) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XContainer'].AddAttribute = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XContainer'].AddAttributeSkipNotify = function(a) end
+
+---`Method NonPublic Instance`
+---@param content System.Object
+_G['XContainer'].AddContentSkipNotify = function(content) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AddNode = function(n) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AddNodeSkipNotify = function(n) end
+
+---`Method NonPublic Instance`
+---@param s System.String
+_G['XContainer'].AddString = function(s) end
+
+---`Method NonPublic Instance`
+---@param s System.String
+_G['XContainer'].AddStringSkipNotify = function(s) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AppendNode = function(n) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].AppendNodeSkipNotify = function(n) end
+
+---`Method NonPublic Instance Virtual`
+---@param sb System.Text.StringBuilder
+_G['XContainer'].AppendText = function(sb) end
+
+---`Method Private Instance`
+---@return System.String
+_G['XContainer'].GetTextOnly = function() end
+
+---`Method Private Instance`
+---@param n System.Xml.Linq.XNode-ref
+---@return System.String
+_G['XContainer'].CollectText = function(n) end
+
+---`Method NonPublic Instance`
+---@param e System.Xml.Linq.XContainer
+---@return System.Boolean
+_G['XContainer'].ContentsEqual = function(e) end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['XContainer'].ContentsHashCode = function() end
+
+---`Method NonPublic Instance`
+_G['XContainer'].ConvertTextToNode = function() end
+
+---`Method NonPublic Instance`
+---@param self System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XContainer'].GetDescendantNodes = function(self) end
+
+---`Method NonPublic Instance`
+---@param name System.Xml.Linq.XName
+---@param self System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].GetDescendants = function(name, self) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XContainer'].GetElements = function(name) end
+
+---`Method NonPublic Static`
+---@param value System.Object
+---@return System.String
+_G['XContainer'].GetStringValue = function(value) end
+
+---`Method NonPublic Instance`
+---@overload fun(r:System.Xml.XmlReader)
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+_G['XContainer'].ReadContentFrom = function(r, o) end
+
+---`Method NonPublic Instance`
+---@overload fun(r:System.Xml.XmlReader, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XContainer'].ReadContentFromAsync = function(r, o, cancellationToken) end
+
+---`Method NonPublic Instance`
+---@param n System.Xml.Linq.XNode
+_G['XContainer'].RemoveNode = function(n) end
+
+---`Method Private Instance`
+_G['XContainer'].RemoveNodesSkipNotify = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@param previous System.Xml.Linq.XNode
+_G['XContainer'].ValidateNode = function(node, previous) end
+
+---`Method NonPublic Instance Virtual`
+---@param s System.String
+_G['XContainer'].ValidateString = function(s) end
+
+---`Method NonPublic Instance`
+---@param writer System.Xml.XmlWriter
+_G['XContainer'].WriteContentTo = function(writer) end
+
+---`Method NonPublic Instance`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XContainer'].WriteContentToAsync = function(writer, cancellationToken) end
+
+---`Method Private Static`
+---@param list (System.Collections.Generic.List*1System*Object)|(System.Object[])
+---@param content System.Object
+_G['XContainer'].AddContentToList = function(list, content) end
+
+---`Method NonPublic Static`
+---@param content System.Object
+---@return System.Object
+_G['XContainer'].GetContentSnapshot = function(content) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Xml.Linq.XContainer
+---@param other System.Xml.Linq.XContainer
+---@return System.Xml.Linq.XContainer
+_G['XContainer'] = function(other) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():System.Xml.Linq.XContainer
+---@param other System.Xml.Linq.XContainer
+---@return System.Xml.Linq.XContainer
+_G['XContainer'].__new = function(other) end
+
diff --git a/Meta/Types/server/_00007FFD967DEF00.lua b/Meta/Types/server/_00007FFD967DEF00.lua
new file mode 100644
index 0000000..6740604
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967DEF00.lua
@@ -0,0 +1,338 @@
+---@meta
+---@class System.Xml.Linq.XElement : System.Xml.Linq.XContainer
+---`Field NonPublic Instance`
+---@field name System.Xml.Linq.XName
+---`Field NonPublic Instance`
+---@field lastAttr System.Xml.Linq.XAttribute
+---`Getter Public Static`
+---@field EmptySequence (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+---`Getter Public Instance`
+---@field FirstAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance`
+---@field HasAttributes System.Boolean
+---`Getter Public Instance`
+---@field HasElements System.Boolean
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+---`Getter Public Instance`
+---@field LastAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Name System.Xml.Linq.XName
+---`Getter Public Instance Virtual`
+---@field NodeType System.Xml.XmlNodeType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Value System.String
+_G['XElement'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AddAttribute = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AddAttributeSkipNotify = function(a) end
+
+---`Method NonPublic Instance`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AppendAttribute = function(a) end
+
+---`Method NonPublic Instance`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].AppendAttributeSkipNotify = function(a) end
+
+---`Method Private Instance`
+---@param e System.Xml.Linq.XElement
+---@return System.Boolean
+_G['XElement'].AttributesEqual = function(e) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Xml.Linq.XNode
+_G['XElement'].CloneNode = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XElement'].DeepEquals = function(node) end
+
+---`Method Private Instance`
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+_G['XElement'].GetAttributes = function(name) end
+
+---`Method Private Instance`
+---@param prefix System.String
+---@param outOfScope System.Xml.Linq.XElement
+---@return System.String
+_G['XElement'].GetNamespaceOfPrefixInScope = function(prefix, outOfScope) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Int32
+_G['XElement'].GetDeepHashCode = function() end
+
+---`Method Private Instance`
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+_G['XElement'].ReadElementFrom = function(r, o) end
+
+---`Method Private Instance`
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@param cancellationTokentoken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].ReadElementFromAsync = function(r, o, cancellationTokentoken) end
+
+---`Method Private Instance`
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+_G['XElement'].ReadElementFromImpl = function(r, o) end
+
+---`Method NonPublic Instance`
+---@param a System.Xml.Linq.XAttribute
+_G['XElement'].RemoveAttribute = function(a) end
+
+---`Method Private Instance`
+_G['XElement'].RemoveAttributesSkipNotify = function() end
+
+---`Method NonPublic Instance`
+---@param lineNumber System.Int32
+---@param linePosition System.Int32
+_G['XElement'].SetEndElementLineInfo = function(lineNumber, linePosition) end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@param previous System.Xml.Linq.XNode
+_G['XElement'].ValidateNode = function(node, previous) end
+
+---`Method NonPublic Static`
+---@param r System.Xml.XmlReader
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XElement
+_G['XElement'].CreateAsync = function(r, cancellationToken) end
+
+---`Method Public Instance`
+---@overload fun(fileName:System.String)
+---@overload fun(fileName:System.String, options:System.Xml.Linq.SaveOptions)
+---@overload fun(stream:System.IO.Stream)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions)
+---@overload fun(textWriter:System.IO.TextWriter)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions)
+---@param writer System.Xml.XmlWriter
+_G['XElement'].Save = function(writer) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XElement'].AncestorsAndSelf = function(name) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@return System.Xml.Linq.XAttribute
+_G['XElement'].Attribute = function(name) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+_G['XElement'].Attributes = function(name) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode)|(fun():(System.Xml.Linq.XNode))
+_G['XElement'].DescendantNodesAndSelf = function() end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement)))
+---@param name System.Xml.Linq.XName
+---@return (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement)|(fun():(System.Xml.Linq.XElement))
+_G['XElement'].DescendantsAndSelf = function(name) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XNamespace
+_G['XElement'].GetDefaultNamespace = function() end
+
+---`Method Public Instance`
+---@param prefix System.String
+---@return System.Xml.Linq.XNamespace
+_G['XElement'].GetNamespaceOfPrefix = function(prefix) end
+
+---`Method Public Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@return System.String
+_G['XElement'].GetPrefixOfNamespace = function(ns) end
+
+---`Method Public Static`
+---@overload fun(uri:System.String):(System.Xml.Linq.XElement)
+---@overload fun(uri:System.String, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XElement)
+---@overload fun(stream:System.IO.Stream):(System.Xml.Linq.XElement)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XElement)
+---@overload fun(textReader:System.IO.TextReader):(System.Xml.Linq.XElement)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XElement)
+---@overload fun(reader:System.Xml.XmlReader):(System.Xml.Linq.XElement)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].Load = function(reader, options) end
+
+---`Method Public Static`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XElement)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XElement)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XElement
+_G['XElement'].LoadAsync = function(reader, options, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XElement
+_G['XElement'].LoadAsyncInternal = function(reader, options, cancellationToken) end
+
+---`Method Public Static`
+---@overload fun(text:System.String):(System.Xml.Linq.XElement)
+---@param text System.String
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].Parse = function(text, options) end
+
+---`Method Public Instance`
+_G['XElement'].RemoveAll = function() end
+
+---`Method Public Instance`
+_G['XElement'].RemoveAttributes = function() end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XElement'].ReplaceAll = function(...) end
+
+---`Method Public Instance`
+---@overload fun(content:System.Object)
+---@param ... System.Object
+_G['XElement'].ReplaceAttributes = function(...) end
+
+---`Method Public Instance`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].SaveAsync = function(writer, cancellationToken) end
+
+---`Method Private Instance`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].SaveAsyncInternal = function(writer, cancellationToken) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@param value System.Object
+_G['XElement'].SetAttributeValue = function(name, value) end
+
+---`Method Public Instance`
+---@param name System.Xml.Linq.XName
+---@param value System.Object
+_G['XElement'].SetElementValue = function(name, value) end
+
+---`Method Public Instance`
+---@param value System.Object
+_G['XElement'].SetValue = function(value) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+_G['XElement'].WriteTo = function(writer) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XElement'].WriteToAsync = function(writer, cancellationToken) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'] = function(r, o) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].__new = function(r, o) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'] = function(r, o) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].__new = function(r, o) end
+
+---`Constructor Private Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'] = function(r, o) end
+
+---`Constructor Private Instance`
+---@overload fun(name:System.Xml.Linq.XName):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, content:System.Object):System.Xml.Linq.XElement
+---@overload fun(name:System.Xml.Linq.XName, ...:System.Object):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XElement):System.Xml.Linq.XElement
+---@overload fun(other:System.Xml.Linq.XStreamingElement):System.Xml.Linq.XElement
+---@overload fun():System.Xml.Linq.XElement
+---@overload fun(r:System.Xml.XmlReader):System.Xml.Linq.XElement
+---@overload fun(s:System.Xml.Linq.XElement.AsyncConstructionSentry):System.Xml.Linq.XElement
+---@param r System.Xml.XmlReader
+---@param o System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XElement
+_G['XElement'].__new = function(r, o) end
+
diff --git a/Meta/Types/server/_00007FFD967DF258.lua b/Meta/Types/server/_00007FFD967DF258.lua
new file mode 100644
index 0000000..a4bf068
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967DF258.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class System.Xml.Linq.XName : System.Object
+---`Field Private Instance`
+---@field _ns System.Xml.Linq.XNamespace
+---`Field Private Instance`
+---@field _localName System.String
+---`Field Private Instance`
+---@field _hashCode System.Int32
+---`Getter Public Instance`
+---@field LocalName System.String
+---`Getter Public Instance`
+---@field Namespace System.Xml.Linq.XNamespace
+---`Getter Public Instance`
+---@field NamespaceName System.String
+_G['XName'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['XName'].ToString = function() end
+
+---`Method Public Static`
+---@overload fun(expandedName:System.String):(System.Xml.Linq.XName)
+---@param localName System.String
+---@param namespaceName System.String
+---@return System.Xml.Linq.XName
+_G['XName'].Get = function(localName, namespaceName) end
+
+---`Method Public Instance Virtual`
+---@param obj System.Object
+---@return System.Boolean
+_G['XName'].Equals = function(obj) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['XName'].GetHashCode = function() end
+
+---`Constructor NonPublic Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@param localName System.String
+---@return System.Xml.Linq.XName
+_G['XName'] = function(ns, localName) end
+
+---`Constructor NonPublic Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@param localName System.String
+---@return System.Xml.Linq.XName
+_G['XName'].__new = function(ns, localName) end
+
diff --git a/Meta/Types/server/_00007FFD967DF820.lua b/Meta/Types/server/_00007FFD967DF820.lua
new file mode 100644
index 0000000..770f589
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967DF820.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class System.Xml.Linq.XAttribute : System.Xml.Linq.XObject
+---`Field NonPublic Instance`
+---@field next System.Xml.Linq.XAttribute
+---`Field NonPublic Instance`
+---@field name System.Xml.Linq.XName
+---`Field NonPublic Instance`
+---@field value System.String
+---`Getter Public Static`
+---@field EmptySequence (System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute)|(fun():(System.Xml.Linq.XAttribute))
+---`Getter Public Instance`
+---@field IsNamespaceDeclaration System.Boolean
+---`Getter Public Instance`
+---@field Name System.Xml.Linq.XName
+---`Getter Public Instance`
+---@field NextAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance Virtual`
+---@field NodeType System.Xml.XmlNodeType
+---`Getter Public Instance`
+---@field PreviousAttribute System.Xml.Linq.XAttribute
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Value System.String
+_G['XAttribute'] = {}
+
+---`Method Public Instance`
+_G['XAttribute'].Remove = function() end
+
+---`Method Public Instance`
+---@param value System.Object
+_G['XAttribute'].SetValue = function(value) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['XAttribute'].ToString = function() end
+
+---`Method NonPublic Instance`
+---@return System.Int32
+_G['XAttribute'].GetDeepHashCode = function() end
+
+---`Method NonPublic Instance`
+---@param ns System.Xml.Linq.XNamespace
+---@return System.String
+_G['XAttribute'].GetPrefixOfNamespace = function(ns) end
+
+---`Method Private Static`
+---@param name System.Xml.Linq.XName
+---@param value System.String
+_G['XAttribute'].ValidateAttribute = function(name, value) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName, value:System.Object):System.Xml.Linq.XAttribute
+---@param other System.Xml.Linq.XAttribute
+---@return System.Xml.Linq.XAttribute
+_G['XAttribute'] = function(other) end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.Xml.Linq.XName, value:System.Object):System.Xml.Linq.XAttribute
+---@param other System.Xml.Linq.XAttribute
+---@return System.Xml.Linq.XAttribute
+_G['XAttribute'].__new = function(other) end
+
diff --git a/Meta/Types/server/_00007FFD967DFE50.lua b/Meta/Types/server/_00007FFD967DFE50.lua
new file mode 100644
index 0000000..936bf05
--- /dev/null
+++ b/Meta/Types/server/_00007FFD967DFE50.lua
@@ -0,0 +1,153 @@
+---@meta
+---@class System.Xml.Linq.XDocument : System.Xml.Linq.XContainer
+---`Field Private Instance`
+---@field _declaration System.Xml.Linq.XDeclaration
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Declaration System.Xml.Linq.XDeclaration
+---`Getter Public Instance`
+---@field DocumentType System.Xml.Linq.XDocumentType
+---`Getter Public Instance Virtual`
+---@field NodeType System.Xml.XmlNodeType
+---`Getter Public Instance`
+---@field Root System.Xml.Linq.XElement
+_G['XDocument'] = {}
+
+---`Method Public Static`
+---@overload fun(uri:System.String):(System.Xml.Linq.XDocument)
+---@overload fun(uri:System.String, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XDocument)
+---@overload fun(stream:System.IO.Stream):(System.Xml.Linq.XDocument)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XDocument)
+---@overload fun(textReader:System.IO.TextReader):(System.Xml.Linq.XDocument)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions):(System.Xml.Linq.XDocument)
+---@overload fun(reader:System.Xml.XmlReader):(System.Xml.Linq.XDocument)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].Load = function(reader, options) end
+
+---`Method Public Static`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XDocument)
+---@overload fun(textReader:System.IO.TextReader, options:System.Xml.Linq.LoadOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task*1System*Xml*Linq*XDocument)
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XDocument
+_G['XDocument'].LoadAsync = function(reader, options, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task*1System*Xml*Linq*XDocument
+_G['XDocument'].LoadAsyncInternal = function(reader, options, cancellationToken) end
+
+---`Method Private Static`
+---@param reader System.Xml.XmlReader
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].InitLoad = function(reader, options) end
+
+---`Method Public Static`
+---@overload fun(text:System.String):(System.Xml.Linq.XDocument)
+---@param text System.String
+---@param options System.Xml.Linq.LoadOptions
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].Parse = function(text, options) end
+
+---`Method Public Instance`
+---@overload fun(stream:System.IO.Stream)
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions)
+---@overload fun(textWriter:System.IO.TextWriter)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions)
+---@overload fun(writer:System.Xml.XmlWriter)
+---@overload fun(fileName:System.String)
+---@param fileName System.String
+---@param options System.Xml.Linq.SaveOptions
+_G['XDocument'].Save = function(fileName, options) end
+
+---`Method Public Instance`
+---@overload fun(stream:System.IO.Stream, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@overload fun(textWriter:System.IO.TextWriter, options:System.Xml.Linq.SaveOptions, cancellationToken:System.Threading.CancellationToken):(System.Threading.Tasks.Task)
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XDocument'].SaveAsync = function(writer, cancellationToken) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+_G['XDocument'].WriteTo = function(writer) end
+
+---`Method Public Instance Virtual`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XDocument'].WriteToAsync = function(writer, cancellationToken) end
+
+---`Method Private Instance`
+---@param writer System.Xml.XmlWriter
+---@param cancellationToken System.Threading.CancellationToken
+---@return System.Threading.Tasks.Task
+_G['XDocument'].WriteToAsyncInternal = function(writer, cancellationToken) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XDocument'].AddAttribute = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@param a System.Xml.Linq.XAttribute
+_G['XDocument'].AddAttributeSkipNotify = function(a) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Xml.Linq.XNode
+_G['XDocument'].CloneNode = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@return System.Boolean
+_G['XDocument'].DeepEquals = function(node) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Int32
+_G['XDocument'].GetDeepHashCode = function() end
+
+---`Method Private Instance`
+---@return System.Xml.Linq.XDocument.T
+_G['XDocument'].GetFirstNode = function() end
+
+---`Method NonPublic Static`
+---@param s System.String
+---@return System.Boolean
+_G['XDocument'].IsWhitespace = function(s) end
+
+---`Method NonPublic Instance Virtual`
+---@param node System.Xml.Linq.XNode
+---@param previous System.Xml.Linq.XNode
+_G['XDocument'].ValidateNode = function(node, previous) end
+
+---`Method Private Instance`
+---@param previous System.Xml.Linq.XNode
+---@param allowBefore System.Xml.XmlNodeType
+---@param allowAfter System.Xml.XmlNodeType
+_G['XDocument'].ValidateDocument = function(previous, allowBefore, allowAfter) end
+
+---`Method NonPublic Instance Virtual`
+---@param s System.String
+_G['XDocument'].ValidateString = function(s) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Xml.Linq.XDocument
+---@overload fun(...:System.Object):System.Xml.Linq.XDocument
+---@overload fun(declaration:System.Xml.Linq.XDeclaration, ...:System.Object):System.Xml.Linq.XDocument
+---@param other System.Xml.Linq.XDocument
+---@return System.Xml.Linq.XDocument
+_G['XDocument'] = function(other) end
+
+---`Constructor Public Instance`
+---@overload fun():System.Xml.Linq.XDocument
+---@overload fun(...:System.Object):System.Xml.Linq.XDocument
+---@overload fun(declaration:System.Xml.Linq.XDeclaration, ...:System.Object):System.Xml.Linq.XDocument
+---@param other System.Xml.Linq.XDocument
+---@return System.Xml.Linq.XDocument
+_G['XDocument'].__new = function(other) end
+
diff --git a/Meta/Types/server/_00007FFD968303C0.lua b/Meta/Types/server/_00007FFD968303C0.lua
new file mode 100644
index 0000000..2f29569
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968303C0.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.Camera : System.Object
+---`Field Private Instance`
+---@field zoom System.Single
+---`Field Private Instance`
+---@field offsetAmount System.Single
+---`Field Private Instance`
+---@field transform Microsoft.Xna.Framework.Matrix
+---`Field Private Instance`
+---@field shaderTransform Microsoft.Xna.Framework.Matrix
+---`Field Private Instance`
+---@field viewMatrix Microsoft.Xna.Framework.Matrix
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field rotation System.Single
+---`Field Private Instance`
+---@field prevPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field prevZoom System.Single
+---`Field Public Instance`
+---@field Shake System.Single
+---`Field Private Instance`
+---@field shakePosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field shakeTargetPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field worldView Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field resolution Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field targetPos Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field Instance Barotrauma.Camera
+---`Field Public Static`
+---@field FollowSub System.Boolean
+---`Field Private Static`
+---@field DefaultZoom System.Single
+---`Field Private Static`
+---@field ZoomSmoothness System.Single
+---`Field Private Static`
+---@field MoveSmoothness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Zoom System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OffsetAmount System.Single
+---`Getter Public Instance`
+---@field Resolution Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field WorldView Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field WorldViewCenter Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Transform Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---@field ShaderTransform Microsoft.Xna.Framework.Matrix
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+_G['Camera'] = {}
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Camera'].GetPosition = function() end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Camera'].Translate = function(amount) end
+
+---`Method Public Instance`
+---@param interpolate? System.Boolean
+---@param clampPos? System.Boolean
+_G['Camera'].UpdateTransform = function(interpolate, clampPos) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param allowMove? System.Boolean
+---@param allowZoom? System.Boolean
+_G['Camera'].MoveCamera = function(deltaTime, allowMove, allowZoom) end
+
+---`Method Public Instance`
+---@param coords Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Camera'].ScreenToWorld = function(coords) end
+
+---`Method Public Instance`
+---@param coords Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Camera'].WorldToScreen = function(coords) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Camera
+---@return Barotrauma.Camera
+_G['Camera'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968304D0.lua b/Meta/Types/server/_00007FFD968304D0.lua
new file mode 100644
index 0000000..161ab81
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968304D0.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.CauseOfDeathType : System.Enum
+---`Field Public Static`
+---@field Unknown Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Pressure Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Suffocation Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Drowning Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Affliction Barotrauma.CauseOfDeathType
+---`Field Public Static`
+---@field Disconnected Barotrauma.CauseOfDeathType
+_G['CauseOfDeathType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD968306F8.lua b/Meta/Types/server/_00007FFD968306F8.lua
new file mode 100644
index 0000000..31a904a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968306F8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.CauseOfDeath : System.Object
+---`Field Public Instance`
+---@field Type Barotrauma.CauseOfDeathType
+---`Field Public Instance`
+---@field Affliction Barotrauma.AfflictionPrefab
+---`Field Public Instance`
+---@field Killer Barotrauma.Character
+---`Field Public Instance`
+---@field DamageSource Barotrauma.Entity
+_G['CauseOfDeath'] = {}
+
+---`Constructor Public Instance`
+---@param type Barotrauma.CauseOfDeathType
+---@param affliction Barotrauma.AfflictionPrefab
+---@param killer Barotrauma.Character
+---@param damageSource Barotrauma.Entity
+---@return Barotrauma.CauseOfDeath
+_G['CauseOfDeath'] = function(type, affliction, killer, damageSource) end
+
+---`Constructor Public Instance`
+---@param type Barotrauma.CauseOfDeathType
+---@param affliction Barotrauma.AfflictionPrefab
+---@param killer Barotrauma.Character
+---@param damageSource Barotrauma.Entity
+---@return Barotrauma.CauseOfDeath
+_G['CauseOfDeath'].__new = function(type, affliction, killer, damageSource) end
+
diff --git a/Meta/Types/server/_00007FFD968307F8.lua b/Meta/Types/server/_00007FFD968307F8.lua
new file mode 100644
index 0000000..32af8f8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968307F8.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.SpawnType : System.Enum
+---`Field Public Static`
+---@field Path Barotrauma.SpawnType
+---`Field Public Static`
+---@field Human Barotrauma.SpawnType
+---`Field Public Static`
+---@field Enemy Barotrauma.SpawnType
+---`Field Public Static`
+---@field Cargo Barotrauma.SpawnType
+---`Field Public Static`
+---@field Corpse Barotrauma.SpawnType
+---`Field Public Static`
+---@field Submarine Barotrauma.SpawnType
+---`Field Public Static`
+---@field ExitPoint Barotrauma.SpawnType
+---`Field Public Static`
+---@field Disabled Barotrauma.SpawnType
+_G['SpawnType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96831258.lua b/Meta/Types/server/_00007FFD96831258.lua
new file mode 100644
index 0000000..40aa346
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96831258.lua
@@ -0,0 +1,287 @@
+---@meta
+---@class Barotrauma.MapEntity : Barotrauma.Entity
+---`Field Public Instance`
+---@field Prefab Barotrauma.MapEntityPrefab
+---`Field NonPublic Instance`
+---@field linkedToID (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Public Instance`
+---@field unresolvedLinkedToID (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field NonPublic Instance`
+---@field Upgrades (System.Collections.Generic.List*1Barotrauma*Upgrade)|(Barotrauma.Upgrade[])
+---`Field Public Instance`
+---@field DisallowedUpgradeSet (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field linkedTo (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field NonPublic Instance`
+---@field flippedX System.Boolean
+---`Field NonPublic Instance`
+---@field flippedY System.Boolean
+---`Field Public Instance`
+---@field ShouldBeSaved System.Boolean
+---`Field NonPublic Instance`
+---@field rect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field externalHighlight System.Boolean
+---`Field Private Instance`
+---@field isHighlighted System.Boolean
+---`Field Private Instance`
+---@field _spriteOverrideDepth System.Single
+---`Field Public Instance`
+---@field OriginalModuleIndex System.Int32
+---`Field Public Instance`
+---@field OriginalContainerIndex System.Int32
+---`Field Private Instance`
+---@field mapLoadedCalled System.Boolean
+---`Field Public Static`
+---@field MapEntityList (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Public Static`
+---@field MapEntityUpdateInterval System.Int32
+---`Field Public Static`
+---@field PoweredUpdateInterval System.Int32
+---`Field Private Static`
+---@field mapEntityUpdateTick System.Int32
+---`Field NonPublic Static`
+---@field highlightedEntities (System.Collections.Generic.HashSet*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Static`
+---@field tempHighlightedEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisallowedUpgrades System.String
+---`Getter Public Instance`
+---@field FlippedX System.Boolean
+---`Getter Public Instance`
+---@field FlippedY System.Boolean
+---`Getter Public Static`
+---@field HighlightedEntities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExternalHighlight System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHighlighted System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field WorldRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field DrawBelowWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawOverWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---@field AllowedLinks (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---@field ResizeHorizontal System.Boolean
+---`Getter Public Instance`
+---@field ResizeVertical System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RectWidth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RectHeight System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteDepthOverrideIsSet System.Boolean
+---`Getter Public Instance`
+---@field SpriteOverrideDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteDepth System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HiddenInGame System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsLayerHidden System.Boolean
+---`Getter Public Instance`
+---@field IsHidden System.Boolean
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SightRange System.Single
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field RemoveIfLinkedOutpostDoorInUse System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Layer System.String
+---`Getter Public Instance Virtual`
+---@field Name System.String
+_G['MapEntity'] = {}
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+_G['MapEntity'].AddLinked = function(entity) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+---@param idRemap Barotrauma.IdRemap
+_G['MapEntity'].ParseLinks = function(element, idRemap) end
+
+---`Method Public Instance`
+---@param childRemap Barotrauma.IdRemap
+_G['MapEntity'].ResolveLinks = function(childRemap) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['MapEntity'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['MapEntity'].IsMouseOn = function(position) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['MapEntity'].HasUpgrade = function(identifier) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.Upgrade
+_G['MapEntity'].GetUpgrade = function(identifier) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Upgrade)|(Barotrauma.Upgrade[])
+_G['MapEntity'].GetUpgrades = function() end
+
+---`Method Public Instance`
+---@param upgrade Barotrauma.Upgrade
+---@param createNetworkEvent? System.Boolean
+_G['MapEntity'].SetUpgrade = function(upgrade, createNetworkEvent) end
+
+---`Method Public Instance Virtual`
+---@param upgrade Barotrauma.Upgrade
+---@param createNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['MapEntity'].AddUpgrade = function(upgrade, createNetworkEvent) end
+
+---`Method NonPublic Instance Virtual`
+_G['MapEntity'].CheckIsHighlighted = function() end
+
+---`Method Public Static`
+_G['MapEntity'].ClearHighlightedEntities = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Barotrauma.MapEntity
+_G['MapEntity'].Clone = function() end
+
+---`Method Public Static`
+---@param entitiesToClone (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].Clone = function(entitiesToClone) end
+
+---`Method NonPublic Instance`
+_G['MapEntity'].InsertToList = function() end
+
+---`Method Public Instance Virtual`
+_G['MapEntity'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['MapEntity'].Remove = function() end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['MapEntity'].UpdateAll = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['MapEntity'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['MapEntity'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['MapEntity'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Quad2D
+_G['MapEntity'].GetTransformedQuad = function() end
+
+---`Method Public Static`
+---@param submarine Barotrauma.Submarine
+---@param parentElement System.Xml.Linq.XElement
+---@param filePath System.String
+---@param idOffset System.Int32
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].LoadAll = function(submarine, parentElement, filePath, idOffset) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---@param updateHulls System.Boolean
+_G['MapEntity'].MapLoaded = function(entities, updateHulls) end
+
+---`Method Private Static`
+---@param entities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['MapEntity'].CreateDroppedStacks = function(entities) end
+
+---`Method Public Static`
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['MapEntity'].InitializeLoadedLinks = function(entities) end
+
+---`Method Public Instance Virtual`
+_G['MapEntity'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['MapEntity'].Save = function(parentElement) end
+
+---`Method Public Instance`
+---@param e Barotrauma.MapEntity
+_G['MapEntity'].RemoveLinked = function(e) end
+
+---`Method Public Instance`
+---@param list? (System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T)|(Barotrauma.MapEntity.T[])
+---@param maxDepth? System.Nullable*1System*Int32
+---@param filter? (System.Func*1Barotrauma*MapEntity*T*1System*Boolean)|(fun(arg:Barotrauma.MapEntity.T):(System.Boolean))
+---@return (System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T)|(Barotrauma.MapEntity.T[])
+_G['MapEntity'].GetLinkedEntities = function(list, maxDepth, filter) end
+
+---`Method Private Static`
+---@param mapEntity Barotrauma.MapEntity
+---@param linkedTargets (System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T)|(Barotrauma.MapEntity.T[])
+---@param depth System.Int32-ref
+---@param maxDepth? System.Nullable*1System*Int32
+---@param filter? (System.Func*1Barotrauma*MapEntity*T*1System*Boolean)|(fun(arg:Barotrauma.MapEntity.T):(System.Boolean))
+_G['MapEntity'].GetLinkedEntitiesRecursive = function(mapEntity, linkedTargets, depth, maxDepth, filter) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, submarine:Barotrauma.Submarine, id:System.UInt16):Barotrauma.MapEntity
+---@return Barotrauma.MapEntity
+_G['MapEntity'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96831988.lua b/Meta/Types/server/_00007FFD96831988.lua
new file mode 100644
index 0000000..fc103f8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96831988.lua
@@ -0,0 +1,193 @@
+---@meta
+---@class Barotrauma.WayPoint : Barotrauma.MapEntity
+---`Field NonPublic Instance`
+---@field spawnType Barotrauma.SpawnType
+---`Field Private Instance`
+---@field idCardTags (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field ladderId System.UInt16
+---`Field Public Instance`
+---@field Ladders Barotrauma.Items.Components.Ladder
+---`Field Public Instance`
+---@field Stairs Barotrauma.Structure
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field IsObstructed System.Boolean
+---`Field Private Instance`
+---@field openGaps (System.Collections.Generic.HashSet*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Private Instance`
+---@field gapId System.UInt16
+---`Field Public Instance`
+---@field Tunnel Barotrauma.Level.Tunnel
+---`Field Public Instance`
+---@field Ruin Barotrauma.RuinGeneration.Ruin
+---`Field Public Instance`
+---@field Cave Barotrauma.Level.Cave
+---`Field Public Static`
+---@field WayPointList (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Public Static`
+---@field ShowWayPoints System.Boolean
+---`Field Public Static`
+---@field ShowSpawnPoints System.Boolean
+---`Field Public Static`
+---@field LadderWaypointInterval System.Single
+---`Getter Public Instance`
+---@field IsInWater System.Boolean
+---`Getter Public Instance`
+---@field IsTraversable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConnectedGap Barotrauma.Gap
+---`Getter Public Instance`
+---@field ConnectedDoor Barotrauma.Items.Components.Door
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnType Barotrauma.SpawnType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExitPointSize Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field ExitPointWorldRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnLinksChanged (System.Action*1Barotrauma*WayPoint)|(fun(obj:Barotrauma.WayPoint))
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdCardDesc System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdCardTags (System.String-arr)|(System.String[])
+---`Getter Public Instance`
+---@field Tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AssignedJob Barotrauma.JobPrefab
+_G['WayPoint'] = {}
+
+---`Method Public Instance`
+---@param open System.Boolean
+---@param gap Barotrauma.Gap
+_G['WayPoint'].OnGapStateChanged = function(open, gap) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['WayPoint'].Clone = function() end
+
+---`Method Public Static`
+---@param submarine Barotrauma.Submarine
+---@return System.Boolean
+_G['WayPoint'].GenerateSubWaypoints = function(submarine) end
+
+---`Method Private Instance`
+---@param waypointList (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32)|(fun():(System.ValueTuple*1Barotrauma*WayPoint*1System*Int32))
+---@param tolerance System.Single
+---@param ignoredBody? FarseerPhysics.Dynamics.Body
+---@param ignored? (System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint)|(fun():(Barotrauma.WayPoint))
+---@param filter? (System.Func*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32*1System*Boolean)|(fun(arg:System.ValueTuple*1Barotrauma*WayPoint*1System*Int32):(System.Boolean))
+---@return Barotrauma.WayPoint
+_G['WayPoint'].FindClosestOutside = function(waypointList, tolerance, ignoredBody, ignored, filter) end
+
+---`Method Private Instance`
+---@param dir System.Int32
+---@param horizontalSearch System.Boolean
+---@param tolerance Microsoft.Xna.Framework.Vector2
+---@param ignoredBody? FarseerPhysics.Dynamics.Body
+---@param ignored? (System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint)|(fun():(Barotrauma.WayPoint))
+---@param filter? (System.Func*1Barotrauma*WayPoint*1System*Boolean)|(fun(arg:Barotrauma.WayPoint):(System.Boolean))
+---@return Barotrauma.WayPoint
+_G['WayPoint'].FindClosest = function(dir, horizontalSearch, tolerance, ignoredBody, ignored, filter) end
+
+---`Method Public Instance`
+---@param wayPoint2 Barotrauma.WayPoint
+_G['WayPoint'].ConnectTo = function(wayPoint2) end
+
+---`Method Public Static`
+---@param spawnType? Barotrauma.SpawnType
+---@param assignedJob? Barotrauma.JobPrefab
+---@param sub? Barotrauma.Submarine
+---@param useSyncedRand? System.Boolean
+---@param spawnPointTag? System.String
+---@param ignoreSubmarine? System.Boolean
+---@return Barotrauma.WayPoint
+_G['WayPoint'].GetRandom = function(spawnType, assignedJob, sub, useSyncedRand, spawnPointTag, ignoreSubmarine) end
+
+---`Method Public Static`
+---@param crew (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---@param submarine Barotrauma.Submarine
+---@return (Barotrauma.WayPoint-arr)|(Barotrauma.WayPoint[])
+_G['WayPoint'].SelectCrewSpawnPoints = function(crew, submarine) end
+
+---`Method Public Static`
+---@param teamID Barotrauma.CharacterTeamType
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['WayPoint'].GetOutpostSpawnPoints = function(teamID) end
+
+---`Method Public Instance`
+_G['WayPoint'].FindHull = function() end
+
+---`Method Public Instance Virtual`
+_G['WayPoint'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.Structure
+_G['WayPoint'].FindStairs = function() end
+
+---`Method Public Instance`
+_G['WayPoint'].InitializeLinks = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.WayPoint
+_G['WayPoint'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['WayPoint'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['WayPoint'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['WayPoint'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, spawnType:Barotrauma.SpawnType, submarine:Barotrauma.Submarine, gap?:Barotrauma.Gap):Barotrauma.WayPoint
+---@overload fun(prefab:Barotrauma.MapEntityPrefab, rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.WayPoint
+---@overload fun(newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.WayPoint
+---@overload fun(type:Barotrauma.WayPoint.Type, newRect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine, id?:System.UInt16):Barotrauma.WayPoint
+---@return Barotrauma.WayPoint
+_G['WayPoint'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96831C60.lua b/Meta/Types/server/_00007FFD96831C60.lua
new file mode 100644
index 0000000..43222c1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96831C60.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.Networking.ServerLog : System.Object
+---`Field Private Instance`
+---@field messageColor (System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1Microsoft*Xna*Framework*Color)|({[Barotrauma.Networking.ServerLog.MessageType]:(Microsoft.Xna.Framework.Color)})
+---`Field Private Instance`
+---@field messageTypeName (System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1System*String)|({[Barotrauma.Networking.ServerLog.MessageType]:(System.String)})
+---`Field Private Instance`
+---@field linesPerFile System.Int32
+---`Field Private Instance`
+---@field lines (System.Collections.Generic.Queue*1Barotrauma*Networking*ServerLog*LogMessage)|(fun():(Barotrauma.Networking.ServerLog.LogMessage))
+---`Field Private Instance`
+---@field unsavedLines (System.Collections.Generic.Queue*1Barotrauma*Networking*ServerLog*LogMessage)|(fun():(Barotrauma.Networking.ServerLog.LogMessage))
+---`Field Private Instance`
+---@field msgTypeHidden (System.Boolean-arr)|(System.Boolean[])
+---`Field Public Instance`
+---@field ServerName System.String
+---`Field Public Static`
+---@field SavePath System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinesPerFile System.Int32
+_G['ServerLog'] = {}
+
+---`Method Public Instance`
+---@param line System.String
+---@param messageType Barotrauma.Networking.ServerLog.MessageType
+---@param logToConsole? System.Boolean
+_G['ServerLog'].WriteLine = function(line, messageType, logToConsole) end
+
+---`Method Public Instance`
+_G['ServerLog'].Save = function() end
+
+---`Constructor Public Instance`
+---@param serverName System.String
+---@return Barotrauma.Networking.ServerLog
+_G['ServerLog'] = function(serverName) end
+
+---`Constructor Public Instance`
+---@param serverName System.String
+---@return Barotrauma.Networking.ServerLog
+_G['ServerLog'].__new = function(serverName) end
+
diff --git a/Meta/Types/server/_00007FFD96831D60.lua b/Meta/Types/server/_00007FFD96831D60.lua
new file mode 100644
index 0000000..026e0f5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96831D60.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Networking.ServerLog.MessageType : System.Enum
+---`Field Public Static`
+---@field Chat Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field ItemInteraction Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Inventory Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Attack Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Spawning Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Wiring Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field ServerMessage Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field ConsoleUsage Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Money Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field DoSProtection Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Karma Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Talent Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Traitors Barotrauma.Networking.ServerLog.MessageType
+---`Field Public Static`
+---@field Error Barotrauma.Networking.ServerLog.MessageType
+_G['ServerLog']['MessageType'] = {}
+_G['ServerLog_MessageType'] = _G['ServerLog']['MessageType']
+_G['ServerLogMessageType'] = _G['ServerLog']['MessageType']
+
diff --git a/Meta/Types/server/_00007FFD968321E8.lua b/Meta/Types/server/_00007FFD968321E8.lua
new file mode 100644
index 0000000..c93a6ec
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968321E8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.PropertyConditional.ConditionType : System.Enum
+---`Field Public Static`
+---@field PropertyValueOrAffliction Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field SkillRequirement Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field Name Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field SpeciesName Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field SpeciesGroup Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field HasTag Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field HasStatusTag Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field HasSpecifierTag Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field EntityType Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field LimbType Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field WorldHostility Barotrauma.PropertyConditional.ConditionType
+---`Field Public Static`
+---@field LevelDifficulty Barotrauma.PropertyConditional.ConditionType
+_G['PropertyConditional']['ConditionType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96832338.lua b/Meta/Types/server/_00007FFD96832338.lua
new file mode 100644
index 0000000..c10581c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96832338.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.PropertyConditional.ComparisonOperatorType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field Equals Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field NotEquals Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field LessThan Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field LessThanEquals Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field GreaterThan Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Static`
+---@field GreaterThanEquals Barotrauma.PropertyConditional.ComparisonOperatorType
+_G['PropertyConditional']['ComparisonOperatorType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96832940.lua b/Meta/Types/server/_00007FFD96832940.lua
new file mode 100644
index 0000000..d18f937
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96832940.lua
@@ -0,0 +1,154 @@
+---@meta
+---@class Barotrauma.PropertyConditional : System.Object
+---`Field Public Instance`
+---@field Type Barotrauma.PropertyConditional.ConditionType
+---`Field Public Instance`
+---@field ComparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---`Field Public Instance`
+---@field AttributeName Barotrauma.Identifier
+---`Field Public Instance`
+---@field AttributeValue System.String
+---`Field Public Instance`
+---@field AttributeValueAsTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field FloatValue System.Nullable*1System*Single
+---`Field Private Instance`
+---@field cachedHostilityValue Barotrauma.WorldHostilityOption
+---`Field Public Instance`
+---@field TargetItemComponent System.String
+---`Field Public Instance`
+---@field ItemComponentComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---`Field Public Instance`
+---@field TargetSelf System.Boolean
+---`Field Public Instance`
+---@field TargetContainer System.Boolean
+---`Field Public Instance`
+---@field TargetGrandParent System.Boolean
+---`Field Public Instance`
+---@field TargetContainedItem System.Boolean
+---`Getter Private Instance`
+---@field ComparisonOperatorIsNotEquals System.Boolean
+_G['PropertyConditional'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param predicate? (System.Predicate*1System*Xml*Linq*XAttribute)|(fun(obj:System.Xml.Linq.XAttribute):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*PropertyConditional)|(fun():(Barotrauma.PropertyConditional))
+_G['PropertyConditional'].FromXElement = function(element, predicate) end
+
+---`Method Private Static`
+---@param attribute System.Xml.Linq.XAttribute
+---@return System.Boolean
+_G['PropertyConditional'].IsValid = function(attribute) end
+
+---`Method Public Static`
+---@param str System.String
+---@return System.ValueTuple*1Barotrauma*PropertyConditional*ComparisonOperatorType*1System*String
+_G['PropertyConditional'].ExtractComparisonOperatorFromConditionString = function(str) end
+
+---`Method Public Static`
+---@param op System.String
+---@return Barotrauma.PropertyConditional.ComparisonOperatorType
+_G['PropertyConditional'].GetComparisonOperatorType = function(op) end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].Matches = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].MatchesContained = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].MatchesDirect = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@return System.Boolean
+_G['PropertyConditional'].CheckOnlyEquality = function(target) end
+
+---`Method Private Instance`
+---@param matches System.Int32
+---@return System.Boolean
+_G['PropertyConditional'].SufficientTagMatches = function(matches) end
+
+---`Method Private Instance`
+---@param predicate (System.Func*1Barotrauma*Identifier*1System*Boolean)|(fun(arg:Barotrauma.Identifier):(System.Boolean))
+---@return System.Boolean
+_G['PropertyConditional'].CheckMatchingTags = function(predicate) end
+
+---`Method Public Instance`
+---@param targetTag Barotrauma.Identifier
+---@return System.Boolean
+_G['PropertyConditional'].TargetTagMatchesTagCondition = function(targetTag) end
+
+---`Method Private Instance`
+---@param testedValue System.Single
+---@return System.Boolean
+_G['PropertyConditional'].NumberMatchesRequirement = function(testedValue) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@return System.Boolean
+_G['PropertyConditional'].PropertyMatchesRequirement = function(target, property) end
+
+---`Method Public Static`
+---@param val1 System.Single
+---@param val2 System.Single
+---@param op Barotrauma.PropertyConditional.ComparisonOperatorType
+---@return System.Boolean
+_G['PropertyConditional'].CompareFloat = function(val1, val2, op) end
+
+---`Method Public Static`
+---@param leftValue Barotrauma.PropertyConditional.T
+---@param rightValue Barotrauma.PropertyConditional.T
+---@param comparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---@return System.Boolean
+_G['PropertyConditional'].Compare = function(leftValue, rightValue, comparisonOperator) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param defaultOperatorType? Barotrauma.PropertyConditional.LogicalOperatorType
+---@return Barotrauma.PropertyConditional.LogicalComparison
+_G['PropertyConditional'].LoadConditionals = function(element, defaultOperatorType) end
+
+---`Method Public Static`
+---@param conditionalTarget Barotrauma.ISerializableEntity
+---@param conditionals (System.Collections.Generic.IEnumerable*1Barotrauma*PropertyConditional)|(fun():(Barotrauma.PropertyConditional))
+---@param logicalOperator Barotrauma.PropertyConditional.LogicalOperatorType
+---@return System.Boolean
+_G['PropertyConditional'].CheckConditionals = function(conditionalTarget, conditionals, logicalOperator) end
+
+---`Constructor Private Instance`
+---@param attributeName Barotrauma.Identifier
+---@param comparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---@param attributeValue System.String
+---@param targetItemComponent System.String
+---@param itemComponentComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---@param targetSelf System.Boolean
+---@param targetContainer System.Boolean
+---@param targetGrandParent System.Boolean
+---@param targetContainedItem System.Boolean
+---@param conditionType Barotrauma.PropertyConditional.ConditionType
+---@return Barotrauma.PropertyConditional
+_G['PropertyConditional'] = function(attributeName, comparisonOperator, attributeValue, targetItemComponent, itemComponentComparison, targetSelf, targetContainer, targetGrandParent, targetContainedItem, conditionType) end
+
+---`Constructor Private Instance`
+---@param attributeName Barotrauma.Identifier
+---@param comparisonOperator Barotrauma.PropertyConditional.ComparisonOperatorType
+---@param attributeValue System.String
+---@param targetItemComponent System.String
+---@param itemComponentComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---@param targetSelf System.Boolean
+---@param targetContainer System.Boolean
+---@param targetGrandParent System.Boolean
+---@param targetContainedItem System.Boolean
+---@param conditionType Barotrauma.PropertyConditional.ConditionType
+---@return Barotrauma.PropertyConditional
+_G['PropertyConditional'].__new = function(attributeName, comparisonOperator, attributeValue, targetItemComponent, itemComponentComparison, targetSelf, targetContainer, targetGrandParent, targetContainedItem, conditionType) end
+
diff --git a/Meta/Types/server/_00007FFD968334A0.lua b/Meta/Types/server/_00007FFD968334A0.lua
new file mode 100644
index 0000000..edbdf0b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968334A0.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.StatusEffect.TargetType : System.Enum
+---`Field Public Static`
+---@field This Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Parent Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Character Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Contained Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field NearbyCharacters Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field NearbyItems Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field UseTarget Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Hull Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field Limb Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field AllLimbs Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field LastLimb Barotrauma.StatusEffect.TargetType
+---`Field Public Static`
+---@field LinkedEntities Barotrauma.StatusEffect.TargetType
+_G['StatusEffect']['TargetType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96835418.lua b/Meta/Types/server/_00007FFD96835418.lua
new file mode 100644
index 0000000..580c962
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96835418.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.ActionType : System.Enum
+---`Field Public Static`
+---@field Always Barotrauma.ActionType
+---`Field Public Static`
+---@field OnPicked Barotrauma.ActionType
+---`Field Public Static`
+---@field OnUse Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSecondaryUse Barotrauma.ActionType
+---`Field Public Static`
+---@field OnWearing Barotrauma.ActionType
+---`Field Public Static`
+---@field OnContaining Barotrauma.ActionType
+---`Field Public Static`
+---@field OnContained Barotrauma.ActionType
+---`Field Public Static`
+---@field OnNotContained Barotrauma.ActionType
+---`Field Public Static`
+---@field OnActive Barotrauma.ActionType
+---`Field Public Static`
+---@field OnFailure Barotrauma.ActionType
+---`Field Public Static`
+---@field OnBroken Barotrauma.ActionType
+---`Field Public Static`
+---@field OnFire Barotrauma.ActionType
+---`Field Public Static`
+---@field InWater Barotrauma.ActionType
+---`Field Public Static`
+---@field NotInWater Barotrauma.ActionType
+---`Field Public Static`
+---@field OnImpact Barotrauma.ActionType
+---`Field Public Static`
+---@field OnEating Barotrauma.ActionType
+---`Field Public Static`
+---@field OnDamaged Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSevered Barotrauma.ActionType
+---`Field Public Static`
+---@field OnProduceSpawned Barotrauma.ActionType
+---`Field Public Static`
+---@field OnOpen Barotrauma.ActionType
+---`Field Public Static`
+---@field OnClose Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSpawn Barotrauma.ActionType
+---`Field Public Static`
+---@field OnSuccess Barotrauma.ActionType
+---`Field Public Static`
+---@field OnAbility Barotrauma.ActionType
+---`Field Public Static`
+---@field OnInserted Barotrauma.ActionType
+---`Field Public Static`
+---@field OnRemoved Barotrauma.ActionType
+---`Field Public Static`
+---@field OnDeath Barotrauma.ActionType
+_G['ActionType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD968355C0.lua b/Meta/Types/server/_00007FFD968355C0.lua
new file mode 100644
index 0000000..a32e575
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968355C0.lua
@@ -0,0 +1,366 @@
+---@meta
+---@class Barotrauma.StatusEffect : System.Object
+---`Field Private Instance`
+---@field targetTypes Barotrauma.StatusEffect.TargetType
+---`Field Public Instance`
+---@field TargetSlot System.Int32
+---`Field Private Instance`
+---@field requiredItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Public Instance`
+---@field PropertyEffects (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Object)|(System.ValueTuple*1Barotrauma*Identifier*1System*Object[])
+---`Field Private Instance`
+---@field conditionalLogicalOperator Barotrauma.PropertyConditional.LogicalOperatorType
+---`Field Private Instance`
+---@field propertyConditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Field Private Instance`
+---@field setValue System.Boolean
+---`Field Private Instance`
+---@field disableDeltaTime System.Boolean
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field lifeTime System.Single
+---`Field Private Instance`
+---@field lifeTimer System.Single
+---`Field Private Instance`
+---@field intervalTimers (System.Collections.Generic.Dictionary*1Barotrauma*Entity*1System*Single)|({[Barotrauma.Entity]:(System.Single)})
+---`Field Private Instance`
+---@field oneShot System.Boolean
+---`Field Public Instance`
+---@field CheckConditionalAlways System.Boolean
+---`Field Public Instance`
+---@field Stackable System.Boolean
+---`Field Public Instance`
+---@field Interval System.Single
+---`Field Private Instance`
+---@field useItemCount System.Int32
+---`Field Private Instance`
+---@field removeItem System.Boolean
+---`Field Private Instance`
+---@field dropContainedItems System.Boolean
+---`Field Private Instance`
+---@field dropItem System.Boolean
+---`Field Private Instance`
+---@field removeCharacter System.Boolean
+---`Field Private Instance`
+---@field breakLimb System.Boolean
+---`Field Private Instance`
+---@field hideLimb System.Boolean
+---`Field Private Instance`
+---@field hideLimbTimer System.Single
+---`Field Private Instance`
+---@field containerForItemsOnCharacterRemoval Barotrauma.Identifier
+---`Field Public Instance`
+---@field type Barotrauma.ActionType
+---`Field Private Instance`
+---@field explosions (System.Collections.Generic.List*1Barotrauma*Explosion)|(Barotrauma.Explosion[])
+---`Field Private Instance`
+---@field spawnItems (System.Collections.Generic.List*1Barotrauma*StatusEffect*ItemSpawnInfo)|(Barotrauma.StatusEffect.ItemSpawnInfo[])
+---`Field Private Instance`
+---@field spawnItemRandomly System.Boolean
+---`Field Private Instance`
+---@field spawnCharacters (System.Collections.Generic.List*1Barotrauma*StatusEffect*CharacterSpawnInfo)|(Barotrauma.StatusEffect.CharacterSpawnInfo[])
+---`Field Public Instance`
+---@field refundTalents System.Boolean
+---`Field Public Instance`
+---@field giveTalentInfos (System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveTalentInfo)|(Barotrauma.StatusEffect.GiveTalentInfo[])
+---`Field Private Instance`
+---@field aiTriggers (System.Collections.Generic.List*1Barotrauma*StatusEffect*AITrigger)|(Barotrauma.StatusEffect.AITrigger[])
+---`Field Private Instance`
+---@field triggeredEvents (System.Collections.Generic.List*1Barotrauma*EventPrefab)|(Barotrauma.EventPrefab[])
+---`Field Private Instance`
+---@field triggeredEventTargetTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field triggeredEventEntityTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field triggeredEventUserTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field eventTargetTags (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Public Instance`
+---@field FireSize System.Single
+---`Field Public Instance`
+---@field targetLimbs (Barotrauma.LimbType-arr)|(Barotrauma.LimbType[])
+---`Field Public Instance`
+---@field SeverLimbsProbability System.Single
+---`Field Public Instance`
+---@field sourceBody Barotrauma.PhysicsBody
+---`Field Public Instance`
+---@field OnlyInside System.Boolean
+---`Field Public Instance`
+---@field OnlyOutside System.Boolean
+---`Field Public Instance`
+---@field OnlyWhenDamagedByPlayer System.Boolean
+---`Field Public Instance`
+---@field AllowWhenBroken System.Boolean
+---`Field Public Instance`
+---@field TargetIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field TargetItemComponent System.String
+---`Field Private Instance`
+---@field requiredAfflictions (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Identifier*2System*Single)|(System.ValueTuple*1Barotrauma*Identifier*1System*Single[])
+---`Field Public Instance`
+---@field AfflictionMultiplier System.Single
+---`Field Private Instance`
+---@field multiplyAfflictionsByMaxVitality System.Boolean
+---`Field Public Instance`
+---@field ReduceAffliction (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Single)|(System.ValueTuple*1Barotrauma*Identifier*1System*Single[])
+---`Field Private Instance`
+---@field talentTriggers (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field giveExperiences (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Field Private Instance`
+---@field giveSkills (System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveSkill)|(Barotrauma.StatusEffect.GiveSkill[])
+---`Field Private Instance`
+---@field luaHook (System.Collections.Generic.List*1System*ValueTuple*2System*String*2Barotrauma*ContentXElement)|(System.ValueTuple*1System*String*1Barotrauma*ContentXElement[])
+---`Field Private Instance`
+---@field failedAnimations (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*StatusEffect*AnimLoadInfo)|(System.ValueTuple*1Barotrauma*Character*1Barotrauma*StatusEffect*AnimLoadInfo[])
+---`Field Private Instance`
+---@field animationsToTrigger (System.Collections.Generic.List*1Barotrauma*StatusEffect*AnimLoadInfo)|(Barotrauma.StatusEffect.AnimLoadInfo[])
+---`Field Public Instance`
+---@field Duration System.Single
+---`Field NonPublic Instance`
+---@field currentTargets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Static`
+---@field FieldNames (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field DurationList (System.Collections.Generic.List*1Barotrauma*DurationListElement)|(Barotrauma.DurationListElement[])
+---`Field Private Static`
+---@field intervalsToRemove (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Getter Public Instance`
+---@field HasConditions System.Boolean
+---`Getter Public Instance`
+---@field Explosions (System.Collections.Generic.IEnumerable*1Barotrauma*Explosion)|(fun():(Barotrauma.Explosion))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Afflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Getter Public Instance`
+---@field SpawnCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect*CharacterSpawnInfo)|(fun():(Barotrauma.StatusEffect.CharacterSpawnInfo))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Disabled System.Boolean
+_G['StatusEffect'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'].Load = function(element, parentDebugName) end
+
+---`Method Public Instance`
+---@param targetType Barotrauma.StatusEffect.TargetType
+---@return System.Boolean
+_G['StatusEffect'].HasTargetType = function(targetType) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['StatusEffect'].ReducesItemCondition = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['StatusEffect'].IncreasesItemCondition = function() end
+
+---`Method Private Instance`
+---@param propertyName Barotrauma.Identifier
+---@param value System.Object
+---@param conditionValue System.Single-ref
+---@return System.Boolean
+_G['StatusEffect'].ChangesItemCondition = function(propertyName, value, conditionValue) end
+
+---`Method Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['StatusEffect'].MatchesTagConditionals = function(itemPrefab) end
+
+---`Method Public Instance`
+---@param attackResult Barotrauma.AttackResult
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredAfflictions = function(attackResult) end
+
+---`Method Public Instance Virtual`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredItems = function(entity) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+_G['StatusEffect'].AddNearbyTargets = function(worldPosition, targets) end
+
+---`Method Public Instance`
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredConditions = function(targets) end
+
+---`Method Private Instance`
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param conditionals (System.Collections.Generic.IReadOnlyList*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---@param targetingContainer? System.Boolean
+---@return System.Boolean
+_G['StatusEffect'].HasRequiredConditions = function(targets, conditionals, targetingContainer) end
+
+---`Method Private Static`
+---@param condition System.Boolean
+---@param valueToReturn System.Boolean-ref
+---@return System.Boolean
+_G['StatusEffect'].ShouldShortCircuitLogicalOrOperator = function(condition, valueToReturn) end
+
+---`Method Private Static`
+---@param condition System.Boolean
+---@param valueToReturn System.Boolean-ref
+---@return System.Boolean
+_G['StatusEffect'].ShouldShortCircuitLogicalAndOperator = function(condition, valueToReturn) end
+
+---`Method NonPublic Instance`
+---@overload fun(entity:Barotrauma.ISerializableEntity):(System.Boolean)
+---@overload fun(itemComponent:Barotrauma.Items.Components.ItemComponent):(System.Boolean)
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['StatusEffect'].IsValidTarget = function(character) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+_G['StatusEffect'].SetUser = function(user) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['StatusEffect'].ShouldWaitForInterval = function(entity, deltaTime) end
+
+---`Method Public Instance Virtual`
+---@overload fun(type:Barotrauma.ActionType, deltaTime:System.Single, entity:Barotrauma.Entity, target:Barotrauma.ISerializableEntity, worldPosition?:System.Nullable*1Microsoft*Xna*Framework*Vector2)
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['StatusEffect'].Apply = function(type, deltaTime, entity, targets, worldPosition) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['StatusEffect'].Apply = function(deltaTime, entity, targets, worldPosition) end
+
+---`Method Private Instance`
+---@param entity Barotrauma.Entity
+---@return Barotrauma.Hull
+_G['StatusEffect'].GetHull = function(entity) end
+
+---`Method Private Instance`
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['StatusEffect'].GetPosition = function(entity, targets, worldPosition) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISerializableEntity
+---@return Barotrauma.Character
+_G['StatusEffect'].GetCharacterFromTarget = function(target) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['StatusEffect'].RemoveCharacter = function(character) end
+
+---`Method Private Instance`
+---@param chosenItemSpawnInfo Barotrauma.StatusEffect.ItemSpawnInfo
+---@param entity Barotrauma.Entity
+---@param sourceBody Barotrauma.PhysicsBody
+---@param position Microsoft.Xna.Framework.Vector2
+---@param targetEntity Barotrauma.Entity
+_G['StatusEffect'].SpawnItem = function(chosenItemSpawnInfo, entity, sourceBody, position, targetEntity) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@param entity Barotrauma.Entity
+_G['StatusEffect'].TryTriggerAnimation = function(target, entity) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISerializableEntity
+---@param property Barotrauma.SerializableProperty
+---@param value System.Object
+---@param deltaTime System.Single
+_G['StatusEffect'].ApplyToProperty = function(target, property, value, deltaTime) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['StatusEffect'].UpdateAll = function(deltaTime) end
+
+---`Method Private Instance`
+---@param entity Barotrauma.Entity
+---@param targetCharacter Barotrauma.Character
+---@param deltaTime System.Single
+---@return System.Single
+_G['StatusEffect'].GetAfflictionMultiplier = function(entity, targetCharacter, deltaTime) end
+
+---`Method Private Instance`
+---@param affliction Barotrauma.Affliction
+---@param entity Barotrauma.Entity
+---@param targetCharacter Barotrauma.Character
+---@param deltaTime System.Single
+---@param multiplyByMaxVitality System.Boolean
+---@return Barotrauma.Affliction
+_G['StatusEffect'].GetMultipliedAffliction = function(affliction, entity, targetCharacter, deltaTime, multiplyByMaxVitality) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param item Barotrauma.Item
+---@param limb Barotrauma.Limb
+---@param affliction Barotrauma.Affliction
+---@param result Barotrauma.AttackResult
+_G['StatusEffect'].RegisterTreatmentResults = function(user, item, limb, affliction, result) end
+
+---`Method Public Static`
+_G['StatusEffect'].StopAll = function() end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+_G['StatusEffect'].AddTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['StatusEffect'].HasTag = function(tag) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'] = function(element, parentDebugName) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'].__new = function(element, parentDebugName) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'] = function(element, parentDebugName) end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.StatusEffect
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect
+_G['StatusEffect'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/server/_00007FFD968369E0.lua b/Meta/Types/server/_00007FFD968369E0.lua
new file mode 100644
index 0000000..0d6e149
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968369E0.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.StatusEffect.AbilityStatusEffectIdentifier : Barotrauma.Abilities.AbilityObject
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EffectIdentifier Barotrauma.Identifier
+_G['StatusEffect']['AbilityStatusEffectIdentifier'] = {}
+
+---`Constructor Public Instance`
+---@param effectIdentifier Barotrauma.Identifier
+---@return Barotrauma.StatusEffect.AbilityStatusEffectIdentifier
+_G['StatusEffect']['AbilityStatusEffectIdentifier'] = function(effectIdentifier) end
+
+---`Constructor Public Instance`
+---@param effectIdentifier Barotrauma.Identifier
+---@return Barotrauma.StatusEffect.AbilityStatusEffectIdentifier
+_G['StatusEffect']['AbilityStatusEffectIdentifier'].__new = function(effectIdentifier) end
+
diff --git a/Meta/Types/server/_00007FFD96836F28.lua b/Meta/Types/server/_00007FFD96836F28.lua
new file mode 100644
index 0000000..c7b52f9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96836F28.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.StatusEffect.CharacterSpawnInfo : System.Object
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Count System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferBuffs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferAfflictions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TotalMaxCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Stun System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionOnSpawn Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionStrength System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TransferControl System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RemovePreviousCharacter System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritEventTags System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritTeam System.Boolean
+_G['StatusEffect']['CharacterSpawnInfo'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.CharacterSpawnInfo
+_G['StatusEffect']['CharacterSpawnInfo'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.CharacterSpawnInfo
+_G['StatusEffect']['CharacterSpawnInfo'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/server/_00007FFD968370E8.lua b/Meta/Types/server/_00007FFD968370E8.lua
new file mode 100644
index 0000000..a4c3028
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968370E8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.StatusEffect.GiveSkill : System.Object
+---`Field Public Instance`
+---@field SkillIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Amount System.Single
+---`Field Public Instance`
+---@field TriggerTalents System.Boolean
+---`Field Public Instance`
+---@field UseDeltaTime System.Boolean
+---`Field Public Instance`
+---@field Proportional System.Boolean
+---`Field Public Instance`
+---@field AlwayShowNotification System.Boolean
+_G['StatusEffect']['GiveSkill'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.GiveSkill
+_G['StatusEffect']['GiveSkill'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.StatusEffect.GiveSkill
+_G['StatusEffect']['GiveSkill'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/server/_00007FFD96837248.lua b/Meta/Types/server/_00007FFD96837248.lua
new file mode 100644
index 0000000..375b96f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96837248.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.StatusEffect.GiveTalentInfo : System.Object
+---`Field Public Instance`
+---@field TalentIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field GiveRandom System.Boolean
+_G['StatusEffect']['GiveTalentInfo'] = {}
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param _ System.String
+---@return Barotrauma.StatusEffect.GiveTalentInfo
+_G['StatusEffect']['GiveTalentInfo'] = function(element, _) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param _ System.String
+---@return Barotrauma.StatusEffect.GiveTalentInfo
+_G['StatusEffect']['GiveTalentInfo'].__new = function(element, _) end
+
diff --git a/Meta/Types/server/_00007FFD968375A0.lua b/Meta/Types/server/_00007FFD968375A0.lua
new file mode 100644
index 0000000..f2dc307
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968375A0.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.DelayedEffect : Barotrauma.StatusEffect
+---`Field Private Instance`
+---@field delayType Barotrauma.DelayedEffect.DelayTypes
+---`Field Private Instance`
+---@field delay System.Single
+---`Field Public Static`
+---@field DelayList (System.Collections.Generic.List*1Barotrauma*DelayedListElement)|(Barotrauma.DelayedListElement[])
+_G['DelayedEffect'] = {}
+
+---`Method Public Instance Virtual`
+---@overload fun(type:Barotrauma.ActionType, deltaTime:System.Single, entity:Barotrauma.Entity, target:Barotrauma.ISerializableEntity, worldPosition?:System.Nullable*1Microsoft*Xna*Framework*Vector2)
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param entity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['DelayedEffect'].Apply = function(type, deltaTime, entity, targets, worldPosition) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['DelayedEffect'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.DelayedEffect
+---@return Barotrauma.DelayedEffect
+_G['DelayedEffect'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96837758.lua b/Meta/Types/server/_00007FFD96837758.lua
new file mode 100644
index 0000000..e2c5028
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96837758.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.DelayedListElement : System.Object
+---`Field Public Instance`
+---@field Parent Barotrauma.DelayedEffect
+---`Field Public Instance`
+---@field Entity Barotrauma.Entity
+---`Field Public Instance`
+---@field WorldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field StartPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field Targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Public Instance`
+---@field Delay System.Single
+_G['DelayedListElement'] = {}
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.DelayedEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param delay System.Single
+---@param worldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param startPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.DelayedListElement
+_G['DelayedListElement'] = function(parentEffect, parentEntity, targets, delay, worldPosition, startPosition) end
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.DelayedEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param delay System.Single
+---@param worldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param startPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.DelayedListElement
+_G['DelayedListElement'].__new = function(parentEffect, parentEntity, targets, delay, worldPosition, startPosition) end
+
diff --git a/Meta/Types/server/_00007FFD96837970.lua b/Meta/Types/server/_00007FFD96837970.lua
new file mode 100644
index 0000000..4549762
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96837970.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.DurationListElement : System.Object
+---`Field Public Instance`
+---@field Parent Barotrauma.StatusEffect
+---`Field Public Instance`
+---@field Entity Barotrauma.Entity
+---`Field Public Instance`
+---@field Targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Public Instance`
+---@field Timer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Duration System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field User Barotrauma.Character
+_G['DurationListElement'] = {}
+
+---`Method Public Instance`
+---@param duration System.Single
+---@param newUser Barotrauma.Character
+_G['DurationListElement'].Reset = function(duration, newUser) end
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.StatusEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param duration System.Single
+---@param user Barotrauma.Character
+---@return Barotrauma.DurationListElement
+_G['DurationListElement'] = function(parentEffect, parentEntity, targets, duration, user) end
+
+---`Constructor Public Instance`
+---@param parentEffect Barotrauma.StatusEffect
+---@param parentEntity Barotrauma.Entity
+---@param targets (System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity)|(fun():(Barotrauma.ISerializableEntity))
+---@param duration System.Single
+---@param user Barotrauma.Character
+---@return Barotrauma.DurationListElement
+_G['DurationListElement'].__new = function(parentEffect, parentEntity, targets, duration, user) end
+
diff --git a/Meta/Types/server/_00007FFD96837D68.lua b/Meta/Types/server/_00007FFD96837D68.lua
new file mode 100644
index 0000000..3c63d46
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96837D68.lua
@@ -0,0 +1,181 @@
+---@meta
+---@class Barotrauma.OutpostGenerator : System.Object
+---`Field Private Static`
+---@field usedForceOutpostModule Barotrauma.SubmarineInfo
+---`Field Private Static`
+---@field GapPositions (Barotrauma.GapPosition-arr)|(Barotrauma.OutpostModuleInfo.GapPosition[])
+_G['OutpostGenerator'] = {}
+
+---`Method Public Static`
+---@overload fun(generationParams:Barotrauma.OutpostGenerationParams, locationType:Barotrauma.LocationType, onlyEntrance?:System.Boolean, allowInvalidOutpost?:System.Boolean):(Barotrauma.Submarine)
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@param location Barotrauma.Location
+---@param onlyEntrance? System.Boolean
+---@param allowInvalidOutpost? System.Boolean
+---@return Barotrauma.Submarine
+_G['OutpostGenerator'].Generate = function(generationParams, location, onlyEntrance, allowInvalidOutpost) end
+
+---`Method Private Static`
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@param locationType Barotrauma.LocationType
+---@param location Barotrauma.Location
+---@param onlyEntrance? System.Boolean
+---@param allowInvalidOutpost? System.Boolean
+---@return Barotrauma.Submarine
+_G['OutpostGenerator'].Generate = function(generationParams, locationType, location, onlyEntrance, allowInvalidOutpost) end
+
+---`Method Private Static`
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@param outpostModuleFiles (Barotrauma.OutpostModuleFile-arr)|(Barotrauma.OutpostModuleFile[])
+---@param sub Barotrauma.Submarine
+---@param locationType Barotrauma.LocationType
+---@param location Barotrauma.Location
+---@param onlyEntrance? System.Boolean
+---@param allowInvalidOutpost? System.Boolean
+---@return Barotrauma.Submarine
+_G['OutpostGenerator'].GenerateFromModules = function(generationParams, outpostModuleFiles, sub, locationType, location, onlyEntrance, allowInvalidOutpost) end
+
+---`Method Private Static`
+---@param modules (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---@param location Barotrauma.Location
+---@param generationParams Barotrauma.OutpostGenerationParams
+---@return (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['OutpostGenerator'].SelectModules = function(modules, location, generationParams) end
+
+---`Method Private Static`
+---@param currentModule Barotrauma.OutpostGenerator.PlacedModule
+---@param availableModules (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param pendingModuleFlags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param selectedModules (System.Collections.Generic.List*1Barotrauma*OutpostGenerator*PlacedModule)|(Barotrauma.OutpostGenerator.PlacedModule[])
+---@param locationType Barotrauma.LocationType
+---@param tryReplacingCurrentModule? System.Boolean
+---@param allowExtendBelowInitialModule? System.Boolean
+---@param allowDifferentLocationType? System.Boolean
+---@return System.Boolean
+_G['OutpostGenerator'].AppendToModule = function(currentModule, availableModules, pendingModuleFlags, selectedModules, locationType, tryReplacingCurrentModule, allowExtendBelowInitialModule, allowDifferentLocationType) end
+
+---`Method Private Static`
+---@param currentModule Barotrauma.OutpostGenerator.PlacedModule
+---@param gapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@param availableModules (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param pendingModuleFlags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param selectedModules (System.Collections.Generic.List*1Barotrauma*OutpostGenerator*PlacedModule)|(Barotrauma.OutpostGenerator.PlacedModule[])
+---@param locationType Barotrauma.LocationType
+---@param allowDifferentLocationType System.Boolean
+---@return Barotrauma.OutpostGenerator.PlacedModule
+_G['OutpostGenerator'].AppendModule = function(currentModule, gapPosition, availableModules, pendingModuleFlags, selectedModules, locationType, allowDifferentLocationType) end
+
+---`Method Private Static`
+---@param modules1 (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param modules2 (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param module1 Barotrauma.PlacedModule-ref
+---@param module2 Barotrauma.PlacedModule-ref
+---@return System.Boolean
+_G['OutpostGenerator'].FindOverlap = function(modules1, modules2, module1, module2) end
+
+---`Method Private Static`
+---@param module1 Barotrauma.OutpostGenerator.PlacedModule
+---@param module2 Barotrauma.OutpostGenerator.PlacedModule
+---@return System.Boolean
+_G['OutpostGenerator'].ModulesOverlap = function(module1, module2) end
+
+---`Method Private Static`
+---@param modules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@return System.Boolean
+_G['OutpostGenerator'].ModuleOverlapsWithModuleConnections = function(modules) end
+
+---`Method Private Static`
+---@param movableModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param module1 Barotrauma.OutpostGenerator.PlacedModule
+---@param module2 Barotrauma.OutpostGenerator.PlacedModule
+---@param allmodules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param solution System.Collections.Generic.Dictionary
+---@return System.Boolean
+_G['OutpostGenerator'].FindOverlapSolution = function(movableModules, module1, module2, allmodules, solution) end
+
+---`Method Private Static`
+---@overload fun(modules:(System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo)), moduleFlag:Barotrauma.Identifier, locationType:Barotrauma.LocationType):(Barotrauma.SubmarineInfo)
+---@param prevModule Barotrauma.OutpostModuleInfo
+---@param modules (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---@param moduleFlag Barotrauma.Identifier
+---@param gapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@param locationType Barotrauma.LocationType
+---@param allowDifferentLocationType System.Boolean
+---@return Barotrauma.SubmarineInfo
+_G['OutpostGenerator'].GetRandomModule = function(prevModule, modules, moduleFlag, gapPosition, locationType, allowDifferentLocationType) end
+
+---`Method Private Static`
+---@param startModule Barotrauma.OutpostGenerator.PlacedModule
+---@param allModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param subsequentModules System.Collections.Generic.List
+_G['OutpostGenerator'].GetSubsequentModules = function(startModule, allModules, subsequentModules) end
+
+---`Method Private Static`
+---@param thisGapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@return Barotrauma.OutpostModuleInfo.GapPosition
+_G['OutpostGenerator'].GetOpposingGapPosition = function(thisGapPosition) end
+
+---`Method Private Static`
+---@param thisGapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@return Microsoft.Xna.Framework.Vector2
+_G['OutpostGenerator'].GetMoveDir = function(thisGapPosition) end
+
+---`Method Private Static`
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---@param gapPosition Barotrauma.OutpostModuleInfo.GapPosition
+---@return Barotrauma.Gap
+_G['OutpostGenerator'].GetGap = function(entities, gapPosition) end
+
+---`Method Private Static`
+---@param from Barotrauma.OutpostModuleInfo
+---@param to Barotrauma.OutpostModuleInfo
+---@return System.Boolean
+_G['OutpostGenerator'].CanAttachTo = function(from, to) end
+
+---`Method Private Static`
+---@param sub Barotrauma.Submarine
+---@param locationType Barotrauma.LocationType
+---@param placedModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param availableModules (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---@param allEntities (System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity)|({[Barotrauma.OutpostGenerator.PlacedModule]:((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))})
+---@param isRuin System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['OutpostGenerator'].GenerateHallways = function(sub, locationType, placedModules, availableModules, allEntities, isRuin) end
+
+---`Method Private Static`
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['OutpostGenerator'].LinkOxygenGenerators = function(entities) end
+
+---`Method Private Static`
+---@param sub Barotrauma.Submarine
+---@param location Barotrauma.Location
+_G['OutpostGenerator'].EnableFactionSpecificEntities = function(sub, location) end
+
+---`Method Private Static`
+---@param placedModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param entities (System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity)|({[Barotrauma.OutpostGenerator.PlacedModule]:((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))})
+---@param removeUnusedGaps System.Boolean
+_G['OutpostGenerator'].LockUnusedDoors = function(placedModules, entities, removeUnusedGaps) end
+
+---`Method Private Static`
+---@param placedModules (System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule)|(fun():(Barotrauma.OutpostGenerator.PlacedModule))
+---@param entities (System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity)|({[Barotrauma.OutpostGenerator.PlacedModule]:((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))})
+_G['OutpostGenerator'].AlignLadders = function(placedModules, entities) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+_G['OutpostGenerator'].PowerUpOutpost = function(sub) end
+
+---`Method Public Static`
+---@param location Barotrauma.Location
+---@param outpost Barotrauma.Submarine
+_G['OutpostGenerator'].SpawnNPCs = function(location, outpost) end
+
+---`Constructor Private Static`
+---@return Barotrauma.OutpostGenerator
+_G['OutpostGenerator'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.OutpostGenerator
+_G['OutpostGenerator'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96838150.lua b/Meta/Types/server/_00007FFD96838150.lua
new file mode 100644
index 0000000..5c184f5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96838150.lua
@@ -0,0 +1,125 @@
+---@meta
+---@class Barotrauma.FireSource : System.Object
+---`Field NonPublic Instance`
+---@field hull Barotrauma.Hull
+---`Field NonPublic Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field size Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field submarine Barotrauma.Submarine
+---`Field NonPublic Instance`
+---@field removed System.Boolean
+---`Field Private Instance`
+---@field burnDecals (System.Collections.Generic.List*1Barotrauma*Decal)|(Barotrauma.Decal[])
+---`Field Public Instance`
+---@field SourceCharacter Barotrauma.Character
+---`Field Private Static`
+---@field OxygenConsumption System.Single
+---`Field Private Static`
+---@field GrowSpeed System.Single
+---`Field Private Static`
+---@field MaxDamageRange System.Single
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DamageRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamagesItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamagesCharacters System.Boolean
+---`Getter Public Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---@field Hull Barotrauma.Hull
+_G['FireSource'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['FireSource'].LimitSize = function() end
+
+---`Method Public Static`
+---@overload fun(fireSources:(System.Collections.Generic.List*1Barotrauma*FireSource)|(Barotrauma.FireSource[]), deltaTime:System.Single)
+---@param fireSources (System.Collections.Generic.List*1Barotrauma*DummyFireSource)|(Barotrauma.DummyFireSource[])
+---@param deltaTime System.Single
+_G['FireSource'].UpdateAll = function(fireSources, deltaTime) end
+
+---`Method Private Instance`
+---@param fireSource Barotrauma.FireSource
+---@return System.Boolean
+_G['FireSource'].CheckOverLap = function(fireSource) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['FireSource'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['FireSource'].ReduceOxygen = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param growModifier System.Single
+---@param deltaTime System.Single
+_G['FireSource'].AdjustXPos = function(growModifier, deltaTime) end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param particleHull Barotrauma.Hull
+_G['FireSource'].OnChangeHull = function(pos, particleHull) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FireSource'].DamageCharacters = function(deltaTime) end
+
+---`Method Public Instance`
+---@overload fun(c:Barotrauma.Character, damageRange:System.Single):(System.Boolean)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param damageRange System.Single
+---@return System.Boolean
+_G['FireSource'].IsInDamageRange = function(worldPosition, damageRange) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FireSource'].DamageItems = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FireSource'].HullWaterExtinguish = function(deltaTime) end
+
+---`Method Public Instance`
+---@overload fun(deltaTime:System.Single, amount:System.Single)
+---@param deltaTime System.Single
+---@param amount System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['FireSource'].Extinguish = function(deltaTime, amount, worldPosition) end
+
+---`Method Public Instance`
+_G['FireSource'].Remove = function() end
+
+---`Constructor Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param sourceCharacter? Barotrauma.Character
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.FireSource
+_G['FireSource'] = function(worldPosition, spawningHull, sourceCharacter, isNetworkMessage) end
+
+---`Constructor Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param sourceCharacter? Barotrauma.Character
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.FireSource
+_G['FireSource'].__new = function(worldPosition, spawningHull, sourceCharacter, isNetworkMessage) end
+
diff --git a/Meta/Types/server/_00007FFD96838348.lua b/Meta/Types/server/_00007FFD96838348.lua
new file mode 100644
index 0000000..6eda206
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96838348.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.DummyFireSource : Barotrauma.FireSource
+---`Field Private Instance`
+---@field maxSize Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field CausedByPsychosis System.Boolean
+---`Getter Public Instance Virtual`
+---@field DamageRange System.Single
+_G['DummyFireSource'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['DummyFireSource'].LimitSize = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param growModifier System.Single
+---@param deltaTime System.Single
+_G['DummyFireSource'].AdjustXPos = function(growModifier, deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['DummyFireSource'].ReduceOxygen = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param maxSize Microsoft.Xna.Framework.Vector2
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.DummyFireSource
+_G['DummyFireSource'] = function(maxSize, worldPosition, spawningHull, isNetworkMessage) end
+
+---`Constructor Public Instance`
+---@param maxSize Microsoft.Xna.Framework.Vector2
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param spawningHull? Barotrauma.Hull
+---@param isNetworkMessage? System.Boolean
+---@return Barotrauma.DummyFireSource
+_G['DummyFireSource'].__new = function(maxSize, worldPosition, spawningHull, isNetworkMessage) end
+
diff --git a/Meta/Types/server/_00007FFD968388B0.lua b/Meta/Types/server/_00007FFD968388B0.lua
new file mode 100644
index 0000000..60acce0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968388B0.lua
@@ -0,0 +1,148 @@
+---@meta
+---@class Barotrauma.Explosion : System.Object
+---`Field Public Instance`
+---@field Attack Barotrauma.Attack
+---`Field Private Instance`
+---@field force System.Single
+---`Field Private Instance`
+---@field screenColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field screenColorRange System.Single
+---`Field Private Instance`
+---@field screenColorDuration System.Single
+---`Field Private Instance`
+---@field sparks System.Boolean
+---`Field Private Instance`
+---@field shockwave System.Boolean
+---`Field Private Instance`
+---@field flames System.Boolean
+---`Field Private Instance`
+---@field smoke System.Boolean
+---`Field Private Instance`
+---@field flash System.Boolean
+---`Field Private Instance`
+---@field debris System.Boolean
+---`Field Private Instance`
+---@field underwaterBubble System.Boolean
+---`Field Private Instance`
+---@field flashColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field playTinnitus System.Boolean
+---`Field Private Instance`
+---@field applyFireEffects System.Boolean
+---`Field Private Instance`
+---@field ignoreFireEffectsForTags (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field IgnoredCover (System.Collections.Generic.IEnumerable*1Barotrauma*Structure)|(fun():(Barotrauma.Structure))
+---`Field Private Instance`
+---@field flashDuration System.Single
+---`Field Private Instance`
+---@field flashRange System.Nullable*1System*Single
+---`Field Private Instance`
+---@field decal System.String
+---`Field Private Instance`
+---@field decalSize System.Single
+---`Field Public Instance`
+---@field OnlyInside System.Boolean
+---`Field Public Instance`
+---@field OnlyOutside System.Boolean
+---`Field Public Instance`
+---@field PlayDamageSounds System.Boolean
+---`Field Private Instance`
+---@field itemRepairStrength System.Single
+---`Field Public Instance`
+---@field IgnoredSubmarines (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Public Instance`
+---@field IgnoredCharacters (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Static`
+---@field damagedStructures (System.Collections.Generic.Dictionary*1Barotrauma*Structure*1System*Single)|({[Barotrauma.Structure]:(System.Single)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CameraShake System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CameraShakeRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreCover System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceFalloff System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EmpStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BallastFloraDamage System.Single
+_G['Explosion'] = {}
+
+---`Method Public Instance`
+_G['Explosion'].DisableParticles = function() end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param damageSource Barotrauma.Entity
+---@param attacker? Barotrauma.Character
+_G['Explosion'].Explode = function(worldPosition, damageSource, attacker) end
+
+---`Method Private Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param force System.Single
+---@param damageSource Barotrauma.Entity
+---@param attacker Barotrauma.Character
+_G['Explosion'].DamageCharacters = function(worldPosition, attack, force, damageSource, attacker) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param worldRange System.Single
+---@param damage System.Single
+---@param levelWallDamage System.Single
+---@param attacker? Barotrauma.Character
+---@param ignoredSubmarines? (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---@param emitWallDamageParticles? System.Boolean
+---@param createWallDamageProjectiles? System.Boolean
+---@param distanceFalloff? System.Boolean
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Structure*1System*Single)|({[Barotrauma.Structure]:(System.Single)})
+_G['Explosion'].RangedStructureDamage = function(worldPosition, worldRange, damage, levelWallDamage, attacker, ignoredSubmarines, emitWallDamageParticles, createWallDamageProjectiles, distanceFalloff) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param worldRange System.Single
+---@param damage System.Single
+---@param attacker? Barotrauma.Character
+---@param distanceFalloff? System.Boolean
+_G['Explosion'].RangedBallastFloraDamage = function(worldPosition, worldRange, damage, attacker, distanceFalloff) end
+
+---`Method Private Static`
+---@param explosionSimPos Microsoft.Xna.Framework.Vector2
+---@param explosionWorldPos Microsoft.Xna.Framework.Vector2
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param ignoredCover? (System.Collections.Generic.IEnumerable*1Barotrauma*Structure)|(fun():(Barotrauma.Structure))
+---@return System.Single
+_G['Explosion'].GetObstacleDamageMultiplier = function(explosionSimPos, explosionWorldPos, targetSimPos, ignoredCover) end
+
+---`Constructor Public Instance`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(range:System.Single, force:System.Single, damage:System.Single, structureDamage:System.Single, itemDamage:System.Single, empStrength?:System.Single, ballastFloraStrength?:System.Single):Barotrauma.Explosion
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String):Barotrauma.Explosion
+---@return Barotrauma.Explosion
+_G['Explosion'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968389B0.lua b/Meta/Types/server/_00007FFD968389B0.lua
new file mode 100644
index 0000000..06d4d64
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968389B0.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.TransitionMode : System.Enum
+---`Field Public Static`
+---@field Linear Barotrauma.TransitionMode
+---`Field Public Static`
+---@field Smooth Barotrauma.TransitionMode
+---`Field Public Static`
+---@field Smoother Barotrauma.TransitionMode
+---`Field Public Static`
+---@field EaseIn Barotrauma.TransitionMode
+---`Field Public Static`
+---@field EaseOut Barotrauma.TransitionMode
+---`Field Public Static`
+---@field Exponential Barotrauma.TransitionMode
+_G['TransitionMode'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96838BB0.lua b/Meta/Types/server/_00007FFD96838BB0.lua
new file mode 100644
index 0000000..d9327a9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96838BB0.lua
@@ -0,0 +1,92 @@
+---@meta
+---@class Barotrauma.AbilityEffectType : System.Enum
+---`Field Public Static`
+---@field Undefined Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field None Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttack Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttackResult Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttacked Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAttackedResult Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGainSkillPoint Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllyGainSkillPoint Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRepairComplete Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemFabricationSkillGain Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemFabricatedAmount Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemFabricatedIngredients Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllyItemFabricatedAmount Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnOpenItemContainer Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnUseRangedWeapon Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnReduceAffliction Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAddDamageAffliction Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRagdoll Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRoundEnd Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnLootCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAnyMissionCompleted Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllMissionsCompleted Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGiveOrder Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnCrewKillCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnKillCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnDieToCharacter Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnAllyGainMissionExperience Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGainMissionExperience Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGainMissionMoney Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnCrewGainMissionReputation Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnLocationDiscovered Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructed Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructedByAlly Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructedMaterial Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemDeconstructedInventory Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnStopTinkering Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemPicked Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnItemSelected Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnGeneticMaterialCombinedOrRefined Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnCrewGeneticMaterialCombinedOrRefined Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field AfterSubmarineAttacked Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnApplyTreatment Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnStatusEffectIdentifier Barotrauma.AbilityEffectType
+---`Field Public Static`
+---@field OnRepairedOutsideLeak Barotrauma.AbilityEffectType
+_G['AbilityEffectType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96838D58.lua b/Meta/Types/server/_00007FFD96838D58.lua
new file mode 100644
index 0000000..b82cbd1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96838D58.lua
@@ -0,0 +1,168 @@
+---@meta
+---@class Barotrauma.StatTypes : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field HelmSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field WeaponsSkillBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field HelmSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field WeaponsSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalSkillOverride Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaximumHealthMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MovementSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field WalkingSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field SwimmingSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field PropulsionSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field BuffDurationMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field DebuffDurationMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalItemEffectivenessMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field FlowResistance Barotrauma.StatTypes
+---`Field Public Static`
+---@field AttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field TeamAttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RangedAttackSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field TurretAttackSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field TurretPowerCostReduction Barotrauma.StatTypes
+---`Field Public Static`
+---@field TurretChargeSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MeleeAttackSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MeleeAttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RangedSpreadReduction Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalRepairSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalRepairSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field DeconstructorSpeedMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairToolStructureRepairMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairToolStructureDamageMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field RepairToolDeattachTimeMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaxRepairConditionMultiplierMechanical Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaxRepairConditionMultiplierElectrical Barotrauma.StatTypes
+---`Field Public Static`
+---@field IncreaseFabricationQuality Barotrauma.StatTypes
+---`Field Public Static`
+---@field GeneticMaterialRefineBonus Barotrauma.StatTypes
+---`Field Public Static`
+---@field GeneticMaterialTaintedProbabilityReductionOnCombine Barotrauma.StatTypes
+---`Field Public Static`
+---@field SkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExtraLevelGain Barotrauma.StatTypes
+---`Field Public Static`
+---@field HelmSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field WeaponsSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field ElectricalSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MechanicalSkillGainSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field MedicalItemApplyingMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field BuffItemApplyingMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field PoisonMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field TinkeringDuration Barotrauma.StatTypes
+---`Field Public Static`
+---@field TinkeringStrength Barotrauma.StatTypes
+---`Field Public Static`
+---@field TinkeringDamage Barotrauma.StatTypes
+---`Field Public Static`
+---@field ReputationGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ReputationLossMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MissionMoneyGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExperienceGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MissionExperienceGainMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExtraMissionCount Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExtraSpecialSalesCount Barotrauma.StatTypes
+---`Field Public Static`
+---@field StoreSellMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field StoreBuyMultiplierAffiliated Barotrauma.StatTypes
+---`Field Public Static`
+---@field StoreBuyMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ShipyardBuyMultiplierAffiliated Barotrauma.StatTypes
+---`Field Public Static`
+---@field ShipyardBuyMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field MaxAttachableCount Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExplosionRadiusMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field ExplosionDamageMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field FabricationSpeed Barotrauma.StatTypes
+---`Field Public Static`
+---@field BallastFloraDamageMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field HoldBreathMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field Apprenticeship Barotrauma.StatTypes
+---`Field Public Static`
+---@field CPRBoost Barotrauma.StatTypes
+---`Field Public Static`
+---@field LockedTalents Barotrauma.StatTypes
+---`Field Public Static`
+---@field HireCostMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field InventoryExtraStackSize Barotrauma.StatTypes
+---`Field Public Static`
+---@field SoundRangeMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field SightRangeMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field DualWieldingPenaltyReduction Barotrauma.StatTypes
+---`Field Public Static`
+---@field NaturalMeleeAttackMultiplier Barotrauma.StatTypes
+---`Field Public Static`
+---@field NaturalRangedAttackMultiplier Barotrauma.StatTypes
+_G['StatTypes'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96839020.lua b/Meta/Types/server/_00007FFD96839020.lua
new file mode 100644
index 0000000..34385fd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96839020.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.Screen : System.Object
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Selected Barotrauma.Screen
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Public Instance Virtual`
+---@field IsEditor System.Boolean
+_G['GUI']['Screen'] = {}
+
+---`Method Public Static`
+_G['GUI']['Screen'].SelectNull = function() end
+
+---`Method Public Instance Virtual`
+_G['GUI']['Screen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+_G['GUI']['Screen'].Select = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['GUI']['Screen'].Update = function(deltaTime) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Screen
+_G['GUI']['Screen'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Screen
+_G['GUI']['Screen'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96839240.lua b/Meta/Types/server/_00007FFD96839240.lua
new file mode 100644
index 0000000..fa74660
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96839240.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.GameScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field updateLock System.Object
+---`Field Private Instance`
+---@field physicsTime System.Double
+---`Getter Public Instance Virtual`
+---@field Cam Barotrauma.Camera
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GameTime System.Double
+_G['GameScreen'] = {}
+
+---`Method Public Instance Virtual`
+_G['GameScreen'].Select = function() end
+
+---`Method Public Instance Virtual`
+_G['GameScreen'].Deselect = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Double
+_G['GameScreen'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['GameScreen'].ExecutePhysics = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.GameScreen
+_G['GameScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.GameScreen
+_G['GameScreen'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968396D0.lua b/Meta/Types/server/_00007FFD968396D0.lua
new file mode 100644
index 0000000..9214c5a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968396D0.lua
@@ -0,0 +1,94 @@
+---@meta
+---@class Barotrauma.NetLobbyScreen : Barotrauma.Screen
+---`Field Private Instance`
+---@field selectedSub Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field selectedEnemySub Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field selectedShuttle Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field RadiationEnabled System.Boolean
+---`Field Private Instance`
+---@field selectedModeIndex System.Int32
+---`Field Private Instance`
+---@field subs (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Private Instance`
+---@field lastUpdateID System.UInt16
+---`Field Private Instance`
+---@field levelSeed System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedSub Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedEnemySub Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedShuttle Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---@field GameModes (Barotrauma.GameModePreset-arr)|(Barotrauma.GameModePreset[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedModeIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedModeIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field SelectedMode Barotrauma.GameModePreset
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MissionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelSeed System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastUpdateID System.UInt16
+_G['NetLobbyScreen'] = {}
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IReadOnlyList*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+_G['NetLobbyScreen'].GetSubList = function() end
+
+---`Method Public Instance`
+---@param sub Barotrauma.SubmarineInfo
+_G['NetLobbyScreen'].AddSub = function(sub) end
+
+---`Method Public Instance`
+---@param enabled System.Boolean
+_G['NetLobbyScreen'].ToggleCampaignMode = function(enabled) end
+
+---`Method Public Instance Virtual`
+_G['NetLobbyScreen'].Select = function() end
+
+---`Method Public Instance`
+_G['NetLobbyScreen'].RandomizeSettings = function() end
+
+---`Method Public Instance`
+---@param difficulty System.Single
+_G['NetLobbyScreen'].SetLevelDifficulty = function(difficulty) end
+
+---`Method Public Instance`
+---@param botCount System.Int32
+_G['NetLobbyScreen'].SetBotCount = function(botCount) end
+
+---`Method Public Instance`
+---@param botSpawnMode Barotrauma.Networking.BotSpawnMode
+_G['NetLobbyScreen'].SetBotSpawnMode = function(botSpawnMode) end
+
+---`Method Public Instance`
+---@param probability System.Single
+_G['NetLobbyScreen'].SetTraitorProbability = function(probability) end
+
+---`Method Public Instance`
+---@param dangerLevel System.Int32
+_G['NetLobbyScreen'].SetTraitorDangerLevel = function(dangerLevel) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.NetLobbyScreen
+_G['NetLobbyScreen'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.NetLobbyScreen
+_G['NetLobbyScreen'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9683A5F0.lua b/Meta/Types/server/_00007FFD9683A5F0.lua
new file mode 100644
index 0000000..48f200b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683A5F0.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.GameSettings : System.Object
+---`Field Private Static`
+---@field currentConfig Barotrauma.GameSettings.Config
+---`Field Public Static`
+---@field PlayerConfigPath System.String
+---`Getter Public Static`
+---@field CurrentConfig Barotrauma.Config-ref
+_G['GameSettings'] = {}
+
+---`Method Public Static`
+_G['GameSettings'].Init = function() end
+
+---`Method Public Static`
+---@param newConfig Barotrauma.Config-ref
+_G['GameSettings'].SetCurrentConfig = function(newConfig) end
+
+---`Method Public Static`
+_G['GameSettings'].SaveCurrentConfig = function() end
+
diff --git a/Meta/Types/server/_00007FFD9683B020.lua b/Meta/Types/server/_00007FFD9683B020.lua
new file mode 100644
index 0000000..97d77be
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683B020.lua
@@ -0,0 +1,287 @@
+---@meta
+---@class Barotrauma.GameSession : System.Object
+---`Field Public Instance`
+---@field EventManager Barotrauma.EventManager
+---`Field Public Instance`
+---@field GameMode Barotrauma.GameMode
+---`Field Private Instance`
+---@field dummyLocations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---`Field Public Instance`
+---@field CrewManager Barotrauma.CrewManager
+---`Field Public Instance`
+---@field TimeSpentCleaning System.Double
+---`Field Public Instance`
+---@field TimeSpentPainting System.Double
+---`Field Private Instance`
+---@field missions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Private Instance`
+---@field casualties (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field permadeathsPerAccount (System.Collections.Generic.Dictionary*1Barotrauma*Option*2Barotrauma*Networking*AccountId*1System*Int32)|({[Barotrauma.Option*1Barotrauma*Networking*AccountId]:(System.Int32)})
+---`Field Public Instance`
+---@field WinningTeam System.Nullable*1Barotrauma*CharacterTeamType
+---`Field Public Instance`
+---@field ForceOutpostModule Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field OwnedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Private Instance`
+---@field LastEndRoundErrorMessageTime System.Double
+---`Field Public Static`
+---@field MinimumLoadingTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastSaveVersion System.Version
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RoundDuration System.Single
+---`Getter Public Instance`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field Casualties (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsRunning System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RoundEnding System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Level Barotrauma.Level
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LevelData Barotrauma.LevelData
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MirrorLevel System.Boolean
+---`Getter Public Instance`
+---@field Map Barotrauma.Map
+---`Getter Public Instance`
+---@field Campaign Barotrauma.CampaignMode
+---`Getter Public Instance`
+---@field StartLocation Barotrauma.Location
+---`Getter Public Instance`
+---@field EndLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubmarineInfo Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnemySubmarineInfo Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DataPath Barotrauma.CampaignDataPath
+---`Getter Public Instance`
+---@field TraitorsEnabled System.Boolean
+_G['GameSession'] = {}
+
+---`Method Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+_G['GameSession'].IncrementPermadeath = function(accountId) end
+
+---`Method Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return System.Int32
+_G['GameSession'].PermadeathCountForAccount = function(accountId) end
+
+---`Method Private Instance`
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines? (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+_G['GameSession'].InitOwnedSubs = function(submarineInfo, ownedSubmarines) end
+
+---`Method Private Instance`
+---@param gameModePreset Barotrauma.GameModePreset
+---@param seed System.String
+---@param selectedSub Barotrauma.SubmarineInfo
+---@param settings Barotrauma.CampaignSettings
+---@param missionPrefabs? (System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+---@param missionTypes? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return Barotrauma.GameMode
+_G['GameSession'].InstantiateGameMode = function(gameModePreset, seed, selectedSub, settings, missionPrefabs, missionTypes) end
+
+---`Method Public Static`
+---@overload fun(levelData:Barotrauma.LevelData, forceLocationType?:Barotrauma.LocationType):((Barotrauma.Location-arr)|(Barotrauma.Location[]))
+---@param seed System.String
+---@param forceLocationType? Barotrauma.LocationType
+---@return (Barotrauma.Location-arr)|(Barotrauma.Location[])
+_G['GameSession'].CreateDummyLocations = function(seed, forceLocationType) end
+
+---`Method Private Static`
+---@param rand System.Random
+---@param forceLocationType? Barotrauma.LocationType
+---@return (Barotrauma.Location-arr)|(Barotrauma.Location[])
+_G['GameSession'].CreateDummyLocations = function(rand, forceLocationType) end
+
+---`Method Public Static`
+---@param preset Barotrauma.GameModePreset
+---@return System.Boolean
+_G['GameSession'].ShouldApplyDisembarkPoints = function(preset) end
+
+---`Method Public Instance`
+_G['GameSession'].LoadPreviousSave = function() end
+
+---`Method Public Instance`
+---@param newSubmarine Barotrauma.SubmarineInfo
+---@param transferItems System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['GameSession'].SwitchSubmarine = function(newSubmarine, transferItems, client) end
+
+---`Method Public Instance`
+---@param newSubmarine Barotrauma.SubmarineInfo
+---@param client? Barotrauma.Networking.Client
+---@return System.Boolean
+_G['GameSession'].TryPurchaseSubmarine = function(newSubmarine, client) end
+
+---`Method Public Instance`
+---@param query Barotrauma.SubmarineInfo
+---@return System.Boolean
+_G['GameSession'].IsSubmarineOwned = function(query) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['GameSession'].IsCurrentLocationRadiated = function() end
+
+---`Method Public Instance`
+---@overload fun(levelSeed:System.String, difficulty?:System.Nullable*1System*Single, levelGenerationParams?:Barotrauma.LevelGenerationParams, forceBiome?:Barotrauma.Identifier)
+---@param levelData Barotrauma.LevelData
+---@param mirrorLevel? System.Boolean
+---@param startOutpost? Barotrauma.SubmarineInfo
+---@param endOutpost? Barotrauma.SubmarineInfo
+_G['GameSession'].StartRound = function(levelData, mirrorLevel, startOutpost, endOutpost) end
+
+---`Method Private Instance`
+---@param moduleInfo Barotrauma.SubmarineInfo
+---@param outpostSub Barotrauma.Submarine-ref
+---@return System.Boolean
+_G['GameSession'].TryGenerateStationAroundModule = function(moduleInfo, outpostSub) end
+
+---`Method Private Instance`
+---@param level Barotrauma.Level
+_G['GameSession'].InitializeLevel = function(level) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@param level Barotrauma.Level
+---@param placeAtStart? System.Boolean
+---@param forceDocking? System.Boolean
+_G['GameSession'].PlaceSubAtInitialPosition = function(sub, level, placeAtStart, forceDocking) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['GameSession'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return Barotrauma.Mission
+_G['GameSession'].GetMission = function(index) end
+
+---`Method Public Instance`
+---@param mission Barotrauma.Mission
+---@return System.Int32
+_G['GameSession'].GetMissionIndex = function(mission) end
+
+---`Method Public Instance`
+---@param missionIdentifiers (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['GameSession'].EnforceMissionOrder = function(missionIdentifiers) end
+
+---`Method Public Static`
+---@param type Barotrauma.CharacterType
+---@return (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+_G['GameSession'].GetSessionCrewCharacters = function(type) end
+
+---`Method Public Instance`
+---@param endMessage System.String
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+---@param traitorResults? System.Nullable*1Barotrauma*TraitorManager*TraitorResults
+_G['GameSession'].EndRound = function(endMessage, transitionType, traitorResults) end
+
+---`Method Public Static`
+---@return Barotrauma.PerkCollection
+_G['GameSession'].GetPerks = function() end
+
+---`Method Public Static`
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['GameSession'].ValidatedDisembarkPoints = function(preset, missionTypes) end
+
+---`Method Public Static`
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['GameSession'].ShouldIgnorePerksThatCanNotApplyWithoutSubmarine = function(preset, missionTypes) end
+
+---`Method Public Instance`
+---@param eventId System.String
+---@param traitorResults? System.Nullable*1Barotrauma*TraitorManager*TraitorResults
+_G['GameSession'].LogEndRoundStats = function(eventId, traitorResults) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['GameSession'].KillCharacter = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['GameSession'].ReviveCharacter = function(character) end
+
+---`Method Public Static`
+---@param contentPackageNames (System.Collections.Generic.IList*1System*String)|(System.String[])
+---@param errorMsg Barotrauma.LocalizedString-ref
+---@return System.Boolean
+_G['GameSession'].IsCompatibleWithEnabledContentPackages = function(contentPackageNames, errorMsg) end
+
+---`Method Public Instance`
+---@param filePath System.String
+---@param isSavingOnLoading System.Boolean
+_G['GameSession'].Save = function(filePath, isSavingOnLoading) end
+
+---`Constructor Private Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'] = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
+---`Constructor Private Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'].__new = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
+---`Constructor Public Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'] = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
+---`Constructor Public Instance`
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySubmarineInfo:Barotrauma.SubmarineInfo):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, dataPath:Barotrauma.CampaignDataPath, gameModePreset:Barotrauma.GameModePreset, settings:Barotrauma.CampaignSettings, seed?:System.String, missionTypes?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))):Barotrauma.GameSession
+---@overload fun(submarineInfo:Barotrauma.SubmarineInfo, enemySub:Barotrauma.Option*1Barotrauma*SubmarineInfo, gameModePreset:Barotrauma.GameModePreset, seed?:System.String, missionPrefabs?:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.GameSession
+---@param submarineInfo Barotrauma.SubmarineInfo
+---@param ownedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---@param doc System.Xml.Linq.XDocument
+---@param campaignData Barotrauma.CampaignDataPath
+---@return Barotrauma.GameSession
+_G['GameSession'].__new = function(submarineInfo, ownedSubmarines, doc, campaignData) end
+
diff --git a/Meta/Types/server/_00007FFD9683B258.lua b/Meta/Types/server/_00007FFD9683B258.lua
new file mode 100644
index 0000000..2cb8564
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683B258.lua
@@ -0,0 +1,68 @@
+---@meta
+---@class Barotrauma.CampaignMetadata : System.Object
+---`Field Private Instance`
+---@field data (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Object)|({[Barotrauma.Identifier]:(System.Object)})
+_G['CampaignMetadata'] = {}
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CampaignMetadata'].Load = function(element) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param value System.Object
+_G['CampaignMetadata'].SetValue = function(identifier, value) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.Nullable*1System*Single
+---@return System.Single
+_G['CampaignMetadata'].GetFloat = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.Nullable*1System*Int32
+---@return System.Int32
+_G['CampaignMetadata'].GetInt = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.Nullable*1System*Boolean
+---@return System.Boolean
+_G['CampaignMetadata'].GetBoolean = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param defaultValue? System.String
+---@return System.String
+_G['CampaignMetadata'].GetString = function(identifier, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['CampaignMetadata'].HasKey = function(identifier) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param type System.Type
+---@param defaultValue System.Object
+---@return System.Object
+_G['CampaignMetadata'].GetTypeOrDefault = function(identifier, type, defaultValue) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return System.Object
+_G['CampaignMetadata'].GetValue = function(identifier) end
+
+---`Method Public Instance`
+---@param modeElement System.Xml.Linq.XElement
+_G['CampaignMetadata'].Save = function(modeElement) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CampaignMetadata
+_G['CampaignMetadata'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CampaignMetadata
+_G['CampaignMetadata'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9683B598.lua b/Meta/Types/server/_00007FFD9683B598.lua
new file mode 100644
index 0000000..fb5c077
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683B598.lua
@@ -0,0 +1,82 @@
+---@meta
+---@class Barotrauma.CharacterCampaignData : System.Object
+---`Field Public Instance`
+---@field HasSpawned System.Boolean
+---`Field Public Instance`
+---@field CharacterInfo Barotrauma.CharacterInfo
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field ClientAddress Barotrauma.Networking.Address
+---`Field Public Instance`
+---@field AccountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---`Field Private Instance`
+---@field itemData System.Xml.Linq.XElement
+---`Field Private Instance`
+---@field healthData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field WalletData System.Xml.Linq.XElement
+---`Field Public Static`
+---@field RequireClientNameMatch System.Boolean
+---`Getter Public Instance`
+---@field HasItemData System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OrderData System.Xml.Linq.XElement
+_G['CharacterCampaignData'] = {}
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param refreshHealthData System.Boolean
+_G['CharacterCampaignData'].Refresh = function(character, refreshHealthData) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['CharacterCampaignData'].MatchesClient = function(client) end
+
+---`Method Public Instance`
+---@param other Barotrauma.CharacterCampaignData
+---@return System.Boolean
+_G['CharacterCampaignData'].IsDuplicate = function(other) end
+
+---`Method Public Instance`
+_G['CharacterCampaignData'].Reset = function() end
+
+---`Method Public Instance`
+_G['CharacterCampaignData'].ApplyPermadeath = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param inventory Barotrauma.Inventory
+_G['CharacterCampaignData'].SpawnInventoryItems = function(character, inventory) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param afflictionPredicate? (System.Func*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg:Barotrauma.AfflictionPrefab):(System.Boolean))
+_G['CharacterCampaignData'].ApplyHealthData = function(character, afflictionPredicate) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['CharacterCampaignData'].ApplyOrderData = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['CharacterCampaignData'].ApplyWalletData = function(character) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['CharacterCampaignData'].Save = function() end
+
+---`Constructor Public Instance`
+---@overload fun(client:Barotrauma.Networking.Client):Barotrauma.CharacterCampaignData
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.CharacterCampaignData
+_G['CharacterCampaignData'] = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(client:Barotrauma.Networking.Client):Barotrauma.CharacterCampaignData
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.CharacterCampaignData
+_G['CharacterCampaignData'].__new = function(element) end
+
diff --git a/Meta/Types/server/_00007FFD9683B750.lua b/Meta/Types/server/_00007FFD9683B750.lua
new file mode 100644
index 0000000..4248d31
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683B750.lua
@@ -0,0 +1,29 @@
+---@meta
+---@class Barotrauma.Faction : System.Object
+---`Getter Public Instance`
+---@field Reputation Barotrauma.Reputation
+---`Getter Public Instance`
+---@field Prefab Barotrauma.FactionPrefab
+_G['Faction'] = {}
+
+---`Method Public Static`
+---@param faction Barotrauma.Faction
+---@return Barotrauma.FactionAffiliation
+_G['Faction'].GetPlayerAffiliationStatus = function(faction) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Faction'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param metadata Barotrauma.CampaignMetadata
+---@param prefab Barotrauma.FactionPrefab
+---@return Barotrauma.Faction
+_G['Faction'] = function(metadata, prefab) end
+
+---`Constructor Public Instance`
+---@param metadata Barotrauma.CampaignMetadata
+---@param prefab Barotrauma.FactionPrefab
+---@return Barotrauma.Faction
+_G['Faction'].__new = function(metadata, prefab) end
+
diff --git a/Meta/Types/server/_00007FFD9683BBB0.lua b/Meta/Types/server/_00007FFD9683BBB0.lua
new file mode 100644
index 0000000..d5bfc59
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683BBB0.lua
@@ -0,0 +1,113 @@
+---@meta
+---@class Barotrauma.Reputation : System.Object
+---`Field Private Instance`
+---@field metaDataIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field OnReputationValueChanged Barotrauma.NamedEvent*1Barotrauma*Reputation
+---`Field Public Instance`
+---@field Faction Barotrauma.Faction
+---`Field Public Instance`
+---@field Location Barotrauma.Location
+---`Field Public Static`
+---@field OnAnyReputationValueChanged Barotrauma.NamedEvent*1Barotrauma*Reputation
+---`Field Public Static`
+---@field HostileThreshold System.Single
+---`Field Public Static`
+---@field ReputationLossPerNPCDamage System.Single
+---`Field Public Static`
+---@field ReputationLossPerWallDamage System.Single
+---`Field Public Static`
+---@field ReputationLossPerStolenItemPrice System.Single
+---`Field Public Static`
+---@field MinReputationLossPerStolenItem System.Single
+---`Field Public Static`
+---@field MaxReputationLossPerStolenItem System.Single
+---`Field Public Static`
+---@field MaxReputationLossFromNPCDamage System.Single
+---`Field Public Static`
+---@field MaxReputationLossFromWallDamage System.Single
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field MinReputation System.Int32
+---`Getter Public Instance`
+---@field MaxReputation System.Int32
+---`Getter Public Instance`
+---@field InitialReputation System.Int32
+---`Getter Public Instance`
+---@field Metadata Barotrauma.CampaignMetadata
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReputationAtRoundStart System.Single
+---`Getter Public Instance`
+---@field NormalizedValue System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Value System.Single
+_G['Reputation'] = {}
+
+---`Method Public Instance`
+---@param newReputation System.Single
+_G['Reputation'].SetReputation = function(newReputation) end
+
+---`Method Public Instance`
+---@param reputationChange System.Single
+---@return System.Single
+_G['Reputation'].GetReputationChangeMultiplier = function(reputationChange) end
+
+---`Method Public Instance`
+---@param reputationChange System.Single
+---@param maxReputationChangePerRound? System.Single
+_G['Reputation'].AddReputation = function(reputationChange, maxReputationChangePerRound) end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['Reputation'].GetReputationName = function() end
+
+---`Method Public Static`
+---@param normalizedValue System.Single
+---@return Barotrauma.LocalizedString
+_G['Reputation'].GetReputationName = function(normalizedValue) end
+
+---`Constructor Public Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'].__new = function() end
+
+---`Constructor Private Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(metadata:Barotrauma.CampaignMetadata, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@overload fun(metadata:Barotrauma.CampaignMetadata, faction:Barotrauma.Faction, location:Barotrauma.Location, identifier:Barotrauma.Identifier, minReputation:System.Int32, maxReputation:System.Int32, initialReputation:System.Int32):Barotrauma.Reputation
+---@return Barotrauma.Reputation
+_G['Reputation'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9683BE18.lua b/Meta/Types/server/_00007FFD9683BE18.lua
new file mode 100644
index 0000000..77db984
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683BE18.lua
@@ -0,0 +1,57 @@
+---@meta
+---@class Barotrauma.GameModePreset : System.Object
+---`Field Public Instance`
+---@field GameModeType System.Type
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field IsSinglePlayer System.Boolean
+---`Field Public Instance`
+---@field Votable System.Boolean
+---`Field Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*GameModePreset)|(Barotrauma.GameModePreset[])
+---`Field Public Static`
+---@field SinglePlayerCampaign Barotrauma.GameModePreset
+---`Field Public Static`
+---@field MultiPlayerCampaign Barotrauma.GameModePreset
+---`Field Public Static`
+---@field Tutorial Barotrauma.GameModePreset
+---`Field Public Static`
+---@field Mission Barotrauma.GameModePreset
+---`Field Public Static`
+---@field PvP Barotrauma.GameModePreset
+---`Field Public Static`
+---@field TestMode Barotrauma.GameModePreset
+---`Field Public Static`
+---@field Sandbox Barotrauma.GameModePreset
+---`Field Public Static`
+---@field DevSandbox Barotrauma.GameModePreset
+_G['GameModePreset'] = {}
+
+---`Method Public Static`
+_G['GameModePreset'].Init = function() end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, type:System.Type, isSinglePlayer?:System.Boolean, votable?:System.Boolean):Barotrauma.GameModePreset
+---@return Barotrauma.GameModePreset
+_G['GameModePreset'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9683C098.lua b/Meta/Types/server/_00007FFD9683C098.lua
new file mode 100644
index 0000000..6a482ea
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683C098.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.GameMode : System.Object
+---`Field NonPublic Instance`
+---@field startTime System.DateTime
+---`Field NonPublic Instance`
+---@field preset Barotrauma.GameModePreset
+---`Field Public Static`
+---@field PresetList (System.Collections.Generic.List*1Barotrauma*GameModePreset)|(Barotrauma.GameModePreset[])
+---`Getter Public Instance`
+---@field CrewManager Barotrauma.CrewManager
+---`Getter Public Instance Virtual`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field IsSinglePlayer System.Boolean
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Paused System.Boolean
+---`Getter Public Instance`
+---@field Preset Barotrauma.GameModePreset
+_G['GameMode'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['GameMode'].UpdateWhilePaused = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].Start = function() end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].ShowStartMessage = function() end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['GameMode'].AddExtraMissions = function(levelData) end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].AddToGUIUpdateList = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['GameMode'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+_G['GameMode'].End = function(transitionType) end
+
+---`Method Public Instance Virtual`
+_G['GameMode'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(preset:Barotrauma.GameModePreset):Barotrauma.GameMode
+---@return Barotrauma.GameMode
+_G['GameMode'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9683CC88.lua b/Meta/Types/server/_00007FFD9683CC88.lua
new file mode 100644
index 0000000..d18218b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683CC88.lua
@@ -0,0 +1,384 @@
+---@meta
+---@class Barotrauma.CampaignMode : Barotrauma.GameMode
+---`Field Public Instance`
+---@field TotalPlayTime System.Double
+---`Field Public Instance`
+---@field TotalPassedLevels System.Int32
+---`Field Public Instance`
+---@field CargoManager Barotrauma.CargoManager
+---`Field Public Instance`
+---@field UpgradeManager Barotrauma.UpgradeManager
+---`Field Public Instance`
+---@field MedicalClinic Barotrauma.MedicalClinic
+---`Field Private Instance`
+---@field factions (System.Collections.Generic.List*1Barotrauma*Faction)|(Barotrauma.Faction[])
+---`Field Public Instance`
+---@field CampaignMetadata Barotrauma.CampaignMetadata
+---`Field NonPublic Instance`
+---@field petsElement System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field Settings Barotrauma.CampaignSettings
+---`Field Private Instance`
+---@field extraMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Public Instance`
+---@field OnMoneyChanged Barotrauma.NamedEvent*1Barotrauma*WalletChangedEvent
+---`Field Public Instance`
+---@field CheatsEnabled System.Boolean
+---`Field NonPublic Instance`
+---@field wasDocked System.Boolean
+---`Field Private Instance`
+---@field dialogLastSpoken (System.Collections.Generic.Dictionary*1System*String*1System*Double)|({[System.String]:(System.Double)})
+---`Field Public Instance`
+---@field PendingSubmarineSwitch Barotrauma.SubmarineInfo
+---`Field NonPublic Instance`
+---@field map Barotrauma.Map
+---`Field Public Instance`
+---@field Bank Barotrauma.Wallet
+---`Field Public Instance`
+---@field PurchasedLostShuttlesInLatestSave System.Boolean
+---`Field Public Instance`
+---@field PurchasedHullRepairsInLatestSave System.Boolean
+---`Field Public Instance`
+---@field PurchasedItemRepairsInLatestSave System.Boolean
+---`Field Public Instance`
+---@field DivingSuitWarningShown System.Boolean
+---`Field Public Instance`
+---@field ItemsRelocatedToMainSub System.Boolean
+---`Field Private Instance`
+---@field BeforeLevelLoading (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnSaveAndQuit (System.Action)|(fun())
+---`Field Private Instance`
+---@field characterOutOfBoundsTimer (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single)|({[Barotrauma.Character]:(System.Single)})
+---`Field Public Static`
+---@field MaxMoney System.Int32
+---`Field Public Static`
+---@field InitialMoney System.Int32
+---`Field NonPublic Static`
+---@field EndTransitionDuration System.Single
+---`Field Private Static`
+---@field FirstRoundEventDelay System.Single
+---`Field Public Static`
+---@field HullRepairCostPerDamage System.Single
+---`Field Public Static`
+---@field ItemRepairCostPerRepairDuration System.Single
+---`Field Public Static`
+---@field ShuttleReplaceCost System.Int32
+---`Field Public Static`
+---@field MaxHullRepairCost System.Int32
+---`Field Public Static`
+---@field MaxItemRepairCost System.Int32
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field MirrorLevel System.Boolean
+---`Getter Public Instance`
+---@field Factions (System.Collections.Generic.IReadOnlyList*1Barotrauma*Faction)|(Barotrauma.Faction[])
+---`Getter NonPublic Instance`
+---
`Setter NonPublic Instance`
+---@field ActiveOrdersElement System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsFirstRound System.Boolean
+---`Getter Public Instance`
+---@field DisableEvents System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TransferItemsOnSubSwitch System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwitchedSubsThisRound System.Boolean
+---`Getter Public Instance`
+---@field Map Barotrauma.Map
+---`Getter Public Instance Virtual`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field CurrentLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field NextLevel Barotrauma.LevelData
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedHullRepairs System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedLostShuttles System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedItemRepairs System.Boolean
+_G['CampaignMode'] = {}
+
+---`Method Private Static`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['CampaignMode'].IsOwner = function(client) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@param permissions Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['CampaignMode'].AllowedToManageCampaign = function(client, permissions) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['CampaignMode'].AllowImmediateItemDelivery = function(client) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['CampaignMode'].AllowedToManageWallets = function(client) end
+
+---`Method Public Instance Virtual`
+_G['CampaignMode'].ShowStartMessage = function() end
+
+---`Method Public Static`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@return System.Boolean
+_G['CampaignMode'].BlocksInteraction = function(interactionType) end
+
+---`Method Private Static`
+---@param permissions Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['CampaignMode'].AnyOneAllowedToManageCampaign = function(permissions) end
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return Barotrauma.Wallet
+_G['CampaignMode'].GetWallet = function(client) end
+
+---`Method Public Instance Virtual`
+---@param client Barotrauma.Networking.Client
+---@param price System.Int32
+---@return System.Boolean
+_G['CampaignMode'].TryPurchase = function(client, price) end
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return System.Int32
+_G['CampaignMode'].GetBalance = function(client) end
+
+---`Method Public Instance`
+---@param cost System.Int32
+---@param client? Barotrauma.Networking.Client
+---@return System.Boolean
+_G['CampaignMode'].CanAfford = function(cost, client) end
+
+---`Method Public Instance`
+---@return Barotrauma.Location
+_G['CampaignMode'].GetCurrentDisplayLocation = function() end
+
+---`Method Public Static`
+---@param leavingSub Barotrauma.Submarine
+---@return (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+_G['CampaignMode'].GetSubsToLeaveBehind = function(leavingSub) end
+
+---`Method Public Instance`
+---@return Barotrauma.SubmarineInfo
+_G['CampaignMode'].GetPredefinedStartOutpost = function() end
+
+---`Method Public Instance Virtual`
+_G['CampaignMode'].Start = function() end
+
+---`Method Public Static`
+---@return System.Int32
+_G['CampaignMode'].GetHullRepairCost = function() end
+
+---`Method Public Static`
+---@return System.Int32
+_G['CampaignMode'].GetItemRepairCost = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].InitFactions = function() end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['CampaignMode'].AddExtraMissions = function(levelData) end
+
+---`Method Public Instance`
+_G['CampaignMode'].LoadNewLevel = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+_G['CampaignMode'].LoadInitialLevel = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param transitionType Barotrauma.CampaignMode.TransitionType
+---@param newLevel Barotrauma.LevelData
+---@param leavingSub Barotrauma.Submarine
+---@param mirror System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['CampaignMode'].DoLevelTransition = function(transitionType, newLevel, leavingSub, mirror) end
+
+---`Method Public Instance`
+---@overload fun(nextLevel:Barotrauma.LevelData-ref, leavingSub:Barotrauma.Submarine-ref):(Barotrauma.CampaignMode.TransitionType)
+---@return Barotrauma.CampaignMode.TransitionType
+_G['CampaignMode'].GetAvailableTransition = function() end
+
+---`Method Private Static`
+---@return Barotrauma.Submarine
+_G['CampaignMode'].GetLeavingSub = function() end
+
+---`Method Public Instance Virtual`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+_G['CampaignMode'].End = function(transitionType) end
+
+---`Method Public Instance`
+_G['CampaignMode'].HandleSaveAndQuit = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].UpdateStoreStock = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].EndCampaign = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['CampaignMode'].EndCampaignProjSpecific = function() end
+
+---`Method Public Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@param allowEmpty? System.Boolean
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetRandomFaction = function(randSync, allowEmpty) end
+
+---`Method Public Static`
+---@overload fun(factions:(System.Collections.Generic.IEnumerable*1Barotrauma*Faction)|(fun():(Barotrauma.Faction)), randSync:Barotrauma.Rand.RandSync, secondary?:System.Boolean, allowEmpty?:System.Boolean):(Barotrauma.Faction)
+---@param factions (System.Collections.Generic.IEnumerable*1Barotrauma*Faction)|(fun():(Barotrauma.Faction))
+---@param random System.Random
+---@param secondary? System.Boolean
+---@param allowEmpty? System.Boolean
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetRandomFaction = function(factions, random, secondary, allowEmpty) end
+
+---`Method Public Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@param allowEmpty? System.Boolean
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetRandomSecondaryFaction = function(randSync, allowEmpty) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param characterInfo Barotrauma.CharacterInfo
+---@param takeMoney? System.Boolean
+---@param client? Barotrauma.Networking.Client
+---@param buyingNewCharacter? System.Boolean
+---@return System.Boolean
+_G['CampaignMode'].TryHireCharacter = function(location, characterInfo, takeMoney, client, buyingNewCharacter) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@return System.Int32
+_G['CampaignMode'].NewCharacterCost = function(characterInfo) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@return System.Boolean
+_G['CampaignMode'].CanAffordNewCharacter = function(characterInfo) end
+
+---`Method Private Instance`
+---@param npc Barotrauma.Character
+---@param interactor Barotrauma.Character
+_G['CampaignMode'].NPCInteract = function(npc, interactor) end
+
+---`Method Private Instance`
+---@param npc Barotrauma.Character
+---@param interactor Barotrauma.Character
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['CampaignMode'].DoCharacterWait = function(npc, interactor) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+_G['CampaignMode'].AssignNPCMenuInteraction = function(character, interactionType) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['CampaignMode'].KeepCharactersCloseToOutpost = function(deltaTime) end
+
+---`Method Public Instance`
+---@param npc Barotrauma.Character
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['CampaignMode'].OutpostNPCAttacked = function(npc, attacker, attackResult) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.Faction
+_G['CampaignMode'].GetFaction = function(identifier) end
+
+---`Method Public Instance`
+---@param factionIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CampaignMode'].GetReputation = function(factionIdentifier) end
+
+---`Method Public Instance`
+---@param factionIdentifier Barotrauma.Identifier
+---@return Barotrauma.FactionAffiliation
+_G['CampaignMode'].GetFactionAffiliation = function(factionIdentifier) end
+
+---`Method Public Instance Abstract Virtual`
+---@param element System.Xml.Linq.XElement
+---@param isSavingOnLoading System.Boolean
+_G['CampaignMode'].Save = function(element, isSavingOnLoading) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+_G['CampaignMode'].LoadStats = function(element) end
+
+---`Method NonPublic Instance`
+---@return System.Xml.Linq.XElement
+_G['CampaignMode'].SaveStats = function() end
+
+---`Method Public Instance`
+_G['CampaignMode'].LogState = function() end
+
+---`Method Public Instance Virtual`
+_G['CampaignMode'].Remove = function() end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Int32
+_G['CampaignMode'].NumberOfMissionsAtLocation = function(location) end
+
+---`Method Public Instance`
+---@param currentLocation Barotrauma.Location
+---@param sender Barotrauma.Networking.Client
+_G['CampaignMode'].CheckTooManyMissions = function(currentLocation, sender) end
+
+---`Method NonPublic Static`
+---@param leavingSub Barotrauma.Submarine
+_G['CampaignMode'].LeaveUnconnectedSubs = function(leavingSub) end
+
+---`Method Public Instance`
+_G['CampaignMode'].SwitchSubs = function() end
+
+---`Method NonPublic Instance`
+_G['CampaignMode'].TransferItemsBetweenSubs = function() end
+
+---`Method NonPublic Instance`
+_G['CampaignMode'].RefreshOwnedSubmarines = function() end
+
+---`Method Public Instance`
+---@param parentElement? System.Xml.Linq.XElement
+_G['CampaignMode'].SavePets = function(parentElement) end
+
+---`Method Public Instance`
+_G['CampaignMode'].LoadPets = function() end
+
+---`Method Public Instance`
+---@param parentElement? System.Xml.Linq.XElement
+_G['CampaignMode'].SaveActiveOrders = function(parentElement) end
+
+---`Method Public Instance`
+_G['CampaignMode'].LoadActiveOrders = function() end
+
+---`Constructor NonPublic Instance`
+---@param preset Barotrauma.GameModePreset
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.CampaignMode
+_G['CampaignMode'] = function(preset, settings) end
+
+---`Constructor NonPublic Instance`
+---@param preset Barotrauma.GameModePreset
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.CampaignMode
+_G['CampaignMode'].__new = function(preset, settings) end
+
diff --git a/Meta/Types/server/_00007FFD9683D6A0.lua b/Meta/Types/server/_00007FFD9683D6A0.lua
new file mode 100644
index 0000000..afa0dba
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683D6A0.lua
@@ -0,0 +1,315 @@
+---@meta
+---@class Barotrauma.MultiPlayerCampaign : Barotrauma.CampaignMode
+---`Field Private Instance`
+---@field characterData (System.Collections.Generic.List*1Barotrauma*CharacterCampaignData)|(Barotrauma.CharacterCampaignData[])
+---`Field Private Instance`
+---@field walletsToCheck (System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Wallet)|({[System.UInt16]:(Barotrauma.Wallet)})
+---`Field Private Instance`
+---@field transactions (System.Collections.Generic.HashSet*1Barotrauma*NetWalletTransaction)|(Barotrauma.NetWalletTransaction[])
+---`Field Private Instance`
+---@field clientCheckTimer System.Single
+---`Field Public Instance`
+---@field replacedCharacterDataBackup (System.Collections.Generic.List*1Barotrauma*CharacterCampaignData)|(Barotrauma.CharacterCampaignData[])
+---`Field Private Instance`
+---@field forceMapUI System.Boolean
+---`Field Private Instance`
+---@field savedExperiencePoints (System.Collections.Generic.List*1Barotrauma*MultiPlayerCampaign*SavedExperiencePoints)|(Barotrauma.MultiPlayerCampaign.SavedExperiencePoints[])
+---`Field Private Instance`
+---@field purchasedHullRepairs System.Boolean
+---`Field Private Instance`
+---@field purchasedLostShuttles System.Boolean
+---`Field Private Instance`
+---@field purchasedItemRepairs System.Boolean
+---`Field Private Instance`
+---@field discardedCharacters (System.Collections.Generic.List*1Barotrauma*CharacterCampaignData)|(Barotrauma.CharacterCampaignData[])
+---`Field Private Instance`
+---@field lastUpdateID (System.Collections.Generic.Dictionary*1Barotrauma*MultiPlayerCampaign*NetFlags*1System*UInt16)|({[Barotrauma.MultiPlayerCampaign.NetFlags]:(System.UInt16)})
+---`Field Private Instance`
+---@field lastSaveID System.UInt16
+---`Field Private Static`
+---@field currentCampaignID System.Byte
+---`Field Private Static`
+---@field clientCheckInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceMapUI System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GameOver System.Boolean
+---`Getter Public Instance Virtual`
+---@field Paused System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedHullRepairs System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedLostShuttles System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field PurchasedItemRepairs System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastSaveID System.UInt16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CampaignID System.Byte
+_G['MultiPlayerCampaign'] = {}
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return Barotrauma.Wallet
+_G['MultiPlayerCampaign'].GetWallet = function(client) end
+
+---`Method Public Static`
+---@param savePath System.String
+---@param subPath System.String
+---@param seed System.String
+---@param startingSettings Barotrauma.CampaignSettings
+_G['MultiPlayerCampaign'].StartNewCampaign = function(savePath, subPath, seed, startingSettings) end
+
+---`Method Public Static`
+---@param path Barotrauma.CampaignDataPath
+---@param client Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].LoadCampaign = function(path, client) end
+
+---`Method NonPublic Instance Virtual`
+_G['MultiPlayerCampaign'].LoadInitialLevel = function() end
+
+---`Method Public Static`
+_G['MultiPlayerCampaign'].StartCampaignSetup = function() end
+
+---`Method Public Instance Virtual`
+_G['MultiPlayerCampaign'].Start = function() end
+
+---`Method Private Static`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['MultiPlayerCampaign'].IsOwner = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].SaveExperiencePoints = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Int32
+_G['MultiPlayerCampaign'].GetSavedExperiencePoints = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].ClearSavedExperiencePoints = function(client) end
+
+---`Method Public Instance`
+_G['MultiPlayerCampaign'].SavePlayers = function() end
+
+---`Method Public Instance`
+_G['MultiPlayerCampaign'].MoveDiscardedCharacterBalancesToBank = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param transitionType Barotrauma.CampaignMode.TransitionType
+---@param newLevel Barotrauma.LevelData
+---@param leavingSub Barotrauma.Submarine
+---@param mirror System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['MultiPlayerCampaign'].DoLevelTransition = function(transitionType, newLevel, leavingSub, mirror) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['MultiPlayerCampaign'].CanPurchaseSub = function(info, client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].DiscardClientCharacterData = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return Barotrauma.CharacterCampaignData
+_G['MultiPlayerCampaign'].GetClientCharacterData = function(client) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@return Barotrauma.CharacterCampaignData
+_G['MultiPlayerCampaign'].GetCharacterData = function(characterInfo) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return Barotrauma.CharacterCampaignData
+_G['MultiPlayerCampaign'].SetClientCharacterData = function(client) end
+
+---`Method Public Instance`
+---@param connectedClients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['MultiPlayerCampaign'].AssignClientCharacterInfos = function(connectedClients) end
+
+---`Method Public Instance`
+---@param connectedClients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1Barotrauma*Job)|({[Barotrauma.Networking.Client]:(Barotrauma.Job)})
+_G['MultiPlayerCampaign'].GetAssignedJobs = function(connectedClients) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['MultiPlayerCampaign'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['MultiPlayerCampaign'].UpdateClientsToCheck = function(deltaTime) end
+
+---`Method Private Instance`
+_G['MultiPlayerCampaign'].UpdateWallets = function() end
+
+---`Method Public Instance Virtual`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+_G['MultiPlayerCampaign'].End = function(transitionType) end
+
+---`Method Private Instance`
+---@param c Barotrauma.Networking.Client
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+---@return System.Boolean
+_G['MultiPlayerCampaign'].IsFlagRequired = function(c, flag) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].ServerWrite = function(msg, c) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].ServerRead = function(msg, sender) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].ServerReadMoney = function(msg, sender) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].ServerReadRewardDistribution = function(msg, sender) end
+
+---`Method Public Instance`
+---@param sender Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].ResetSalaries = function(sender) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['MultiPlayerCampaign'].ServerReadCrew = function(msg, sender) end
+
+---`Method Public Instance`
+---@param renamedCrewMember? System.ValueTuple*1System*UInt16*1System*String
+---@param firedCharacter? Barotrauma.CharacterInfo
+---@param createNotification? System.Boolean
+_G['MultiPlayerCampaign'].SendCrewState = function(renamedCrewMember, firedCharacter, createNotification) end
+
+---`Method Public Instance Virtual`
+---@param client Barotrauma.Networking.Client
+---@param price System.Int32
+---@return System.Boolean
+_G['MultiPlayerCampaign'].TryPurchase = function(client, price) end
+
+---`Method Public Instance Virtual`
+---@param client? Barotrauma.Networking.Client
+---@return System.Int32
+_G['MultiPlayerCampaign'].GetBalance = function(client) end
+
+---`Method Public Instance Virtual`
+---@param element System.Xml.Linq.XElement
+---@param isSavingOnLoading System.Boolean
+_G['MultiPlayerCampaign'].Save = function(element, isSavingOnLoading) end
+
+---`Method Public Instance`
+---@param newData Barotrauma.CharacterCampaignData
+---@param skipBackup? System.Boolean
+_G['MultiPlayerCampaign'].SaveSingleCharacter = function(newData, skipBackup) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@return Barotrauma.CharacterCampaignData
+_G['MultiPlayerCampaign'].RestoreSingleCharacterFromBackup = function(client) end
+
+---`Method Public Instance`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+---@return System.UInt16
+_G['MultiPlayerCampaign'].GetLastUpdateIdForFlag = function(flag) end
+
+---`Method Public Instance`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+---@param id System.UInt16
+_G['MultiPlayerCampaign'].SetLastUpdateIdForFlag = function(flag, id) end
+
+---`Method Public Instance`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+_G['MultiPlayerCampaign'].IncrementLastUpdateIdForFlag = function(flag) end
+
+---`Method Public Instance`
+_G['MultiPlayerCampaign'].IncrementAllLastUpdateIds = function() end
+
+---`Method Private Static`
+---@param flag Barotrauma.MultiPlayerCampaign.NetFlags
+---@return System.Boolean
+_G['MultiPlayerCampaign'].ValidateFlag = function(flag) end
+
+---`Method Public Static`
+---@param mapSeed System.String
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'].StartNew = function(mapSeed, settings) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'].LoadNew = function(element) end
+
+---`Method Private Instance`
+_G['MultiPlayerCampaign'].InitProjSpecific = function() end
+
+---`Method Public Static`
+---@param loadPath System.String
+---@return System.String
+_G['MultiPlayerCampaign'].GetCharacterDataSavePath = function(loadPath) end
+
+---`Method Public Static`
+---@return System.String
+_G['MultiPlayerCampaign'].GetCharacterDataPathForLoading = function() end
+
+---`Method Public Static`
+---@return System.String
+_G['MultiPlayerCampaign'].GetCharacterDataPathForSaving = function() end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['MultiPlayerCampaign'].Load = function(element) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+_G['MultiPlayerCampaign'].GetCampaignSubs = function() end
+
+---`Method Private Static`
+---@overload fun(msg:Barotrauma.Networking.IWriteMessage, purchasedItems:(System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))}))
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param soldItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+_G['MultiPlayerCampaign'].WriteItems = function(msg, soldItems) end
+
+---`Method Private Static`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['MultiPlayerCampaign'].ReadPurchasedItems = function(msg, sender) end
+
+---`Method Private Static`
+---@param msg Barotrauma.Networking.IReadMessage
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+_G['MultiPlayerCampaign'].ReadSoldItems = function(msg) end
+
+---`Constructor Private Instance`
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'] = function(settings) end
+
+---`Constructor Private Instance`
+---@param settings Barotrauma.CampaignSettings
+---@return Barotrauma.MultiPlayerCampaign
+_G['MultiPlayerCampaign'].__new = function(settings) end
+
diff --git a/Meta/Types/server/_00007FFD9683D938.lua b/Meta/Types/server/_00007FFD9683D938.lua
new file mode 100644
index 0000000..182afab
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683D938.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.MissionMode : Barotrauma.GameMode
+---`Field Private Instance`
+---@field missions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Getter Public Instance Virtual`
+---@field Missions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+_G['MissionMode'] = {}
+
+---`Method Public Instance Virtual`
+_G['MissionMode'].ShowStartMessage = function() end
+
+---`Method NonPublic Static`
+---@param missionPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+---@param missionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))
+_G['MissionMode'].ValidateMissionPrefabs = function(missionPrefabs, missionClasses) end
+
+---`Method Public Static`
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param missionClasses (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type)|({[Barotrauma.Identifier]:(System.Type)})
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['MissionMode'].ValidateMissionTypes = function(missionTypes, missionClasses) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.MissionMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.MissionMode
+_G['MissionMode'] = function(preset, missionTypes, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.MissionMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.MissionMode
+_G['MissionMode'].__new = function(preset, missionTypes, seed) end
+
diff --git a/Meta/Types/server/_00007FFD9683DA80.lua b/Meta/Types/server/_00007FFD9683DA80.lua
new file mode 100644
index 0000000..828373d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683DA80.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.CoOpMode : Barotrauma.MissionMode
+_G['CoOpMode'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.CoOpMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.CoOpMode
+_G['CoOpMode'] = function(preset, missionTypes, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.CoOpMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.CoOpMode
+_G['CoOpMode'].__new = function(preset, missionTypes, seed) end
+
diff --git a/Meta/Types/server/_00007FFD9683DC48.lua b/Meta/Types/server/_00007FFD9683DC48.lua
new file mode 100644
index 0000000..f92f964
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683DC48.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.PvPMode : Barotrauma.MissionMode
+_G['PvPMode'] = {}
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.PvPMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.PvPMode
+_G['PvPMode'] = function(preset, missionTypes, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(preset:Barotrauma.GameModePreset, missionPrefabs:(System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab)|(fun():(Barotrauma.MissionPrefab))):Barotrauma.PvPMode
+---@param preset Barotrauma.GameModePreset
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param seed System.String
+---@return Barotrauma.PvPMode
+_G['PvPMode'].__new = function(preset, missionTypes, seed) end
+
diff --git a/Meta/Types/server/_00007FFD9683DE18.lua b/Meta/Types/server/_00007FFD9683DE18.lua
new file mode 100644
index 0000000..8a9d41a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683DE18.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.AutoItemPlacer : System.Object
+---`Field Public Static`
+---@field OutputDebugInfo System.Boolean
+---`Field Public Static`
+---@field DefaultStartItemSet Barotrauma.Identifier
+_G['AutoItemPlacer'] = {}
+
+---`Method Public Static`
+---@param startItemSet? System.Nullable*1Barotrauma*Identifier
+_G['AutoItemPlacer'].SpawnItems = function(startItemSet) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@param regeneratedContainer Barotrauma.Items.Components.ItemContainer
+---@param skipItemProbability? System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AutoItemPlacer'].RegenerateLoot = function(sub, regeneratedContainer, skipItemProbability) end
+
+---`Method Private Static`
+---@param sub Barotrauma.Submarine
+---@param startItemSet System.Nullable*1Barotrauma*Identifier
+_G['AutoItemPlacer'].SpawnStartItems = function(sub, startItemSet) end
+
+---`Method Private Static`
+---@param subs (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---@param regeneratedContainer? Barotrauma.Items.Components.ItemContainer
+---@param skipItemProbability? System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AutoItemPlacer'].CreateAndPlace = function(subs, regeneratedContainer, skipItemProbability) end
+
+---`Method Private Static`
+---@param preferredContainer Barotrauma.PreferredContainer
+---@param allContainers (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemContainer)|(fun():(Barotrauma.Items.Components.ItemContainer))
+---@param validContainers (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer)|({[Barotrauma.Items.Components.ItemContainer]:(Barotrauma.PreferredContainer)})
+---@param primary System.Boolean
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer)|({[Barotrauma.Items.Components.ItemContainer]:(Barotrauma.PreferredContainer)})
+_G['AutoItemPlacer'].GetValidContainers = function(preferredContainer, allContainers, validContainers, primary) end
+
+---`Method Private Static`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param containers (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer)|(Barotrauma.Items.Components.ItemContainer[])
+---@param validContainer System.Collections.Generic.KeyValuePair*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['AutoItemPlacer'].CreateItems = function(itemPrefab, containers, validContainer) end
+
+---`Constructor Private Static`
+---@return Barotrauma.AutoItemPlacer
+_G['AutoItemPlacer'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.AutoItemPlacer
+_G['AutoItemPlacer'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9683E578.lua b/Meta/Types/server/_00007FFD9683E578.lua
new file mode 100644
index 0000000..1bf0e92
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683E578.lua
@@ -0,0 +1,278 @@
+---@meta
+---@class Barotrauma.CargoManager : System.Object
+---`Field Private Instance`
+---@field campaign Barotrauma.CampaignMode
+---`Field Public Instance`
+---@field OnItemsInBuyCrateChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnItemsInSellCrateChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnItemsInSellFromSubCrateChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnPurchasedItemsChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Public Instance`
+---@field OnSoldItemsChanged Barotrauma.NamedEvent*1Barotrauma*CargoManager
+---`Field Private Instance`
+---@field purchasedIDCards (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*PurchasedItem*2Barotrauma*Items*Components*IdCard)|(System.ValueTuple*1Barotrauma*PurchasedItem*1Barotrauma*Items*Components*IdCard[])
+---`Field Public Static`
+---@field MaxQuantity System.Int32
+---`Getter Public Instance`
+---@field ItemsInBuyCrate (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field ItemsInSellCrate (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field ItemsInSellFromSubCrate (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field PurchasedItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+---`Getter Public Instance`
+---@field SoldItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+---`Getter Private Instance`
+---@field Location Barotrauma.Location
+---`Getter Private Instance`
+---@field UndeterminedSoldEntities (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+_G['CargoManager'] = {}
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemsToBuy (System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[])
+---@param client Barotrauma.Networking.Client
+_G['CargoManager'].BuyBackSoldItems = function(storeIdentifier, itemsToBuy, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemsToSell (System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[])
+---@param client Barotrauma.Networking.Client
+_G['CargoManager'].SellItems = function(storeIdentifier, itemsToSell, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param newItems (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+---@param client Barotrauma.Networking.Client
+_G['CargoManager'].LogNewItemPurchases = function(storeIdentifier, newItems, client) end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearSoldItemsProjSpecific = function() end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['CargoManager'].HasUnlockedStoreItem = function(prefab) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*CargoManager*T)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*CargoManager*T)|(Barotrauma.CargoManager.T[]))})
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*CargoManager*T)|(Barotrauma.CargoManager.T[])
+_G['CargoManager'].GetItems = function(identifier, items, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetBuyCrateItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, prefab:Barotrauma.ItemPrefab):(Barotrauma.PurchasedItem)
+---@param store Barotrauma.Location.StoreInfo
+---@param prefab Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItem
+_G['CargoManager'].GetBuyCrateItem = function(store, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetSellCrateItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, prefab:Barotrauma.ItemPrefab):(Barotrauma.PurchasedItem)
+---@param store Barotrauma.Location.StoreInfo
+---@param prefab Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItem
+_G['CargoManager'].GetSellCrateItem = function(store, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetSubCrateItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, prefab:Barotrauma.ItemPrefab):(Barotrauma.PurchasedItem)
+---@param store Barotrauma.Location.StoreInfo
+---@param prefab Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItem
+_G['CargoManager'].GetSubCrateItem = function(store, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+_G['CargoManager'].GetPurchasedItems = function(store, create) end
+
+---`Method Public Instance`
+---@overload fun(store:Barotrauma.Location.StoreInfo, prefab:Barotrauma.ItemPrefab):(System.Int32)
+---@param identifier Barotrauma.Identifier
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Int32
+_G['CargoManager'].GetPurchasedItemCount = function(identifier, prefab) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, create?:System.Boolean):((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))
+---@param store Barotrauma.Location.StoreInfo
+---@param create? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[])
+_G['CargoManager'].GetSoldItems = function(store, create) end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearItemsInBuyCrate = function() end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearItemsInSellCrate = function() end
+
+---`Method Public Instance`
+_G['CargoManager'].ClearItemsInSellFromSubCrate = function() end
+
+---`Method Public Instance`
+---@param purchasedItems (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['CargoManager'].SetPurchasedItems = function(purchasedItems) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param changeInQuantity System.Int32
+---@param client? Barotrauma.Networking.Client
+_G['CargoManager'].ModifyItemQuantityInBuyCrate = function(storeIdentifier, itemPrefab, changeInQuantity, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param changeInQuantity System.Int32
+---@param client? Barotrauma.Networking.Client
+_G['CargoManager'].ModifyItemQuantityInSubSellCrate = function(storeIdentifier, itemPrefab, changeInQuantity, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param itemsToPurchase (System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])
+---@param removeFromCrate System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['CargoManager'].PurchaseItems = function(storeIdentifier, itemsToPurchase, removeFromCrate, client) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+_G['CargoManager'].GetBuyValuesAtCurrentLocation = function(storeIdentifier, items) end
+
+---`Method Public Instance`
+---@param storeIdentifier Barotrauma.Identifier
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+_G['CargoManager'].GetSellValuesAtCurrentLocation = function(storeIdentifier, items) end
+
+---`Method Public Instance`
+_G['CargoManager'].CreatePurchasedItems = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].GetSellableItemsFromSub = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].FindAllItemsOnPlayerAndSub = function(character) end
+
+---`Method Public Static`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].FindAllSellableItems = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param confirmedItems (System.Collections.Generic.IEnumerable*1Barotrauma*CargoManager*SoldEntity)|(fun():(Barotrauma.CargoManager.SoldEntity))
+---@return System.Boolean
+_G['CargoManager'].IsItemSellable = function(item, confirmedItems) end
+
+---`Method Public Static`
+---@overload fun(subs:(System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))):((System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull)))
+---@param sub Barotrauma.Submarine
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+_G['CargoManager'].FindCargoRooms = function(sub) end
+
+---`Method Public Static`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param conditional? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['CargoManager'].FilterCargoCrates = function(items, conditional) end
+
+---`Method Public Static`
+---@param subs (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---@param cargoRooms? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemContainer)|(fun():(Barotrauma.Items.Components.ItemContainer))
+_G['CargoManager'].FindReusableCargoContainers = function(subs, cargoRooms) end
+
+---`Method Public Static`
+---@param item Barotrauma.ItemPrefab
+---@param cargoRoomOrSpawnPoint Barotrauma.ISpatialEntity
+---@param availableContainers System.Collections.Generic.List
+---@return Barotrauma.Items.Components.ItemContainer
+_G['CargoManager'].GetOrCreateCargoContainerFor = function(item, cargoRoomOrSpawnPoint, availableContainers) end
+
+---`Method Public Static`
+---@param itemsToSpawn (System.Collections.Generic.IEnumerable*1Barotrauma*PurchasedItem)|(fun():(Barotrauma.PurchasedItem))
+---@param sub Barotrauma.Submarine
+---@param cargoManager Barotrauma.CargoManager
+---@param showNotification? System.Boolean
+_G['CargoManager'].DeliverItemsToSub = function(itemsToSpawn, sub, cargoManager, showNotification) end
+
+---`Method Public Static`
+---@param itemsToSpawn (System.Collections.Generic.IEnumerable*1Barotrauma*PurchasedItem)|(fun():(Barotrauma.PurchasedItem))
+---@param character Barotrauma.Character
+---@param cargoManager Barotrauma.CargoManager
+_G['CargoManager'].DeliverItemsToCharacter = function(itemsToSpawn, character, cargoManager) end
+
+---`Method Private Static`
+---@param purchased Barotrauma.PurchasedItem
+---@param item Barotrauma.Item
+---@param cargoManager Barotrauma.CargoManager
+_G['CargoManager'].ItemSpawned = function(purchased, item, cargoManager) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+_G['CargoManager'].ItemSpawned = function(item) end
+
+---`Method Public Instance`
+_G['CargoManager'].InitPurchasedIDCards = function() end
+
+---`Method Private Static`
+---@param purchased Barotrauma.PurchasedItem
+---@param idCard Barotrauma.Items.Components.IdCard
+_G['CargoManager'].InitPurchasedIDCard = function(purchased, idCard) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@param itemPrefab Barotrauma.ItemPrefab
+---@return Microsoft.Xna.Framework.Vector2
+_G['CargoManager'].GetCargoPos = function(hull, itemPrefab) end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+_G['CargoManager'].SavePurchasedItems = function(parentElement) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CargoManager'].LoadPurchasedItems = function(element) end
+
+---`Constructor Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@return Barotrauma.CargoManager
+_G['CargoManager'] = function(campaign) end
+
+---`Constructor Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@return Barotrauma.CargoManager
+_G['CargoManager'].__new = function(campaign) end
+
diff --git a/Meta/Types/server/_00007FFD9683EA58.lua b/Meta/Types/server/_00007FFD9683EA58.lua
new file mode 100644
index 0000000..db72f16
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683EA58.lua
@@ -0,0 +1,162 @@
+---@meta
+---@class Barotrauma.CrewManager : System.Object
+---`Field Private Instance`
+---@field conversationTimer System.Single
+---`Field Private Instance`
+---@field conversationLineTimer System.Single
+---`Field Private Instance`
+---@field pendingConversationLines (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2System*String)|(System.ValueTuple*1Barotrauma*Character*1System*String[])
+---`Field Private Instance`
+---@field characterInfos (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---`Field Private Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field welcomeMessageNPC Barotrauma.Character
+---`Field Public Instance`
+---@field ActiveReadyCheck Barotrauma.ReadyCheck
+---`Field Private Static`
+---@field ConversationIntervalMin System.Single
+---`Field Private Static`
+---@field ConversationIntervalMax System.Single
+---`Field Private Static`
+---@field ConversationIntervalMultiplierMultiplayer System.Single
+---`Field Public Static`
+---@field MaxCrewSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HasBots System.Boolean
+---`Getter Public Instance`
+---@field ActiveOrders (System.Collections.Generic.List*1Barotrauma*CrewManager*ActiveOrder)|(Barotrauma.CrewManager.ActiveOrder[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsSinglePlayer System.Boolean
+_G['CrewManager'] = {}
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['CrewManager'].SaveMultiplayer = function(parentElement) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['CrewManager'].ServerWriteActiveOrders = function(msg) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['CrewManager'].GetCharacters = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))
+_G['CrewManager'].GetCharacterInfos = function() end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param fadeOutTime System.Nullable*1System*Single
+---@return System.Boolean
+_G['CrewManager'].AddOrder = function(order, fadeOutTime) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CrewManager'].AddCharacterElements = function(element) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['CrewManager'].RemoveCharacterInfo = function(characterInfo) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['CrewManager'].AddCharacter = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CrewManager'].IsFired = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param removeInfo? System.Boolean
+---@param resetCrewListIndex? System.Boolean
+_G['CrewManager'].RemoveCharacter = function(character, removeInfo, resetCrewListIndex) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['CrewManager'].AddCharacterInfo = function(characterInfo) end
+
+---`Method Public Instance`
+_G['CrewManager'].ClearCharacterInfos = function() end
+
+---`Method Public Instance`
+_G['CrewManager'].InitRound = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['CrewManager'].GetOutpostSpawnpoints = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param mainSubWaypoint Barotrauma.WayPoint
+---@param spawnWaypoint Barotrauma.WayPoint
+_G['CrewManager'].InitializeCharacter = function(character, mainSubWaypoint, spawnWaypoint) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param newName System.String
+_G['CrewManager'].RenameCharacter = function(characterInfo, newName) end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+_G['CrewManager'].FireCharacter = function(characterInfo) end
+
+---`Method Public Instance`
+_G['CrewManager'].ClearCurrentOrders = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CrewManager'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param conversationLines (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2System*String)|(System.ValueTuple*1Barotrauma*Character*1System*String[])
+_G['CrewManager'].AddConversation = function(conversationLines) end
+
+---`Method Private Instance`
+_G['CrewManager'].CreateRandomConversation = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CrewManager'].UpdateConversations = function(deltaTime) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@param controlledCharacter Barotrauma.Character
+---@param characters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param includeSelf? System.Boolean
+---@return Barotrauma.Character
+_G['CrewManager'].GetCharacterForQuickAssignment = function(order, controlledCharacter, characters, includeSelf) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@param characters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param controlledCharacter Barotrauma.Character
+---@param includeSelf System.Boolean
+---@param extraCharacters? (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['CrewManager'].GetCharactersSortedForOrder = function(order, characters, controlledCharacter, includeSelf, extraCharacters) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CrewManager'].SaveActiveOrders = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['CrewManager'].LoadActiveOrders = function(element) end
+
+---`Constructor Public Instance`
+---@param isSinglePlayer System.Boolean
+---@return Barotrauma.CrewManager
+_G['CrewManager'] = function(isSinglePlayer) end
+
+---`Constructor Public Instance`
+---@param isSinglePlayer System.Boolean
+---@return Barotrauma.CrewManager
+_G['CrewManager'].__new = function(isSinglePlayer) end
+
diff --git a/Meta/Types/server/_00007FFD9683EDC0.lua b/Meta/Types/server/_00007FFD9683EDC0.lua
new file mode 100644
index 0000000..645c25a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683EDC0.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class Barotrauma.SteeringManager : System.Object
+---`Field NonPublic Instance`
+---@field host Barotrauma.ISteerable
+---`Field NonPublic Instance`
+---@field steering Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lastRayCastTime System.Single
+---`Field Private Instance`
+---@field avoidRayCastHit System.Boolean
+---`Field Private Instance`
+---@field wanderAngle System.Single
+---`Field NonPublic Static`
+---@field CircleDistance System.Single
+---`Field NonPublic Static`
+---@field CircleRadius System.Single
+---`Field NonPublic Static`
+---@field RayCastInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidDir Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidRayCastHitPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidLookAheadPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WanderAngle System.Single
+_G['SteeringManager'] = {}
+
+---`Method Public Instance`
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param weight? System.Single
+_G['SteeringManager'].SteeringSeek = function(targetSimPos, weight) end
+
+---`Method Public Instance`
+---@param weight? System.Single
+---@param avoidWanderingOutsideLevel? System.Boolean
+_G['SteeringManager'].SteeringWander = function(weight, avoidWanderingOutsideLevel) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param lookAheadDistance System.Single
+---@param weight? System.Single
+_G['SteeringManager'].SteeringAvoid = function(deltaTime, lookAheadDistance, weight) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param velocity Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].SteeringManual = function(deltaTime, velocity) end
+
+---`Method Public Instance`
+_G['SteeringManager'].Reset = function() end
+
+---`Method Public Instance`
+_G['SteeringManager'].ResetX = function() end
+
+---`Method Public Instance`
+_G['SteeringManager'].ResetY = function() end
+
+---`Method Public Instance Virtual`
+---@param speed System.Single
+_G['SteeringManager'].Update = function(speed) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].DoSteeringSeek = function(target, weight) end
+
+---`Method NonPublic Instance Virtual`
+---@param weight System.Single
+---@param avoidWanderingOutsideLevel System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].DoSteeringWander = function(weight, avoidWanderingOutsideLevel) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+---@param lookAheadDistance System.Single
+---@param weight System.Single
+---@param heading? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['SteeringManager'].DoSteeringAvoid = function(deltaTime, lookAheadDistance, weight, heading) end
+
+---`Constructor Public Instance`
+---@param host Barotrauma.ISteerable
+---@return Barotrauma.SteeringManager
+_G['SteeringManager'] = function(host) end
+
+---`Constructor Public Instance`
+---@param host Barotrauma.ISteerable
+---@return Barotrauma.SteeringManager
+_G['SteeringManager'].__new = function(host) end
+
diff --git a/Meta/Types/server/_00007FFD9683F880.lua b/Meta/Types/server/_00007FFD9683F880.lua
new file mode 100644
index 0000000..96c42d6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9683F880.lua
@@ -0,0 +1,172 @@
+---@meta
+---@class Barotrauma.IndoorsSteeringManager : Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field pathFinder Barotrauma.PathFinder
+---`Field Private Instance`
+---@field currentPath Barotrauma.SteeringPath
+---`Field Private Instance`
+---@field canOpenDoors System.Boolean
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field currentTargetPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field findPathTimer System.Single
+---`Field Private Instance`
+---@field checkDoorsTimer System.Single
+---`Field Private Instance`
+---@field buttonPressTimer System.Single
+---`Field Private Instance`
+---@field lastDoor System.ValueTuple*1Barotrauma*Items*Components*Door*1System*Boolean
+---`Field Public Static`
+---@field smallRoomSize System.Single
+---`Field Private Static`
+---@field ButtonPressCooldown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBreakDoors System.Boolean
+---`Getter Public Instance`
+---@field CurrentPath Barotrauma.SteeringPath
+---`Getter Public Instance`
+---@field PathFinder Barotrauma.PathFinder
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsPathDirty System.Boolean
+---`Getter Public Instance`
+---@field PathHasStairs System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentNodeLadder System.Boolean
+---`Getter Public Instance`
+---@field IsNextNodeLadder System.Boolean
+---`Getter Public Instance`
+---@field IsNextLadderSameAsCurrent System.Boolean
+_G['IndoorsSteeringManager'] = {}
+
+---`Method Private Instance`
+---@param door Barotrauma.Items.Components.Door
+---@return System.Boolean
+_G['IndoorsSteeringManager'].ShouldBreakDoor = function(door) end
+
+---`Method Public Instance Virtual`
+---@param speed System.Single
+_G['IndoorsSteeringManager'].Update = function(speed) end
+
+---`Method Public Instance`
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@param path Barotrauma.SteeringPath
+_G['IndoorsSteeringManager'].SetPath = function(targetPos, path) end
+
+---`Method Public Instance`
+_G['IndoorsSteeringManager'].ResetPath = function() end
+
+---`Method Public Instance`
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param weight? System.Single
+_G['IndoorsSteeringManager'].SteeringSeekSimple = function(targetSimPos, weight) end
+
+---`Method Public Instance`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@param minGapWidth? System.Single
+---@param startNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param endNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param nodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param checkVisiblity? System.Boolean
+_G['IndoorsSteeringManager'].SteeringSeek = function(target, weight, minGapWidth, startNodeFilter, endNodeFilter, nodeFilter, checkVisiblity) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.Ladder
+_G['IndoorsSteeringManager'].GetCurrentLadder = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.Ladder
+_G['IndoorsSteeringManager'].GetNextLadder = function() end
+
+---`Method Private Instance`
+---@param wp Barotrauma.WayPoint
+---@return Barotrauma.Items.Components.Ladder
+_G['IndoorsSteeringManager'].GetLadder = function(wp) end
+
+---`Method Private Instance`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@param minGapSize? System.Single
+---@param startNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param endNodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param nodeFilter? (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---@param checkVisibility? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].CalculateSteeringSeek = function(target, weight, minGapSize, startNodeFilter, endNodeFilter, nodeFilter, checkVisibility) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Microsoft.Xna.Framework.Vector2
+---@param weight System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].DoSteeringSeek = function(target, weight) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].DiffToCurrentNode = function() end
+
+---`Method Private Instance`
+---@param checkDoors System.Boolean
+_G['IndoorsSteeringManager'].NextNode = function(checkDoors) end
+
+---`Method Public Instance`
+---@param door Barotrauma.Items.Components.Door
+---@param buttonFilter? (System.Func*1Barotrauma*Items*Components*Controller*1System*Boolean)|(fun(arg:Barotrauma.Items.Components.Controller):(System.Boolean))
+---@return System.Boolean
+_G['IndoorsSteeringManager'].CanAccessDoor = function(door, buttonFilter) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['IndoorsSteeringManager'].GetColliderSize = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['IndoorsSteeringManager'].GetColliderLength = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['IndoorsSteeringManager'].GetDoorCheckTime = function() end
+
+---`Method Private Instance`
+_G['IndoorsSteeringManager'].CheckDoorsInPath = function() end
+
+---`Method Private Instance`
+---@param node Barotrauma.PathNode
+---@param nextNode Barotrauma.PathNode
+---@return System.Nullable*1System*Single
+_G['IndoorsSteeringManager'].GetNodePenalty = function(node, nextNode) end
+
+---`Method Private Instance`
+---@param node Barotrauma.PathNode
+---@return System.Nullable*1System*Single
+_G['IndoorsSteeringManager'].GetSingleNodePenalty = function(node) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param wallAvoidDistance? System.Single
+---@param stayStillInTightSpace? System.Boolean
+_G['IndoorsSteeringManager'].Wander = function(deltaTime, wallAvoidDistance, stayStillInTightSpace) end
+
+---`Constructor Public Instance`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(host:Barotrauma.ISteerable, canOpenDoors:System.Boolean, canBreakDoors:System.Boolean):Barotrauma.IndoorsSteeringManager
+---@return Barotrauma.IndoorsSteeringManager
+_G['IndoorsSteeringManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96850948.lua b/Meta/Types/server/_00007FFD96850948.lua
new file mode 100644
index 0000000..16459fe
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96850948.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.InputType : System.Enum
+---`Field Public Static`
+---@field Select Barotrauma.InputType
+---`Field Public Static`
+---@field Use Barotrauma.InputType
+---`Field Public Static`
+---@field Aim Barotrauma.InputType
+---`Field Public Static`
+---@field Up Barotrauma.InputType
+---`Field Public Static`
+---@field Down Barotrauma.InputType
+---`Field Public Static`
+---@field Left Barotrauma.InputType
+---`Field Public Static`
+---@field Right Barotrauma.InputType
+---`Field Public Static`
+---@field Attack Barotrauma.InputType
+---`Field Public Static`
+---@field Run Barotrauma.InputType
+---`Field Public Static`
+---@field Crouch Barotrauma.InputType
+---`Field Public Static`
+---@field InfoTab Barotrauma.InputType
+---`Field Public Static`
+---@field Chat Barotrauma.InputType
+---`Field Public Static`
+---@field RadioChat Barotrauma.InputType
+---`Field Public Static`
+---@field CrewOrders Barotrauma.InputType
+---`Field Public Static`
+---@field Ragdoll Barotrauma.InputType
+---`Field Public Static`
+---@field Health Barotrauma.InputType
+---`Field Public Static`
+---@field Grab Barotrauma.InputType
+---`Field Public Static`
+---@field DropItem Barotrauma.InputType
+---`Field Public Static`
+---@field SelectNextCharacter Barotrauma.InputType
+---`Field Public Static`
+---@field SelectPreviousCharacter Barotrauma.InputType
+---`Field Public Static`
+---@field Voice Barotrauma.InputType
+---`Field Public Static`
+---@field RadioVoice Barotrauma.InputType
+---`Field Public Static`
+---@field LocalVoice Barotrauma.InputType
+---`Field Public Static`
+---@field Deselect Barotrauma.InputType
+---`Field Public Static`
+---@field Shoot Barotrauma.InputType
+---`Field Public Static`
+---@field Command Barotrauma.InputType
+---`Field Public Static`
+---@field ContextualCommand Barotrauma.InputType
+---`Field Public Static`
+---@field ToggleInventory Barotrauma.InputType
+---`Field Public Static`
+---@field TakeOneFromInventorySlot Barotrauma.InputType
+---`Field Public Static`
+---@field TakeHalfFromInventorySlot Barotrauma.InputType
+---`Field Public Static`
+---@field NextFireMode Barotrauma.InputType
+---`Field Public Static`
+---@field PreviousFireMode Barotrauma.InputType
+---`Field Public Static`
+---@field ActiveChat Barotrauma.InputType
+---`Field Public Static`
+---@field ToggleChatMode Barotrauma.InputType
+---`Field Public Static`
+---@field ChatBox Barotrauma.InputType
+---`Field Public Static`
+---@field ShowInteractionLabels Barotrauma.InputType
+_G['InputType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96850AA0.lua b/Meta/Types/server/_00007FFD96850AA0.lua
new file mode 100644
index 0000000..260bc6c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96850AA0.lua
@@ -0,0 +1,389 @@
+---@meta
+---@class Barotrauma.Items.Components.ItemComponent : System.Object
+---`Field NonPublic Instance`
+---@field item Barotrauma.Item
+---`Field NonPublic Instance`
+---@field name System.String
+---`Field Private Instance`
+---@field isActive System.Boolean
+---`Field NonPublic Instance`
+---@field characterUsable System.Boolean
+---`Field NonPublic Instance`
+---@field canBePicked System.Boolean
+---`Field NonPublic Instance`
+---@field canBeSelected System.Boolean
+---`Field NonPublic Instance`
+---@field canBeCombined System.Boolean
+---`Field NonPublic Instance`
+---@field removeOnCombined System.Boolean
+---`Field Public Instance`
+---@field WasUsed System.Boolean
+---`Field Public Instance`
+---@field WasSecondaryUsed System.Boolean
+---`Field Public Instance`
+---@field statusEffectLists (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Public Instance`
+---@field RequiredItems (System.Collections.Generic.Dictionary*1Barotrauma*RelatedItem*RelationType*1System*Collections*Generic*List*2Barotrauma*RelatedItem)|({[Barotrauma.RelatedItem.RelationType]:((System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[]))})
+---`Field Public Instance`
+---@field DisabledRequiredItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Public Instance`
+---@field RequiredSkills (System.Collections.Generic.List*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---`Field Private Instance`
+---@field parent Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field originalElement Barotrauma.ContentXElement
+---`Field NonPublic Instance`
+---@field delayedCorrectionCoroutine Barotrauma.CoroutineHandle
+---`Field Public Instance`
+---@field OnActiveStateChanged (System.Action*1System*Boolean)|(fun(obj:System.Boolean))
+---`Field Private Instance`
+---@field drawable System.Boolean
+---`Field Public Instance`
+---@field IsActiveConditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Field Public Instance`
+---@field OnUsed Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemComponent*ItemUseInfo
+---`Field Public Instance`
+---@field InheritStatusEffects System.Boolean
+---`Field NonPublic Instance`
+---@field aiUpdateTimer System.Single
+---`Field NonPublic Static`
+---@field CorrectionDelay System.Single
+---`Field NonPublic Static`
+---@field AIUpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Parent Barotrauma.Items.Components.ItemComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InheritParentIsActive System.Boolean
+---`Getter Public Instance Virtual`
+---@field DontTransferInventoryBetweenSubs System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisallowSellingItemsFromContainer System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PickingTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PickingMsg System.String
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsActiveConditionalComparison Barotrauma.PropertyConditional.LogicalOperatorType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Drawable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBePicked System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field DrawHudWhenEquipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LockGuiFramePosition System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GuiFrameOffset Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBeSelected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBeCombined System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveOnCombined System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterUsable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowInGameEditing System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field PickKey Barotrauma.InputType
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SelectKey Barotrauma.InputType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeleteOnUse System.Boolean
+---`Getter Public Instance`
+---@field Item Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Msg System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplayMsg Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CombatPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ManuallySelectedSound System.Int32
+---`Getter Public Instance`
+---@field Speed System.Single
+---`Getter Public Instance Virtual`
+---@field UpdateWhenInactive System.Boolean
+_G['Components']['ItemComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['ItemComponent'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].Reset = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ItemComponent'].OverrideRequiredItems = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].ParseMsg = function() end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['ItemComponent'].ValidateEventData = function(data) end
+
+---`Method NonPublic Instance`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return Barotrauma.Items.Components.ItemComponent.T
+_G['Components']['ItemComponent'].ExtractEventData = function(data) end
+
+---`Method NonPublic Instance`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@param componentData Barotrauma.Items.Components.T-ref
+---@return System.Boolean
+_G['Components']['ItemComponent'].TryExtractEventData = function(data, componentData) end
+
+---`Method NonPublic Instance`
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param character Barotrauma.Character
+---@param currentObjective Barotrauma.AIObjective
+---@param itemCount System.Int32
+---@param equip System.Boolean
+---@param removeEmpty System.Boolean
+---@param spawnItemIfNotFound? System.Boolean
+---@param dropItemOnDeselected? System.Boolean
+---@return Barotrauma.AIObjectiveContainItem
+_G['Components']['ItemComponent'].AIContainItems = function(container, character, currentObjective, itemCount, equip, removeEmpty, spawnItemIfNotFound, dropItemOnDeselected) end
+
+---`Method Private Instance`
+---@param subElement Barotrauma.ContentXElement
+---@return System.Boolean
+_G['Components']['ItemComponent'].LoadElemProjSpecific = function(subElement) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Items.Components.ItemComponent.IEventData
+_G['Components']['ItemComponent'].ServerGetEventData = function() end
+
+---`Method Private Instance`
+---@param isActive System.Boolean
+_G['Components']['ItemComponent'].SetActiveState = function(isActive) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param allowEmpty? System.Boolean
+_G['Components']['ItemComponent'].SetRequiredItems = function(element, allowEmpty) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['ItemComponent'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['ItemComponent'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['ItemComponent'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemComponent'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['ItemComponent'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['ItemComponent'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ItemComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].Combine = function(item, user) end
+
+---`Method Public Instance`
+_G['Components']['ItemComponent'].Remove = function() end
+
+---`Method Public Instance`
+_G['Components']['ItemComponent'].ShallowRemove = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemComponent'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemComponent'].RemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance`
+---@param subElement Barotrauma.ContentXElement
+---@return System.String
+_G['Components']['ItemComponent'].GetTextureDirectory = function(subElement) end
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.Character):(System.Boolean)
+---@param character Barotrauma.Character
+---@param insufficientSkill Barotrauma.Skill-ref
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasRequiredSkills = function(character, insufficientSkill) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Components']['ItemComponent'].GetSkillMultiplier = function() end
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.Character):(System.Single)
+---@param character Barotrauma.Character
+---@param requiredSkills (System.Collections.Generic.List*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---@return System.Single
+_G['Components']['ItemComponent'].DegreeOfSuccess = function(character, requiredSkills) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['ItemComponent'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['ItemComponent'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].IsEmpty = function(user) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasRequiredContainedItems = function(user, addMessage, msg) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasAccess = function(character) end
+
+---`Method Private Instance`
+---@param relatedItem Barotrauma.RelatedItem
+---@param idCard Barotrauma.Items.Components.IdCard
+---@return System.Boolean
+_G['Components']['ItemComponent'].CheckIdCardAccess = function(relatedItem, idCard) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['ItemComponent'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param user? Barotrauma.Character
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param afflictionMultiplier? System.Single
+_G['Components']['ItemComponent'].ApplyStatusEffects = function(type, deltaTime, character, targetLimb, useTarget, user, worldPosition, afflictionMultiplier) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['ItemComponent'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param item Barotrauma.Item
+---@param errorMessages? System.Boolean
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'].Load = function(element, item, errorMessages) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnScaleChanged = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemComponent'].OnInventoryChanged = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Components']['ItemComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96850E48.lua b/Meta/Types/server/_00007FFD96850E48.lua
new file mode 100644
index 0000000..1c301a7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96850E48.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.Items.Components.Pickable : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field picker Barotrauma.Character
+---`Field NonPublic Instance`
+---@field allowedSlots (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Private Instance`
+---@field pickTimer System.Single
+---`Field Private Instance`
+---@field activePicker Barotrauma.Character
+---`Field Private Instance`
+---@field pickingCoroutine Barotrauma.CoroutineHandle
+---`Getter Public Instance Virtual`
+---@field IsAttached System.Boolean
+---`Getter Public Instance`
+---@field AllowedSlots (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Getter Public Instance`
+---@field PickingDone System.Boolean
+---`Getter Public Instance`
+---@field Picker Barotrauma.Character
+_G['Components']['Pickable'] = {}
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Pickable'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@overload fun(picker:Barotrauma.Character):(System.Boolean)
+---@param picker Barotrauma.Character
+---@param pickDroppedStack System.Boolean
+---@return System.Boolean
+_G['Components']['Pickable'].OnPicked = function(picker, pickDroppedStack) end
+
+---`Method Private Instance`
+---@param picker Barotrauma.Character
+---@param requiredTime System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Components']['Pickable'].WaitForPick = function(picker, requiredTime) end
+
+---`Method NonPublic Instance`
+---@param picker Barotrauma.Character
+_G['Components']['Pickable'].StopPicking = function(picker) end
+
+---`Method NonPublic Instance`
+---@param character Barotrauma.Character
+_G['Components']['Pickable'].DropConnectedWires = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Pickable'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Pickable'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Pickable'].ClientEventRead = function(msg, sendingTime) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pickable
+_G['Components']['Pickable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pickable
+_G['Components']['Pickable'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96851918.lua b/Meta/Types/server/_00007FFD96851918.lua
new file mode 100644
index 0000000..993b082
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96851918.lua
@@ -0,0 +1,273 @@
+---@meta
+---@class Barotrauma.Items.Components.Door : Barotrauma.Items.Components.Pickable
+---`Field Private Instance`
+---@field linkedGap Barotrauma.Gap
+---`Field Private Instance`
+---@field isOpen System.Boolean
+---`Field Private Instance`
+---@field openState System.Single
+---`Field Private Instance`
+---@field doorSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field weldedSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field brokenSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field scaleBrokenSprite System.Boolean
+---`Field Private Instance`
+---@field fadeBrokenSprite System.Boolean
+---`Field Private Instance`
+---@field autoOrientGap System.Boolean
+---`Field Private Instance`
+---@field isJammed System.Boolean
+---`Field Private Instance`
+---@field isStuck System.Boolean
+---`Field Private Instance`
+---@field resetPredictionTimer System.Single
+---`Field Private Instance`
+---@field toggleCooldownTimer System.Single
+---`Field Private Instance`
+---@field lastUser Barotrauma.Character
+---`Field Private Instance`
+---@field damageSoundCooldown System.Single
+---`Field Private Instance`
+---@field lastBrokenTime System.Double
+---`Field Private Instance`
+---@field doorRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field isBroken System.Boolean
+---`Field Public Instance`
+---@field OutsideSubmarineFixture FarseerPhysics.Dynamics.Fixture
+---`Field Public Instance`
+---@field CanBeWelded System.Boolean
+---`Field Private Instance`
+---@field stuck System.Single
+---`Field Private Instance`
+---@field accessDeniedTxt Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field cannotOpenText Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field itemPosErrorShown System.Boolean
+---`Field Private Instance`
+---@field characterPosErrorShown (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Static`
+---@field doorList (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Door)|(Barotrauma.Items.Components.Door[])
+---`Field Private Static`
+---@field StuckReductionOnOpen System.Single
+---`Getter Public Static`
+---@field DoorList (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Door)|(fun():(Barotrauma.Items.Components.Door))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsJammed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsStuck System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreSignals System.Boolean
+---`Getter Public Instance`
+---@field CanBeTraversed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Body Barotrauma.PhysicsBody
+---`Getter Private Instance`
+---@field RepairThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stuck System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OpeningSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClosingSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ToggleCoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PredictedState System.Nullable*1System*Boolean
+---`Getter Public Instance`
+---@field LinkedGap Barotrauma.Gap
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---@field IsConvexHullHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Window Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOpen System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShouldBeOpen System.Boolean
+---`Getter Public Instance`
+---@field IsClosed System.Boolean
+---`Getter Public Instance`
+---@field IsFullyOpen System.Boolean
+---`Getter Public Instance`
+---@field IsFullyClosed System.Boolean
+---`Getter Public Instance`
+---@field HasWindow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasIntegratedButtons System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ToggleWhenClicked System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OpenState System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Impassable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseBetweenOutpostModules System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BotsShouldKeepOpen System.Boolean
+_G['Components']['Door'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Door'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+_G['Components']['Door'].GetLinkedGap = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Door'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['Door'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['Door'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].OnPicked = function(picker) end
+
+---`Method Private Instance`
+---@param actionType Barotrauma.ActionType
+---@param user Barotrauma.Character
+_G['Components']['Door'].ToggleState = function(actionType, user) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].Select = function(character) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param maxPerpendicularDistance? System.Single
+---@return System.Boolean
+_G['Components']['Door'].IsPositionOnWindow = function(position, maxPerpendicularDistance) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Door'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Door'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['Door'].EnableBody = function() end
+
+---`Method Private Instance`
+_G['Components']['Door'].DisableBody = function() end
+
+---`Method Public Instance`
+_G['Components']['Door'].RefreshLinkedGap = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Door'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Door'].OnScaleChanged = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Door'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Door'].CheckSubmarinesInDoorWay = function() end
+
+---`Method Private Instance`
+_G['Components']['Door'].PushCharactersAway = function() end
+
+---`Method Private Instance`
+---@param c Barotrauma.Character
+---@param body Barotrauma.PhysicsBody
+---@param dir System.Int32
+---@param doorRectSimPos Microsoft.Xna.Framework.Vector2
+---@param doorRectSimSize Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Door'].PushBodyOutOfDoorway = function(c, body, dir, doorRectSimPos, doorRectSimSize) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Door'].HasAccess = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Door'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@param open System.Boolean
+---@param isNetworkMessage System.Boolean
+---@param sendNetworkMessage? System.Boolean
+_G['Components']['Door'].TrySetState = function(open, isNetworkMessage, sendNetworkMessage) end
+
+---`Method Private Instance`
+---@param open System.Boolean
+---@param isNetworkMessage System.Boolean
+---@param sendNetworkMessage System.Boolean
+---@param forcedOpen System.Boolean
+_G['Components']['Door'].SetState = function(open, isNetworkMessage, sendNetworkMessage, forcedOpen) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Door
+---@return Barotrauma.Items.Components.Door
+_G['Components']['Door'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96852128.lua b/Meta/Types/server/_00007FFD96852128.lua
new file mode 100644
index 0000000..93c93bf
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96852128.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.SteeringPath : System.Object
+---`Field Private Instance`
+---@field nodes (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field currentIndex System.Int32
+---`Field Private Instance`
+---@field totalLength System.Nullable*1System*Single
+---`Field Private Instance`
+---@field nodeDistances (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Unreachable System.Boolean
+---`Getter Public Instance`
+---@field TotalLength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasOutdoorsNodes System.Boolean
+---`Getter Public Instance`
+---@field CurrentIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Cost System.Single
+---`Getter Public Instance`
+---@field PrevNode Barotrauma.WayPoint
+---`Getter Public Instance`
+---@field CurrentNode Barotrauma.WayPoint
+---`Getter Public Instance`
+---@field IsAtEndNode System.Boolean
+---`Getter Public Instance`
+---@field Nodes (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Getter Public Instance`
+---@field NextNode Barotrauma.WayPoint
+---`Getter Public Instance`
+---@field Finished System.Boolean
+_G['SteeringPath'] = {}
+
+---`Method Public Instance`
+---@param startIndex? System.Nullable*1System*Int32
+---@param endIndex? System.Nullable*1System*Int32
+---@return System.Single
+_G['SteeringPath'].GetLength = function(startIndex, endIndex) end
+
+---`Method Private Instance`
+_G['SteeringPath'].CalculateTotalLength = function() end
+
+---`Method Public Instance`
+---@param node Barotrauma.WayPoint
+_G['SteeringPath'].AddNode = function(node) end
+
+---`Method Public Instance`
+_G['SteeringPath'].SkipToNextNode = function() end
+
+---`Method Public Instance`
+---@param nodeIndex System.Int32
+_G['SteeringPath'].SkipToNode = function(nodeIndex) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param minSimDistance? System.Single
+---@return Barotrauma.WayPoint
+_G['SteeringPath'].CheckProgress = function(simPosition, minSimDistance) end
+
+---`Method Public Instance`
+_G['SteeringPath'].ClearPath = function() end
+
+---`Constructor Public Instance`
+---@param unreachable? System.Boolean
+---@return Barotrauma.SteeringPath
+_G['SteeringPath'] = function(unreachable) end
+
+---`Constructor Public Instance`
+---@param unreachable? System.Boolean
+---@return Barotrauma.SteeringPath
+_G['SteeringPath'].__new = function(unreachable) end
+
diff --git a/Meta/Types/server/_00007FFD96852370.lua b/Meta/Types/server/_00007FFD96852370.lua
new file mode 100644
index 0000000..68e3ecf
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96852370.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.HireManager : System.Object
+---`Field Public Instance`
+---@field PendingHires (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---`Field Public Static`
+---@field MaxAvailableCharacters System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvailableCharacters (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+_G['HireManager'] = {}
+
+---`Method Public Instance`
+---@param character Barotrauma.CharacterInfo
+_G['HireManager'].RemoveCharacter = function(character) end
+
+---`Method Public Static`
+---@overload fun(hires:(System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))):(System.Int32)
+---@param hire Barotrauma.CharacterInfo
+---@return System.Int32
+_G['HireManager'].GetSalaryFor = function(hire) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param amount System.Int32
+_G['HireManager'].GenerateCharacters = function(location, amount) end
+
+---`Method Private Instance`
+---@param faction Barotrauma.FactionPrefab
+_G['HireManager'].GenerateFactionCharacters = function(faction) end
+
+---`Method Public Instance`
+_G['HireManager'].Remove = function() end
+
+---`Method Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param newName System.String
+_G['HireManager'].RenameCharacter = function(characterInfo, newName) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HireManager
+_G['HireManager'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HireManager
+_G['HireManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968527D8.lua b/Meta/Types/server/_00007FFD968527D8.lua
new file mode 100644
index 0000000..c71151e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968527D8.lua
@@ -0,0 +1,150 @@
+---@meta
+---@class Barotrauma.MedicalClinic : System.Object
+---`Field Private Instance`
+---@field rateLimiter Barotrauma.RateLimiter
+---`Field Private Instance`
+---@field afflictionSubscribers (System.Collections.Generic.List*1Barotrauma*MedicalClinic*AfflictionSubscriber)|(Barotrauma.MedicalClinic.AfflictionSubscriber[])
+---`Field Public Instance`
+---@field PendingHeals (System.Collections.Generic.List*1Barotrauma*MedicalClinic*NetCrewMember)|(Barotrauma.MedicalClinic.NetCrewMember[])
+---`Field Public Instance`
+---@field OnUpdate (System.Action)|(fun())
+---`Field Private Instance`
+---@field campaign Barotrauma.CampaignMode
+---`Field Private Instance`
+---@field charactersWithAfflictionChanges (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field processAfflictionChangesTimer System.Single
+---`Field Private Static`
+---@field RateLimitMaxRequests System.Int32
+---`Field Private Static`
+---@field RateLimitExpiry System.Int32
+---`Field Private Static`
+---@field ProcessAfflictionChangesInterval System.Single
+_G['MedicalClinic'] = {}
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['MedicalClinic'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['MedicalClinic'].ServerRead = function(inc, sender) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].ProcessNewAddition = function(inc, client) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].ProcessAddEverything = function(client) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].RemoveClientSubscription = function(client) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].ProcessNewRemoval = function(inc, client) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].ProcessRequestedPending = function(client) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].ProcessHealing = function(client) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].ProcessClearing = function(client) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param client Barotrauma.Networking.Client
+_G['MedicalClinic'].ProcessRequestedAfflictions = function(inc, client) end
+
+---`Method Private Instance`
+---@return Barotrauma.Networking.IWriteMessage
+_G['MedicalClinic'].StartSending = function() end
+
+---`Method Private Instance`
+---@param netStruct Barotrauma.INetSerializableStruct
+---@param header Barotrauma.MedicalClinic.NetworkHeader
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@param targetClient? Barotrauma.Networking.Client
+---@param reponseClient? Barotrauma.Networking.Client
+_G['MedicalClinic'].ServerSend = function(netStruct, header, deliveryMethod, targetClient, reponseClient) end
+
+---`Method Private Static`
+---@return System.Boolean
+_G['MedicalClinic'].IsOutpostInCombat = function() end
+
+---`Method Private Instance`
+---@param force? System.Boolean
+---@param client? Barotrauma.Networking.Client
+---@return Barotrauma.MedicalClinic.HealRequestResult
+_G['MedicalClinic'].HealAllPending = function(force, client) end
+
+---`Method Private Instance`
+_G['MedicalClinic'].ClearPendingHeals = function() end
+
+---`Method Private Instance`
+_G['MedicalClinic'].AddEverythingToPending = function() end
+
+---`Method Private Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+---@param affliction Barotrauma.MedicalClinic.NetAffliction
+_G['MedicalClinic'].RemovePendingAffliction = function(crewMember, affliction) end
+
+---`Method Private Instance`
+---@param crewMember Barotrauma.MedicalClinic.NetCrewMember
+_G['MedicalClinic'].InsertPendingCrewMember = function(crewMember) end
+
+---`Method Public Static`
+---@param affliction Barotrauma.Affliction
+---@return System.Boolean
+_G['MedicalClinic'].IsHealable = function(affliction) end
+
+---`Method Private Instance`
+---@param health Barotrauma.CharacterHealth
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetAffliction)|(Barotrauma.MedicalClinic.NetAffliction[])
+_G['MedicalClinic'].GetAllAfflictions = function(health) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+_G['MedicalClinic'].OnAfflictionCountChanged = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['MedicalClinic'].OnAfflictionCountChangedPrivate = function(character) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['MedicalClinic'].GetTotalCost = function() end
+
+---`Method Private Instance`
+---@param price System.Int32
+---@return System.Int32
+_G['MedicalClinic'].GetAdjustedPrice = function(price) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['MedicalClinic'].GetBalance = function() end
+
+---`Method Public Static`
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+_G['MedicalClinic'].GetCrewCharacters = function() end
+
+---`Constructor Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@return Barotrauma.MedicalClinic
+_G['MedicalClinic'] = function(campaign) end
+
+---`Constructor Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@return Barotrauma.MedicalClinic
+_G['MedicalClinic'].__new = function(campaign) end
+
diff --git a/Meta/Types/server/_00007FFD96852A30.lua b/Meta/Types/server/_00007FFD96852A30.lua
new file mode 100644
index 0000000..57149d6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96852A30.lua
@@ -0,0 +1,69 @@
+---@meta
+---@class Barotrauma.ReadyCheck : System.Object
+---`Field Private Instance`
+---@field endTime System.DateTime
+---`Field Private Instance`
+---@field startTime System.DateTime
+---`Field Public Instance`
+---@field Clients (System.Collections.Generic.Dictionary*1System*Byte*1Barotrauma*ReadyStatus)|({[System.Byte]:(Barotrauma.ReadyStatus)})
+---`Field Public Instance`
+---@field IsFinished System.Boolean
+---`Getter Private Static`
+---@field ActivePlayers (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+_G['ReadyCheck'] = {}
+
+---`Method Public Instance`
+---@param author System.String
+---@param sender? Barotrauma.Networking.Client
+_G['ReadyCheck'].InitializeReadyCheck = function(author, sender) end
+
+---`Method Private Instance`
+---@param otherClient System.Byte
+---@param state Barotrauma.ReadyStatus
+_G['ReadyCheck'].UpdateReadyCheck = function(otherClient, state) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param client Barotrauma.Networking.Client
+_G['ReadyCheck'].ServerRead = function(inc, client) end
+
+---`Method Public Static`
+---@param author System.String
+---@param sender? Barotrauma.Networking.Client
+_G['ReadyCheck'].StartReadyCheck = function(author, sender) end
+
+---`Method Private Instance`
+_G['ReadyCheck'].EndReadyCheck = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['ReadyCheck'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@param clients (System.Collections.Generic.List*1System*Byte)|(System.Byte[])
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'] = function(clients) end
+
+---`Constructor Public Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@param clients (System.Collections.Generic.List*1System*Byte)|(System.Byte[])
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'].__new = function(clients) end
+
+---`Constructor Private Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@param clients (System.Collections.Generic.List*1System*Byte)|(System.Byte[])
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'] = function(clients) end
+
+---`Constructor Private Instance`
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), startTime:System.DateTime, endTime:System.DateTime):Barotrauma.ReadyCheck
+---@overload fun(clients:(System.Collections.Generic.List*1System*Byte)|(System.Byte[]), duration:System.Single):Barotrauma.ReadyCheck
+---@param clients (System.Collections.Generic.List*1System*Byte)|(System.Byte[])
+---@return Barotrauma.ReadyCheck
+_G['ReadyCheck'].__new = function(clients) end
+
diff --git a/Meta/Types/server/_00007FFD96853128.lua b/Meta/Types/server/_00007FFD96853128.lua
new file mode 100644
index 0000000..ec36876
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96853128.lua
@@ -0,0 +1,256 @@
+---@meta
+---@class Barotrauma.Mission : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.MissionPrefab
+---`Field Private Instance`
+---@field completed System.Boolean
+---`Field NonPublic Instance`
+---@field failed System.Boolean
+---`Field NonPublic Instance`
+---@field level Barotrauma.Level
+---`Field NonPublic Instance`
+---@field state System.Int32
+---`Field Private Instance`
+---@field completeCheckDataAction Barotrauma.CheckDataAction
+---`Field Public Instance`
+---@field Headers (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Public Instance`
+---@field Messages (System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field finalReward System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field successMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field failureMessage Barotrauma.LocalizedString
+---`Field NonPublic Instance`
+---@field description Barotrauma.LocalizedString
+---`Field NonPublic Instance`
+---@field descriptionWithoutReward Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field OriginLocation Barotrauma.Location
+---`Field Public Instance`
+---@field Locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---`Field Private Instance`
+---@field delayedTriggerEvents (System.Collections.Generic.List*1Barotrauma*Mission*DelayedTriggerEvent)|(Barotrauma.Mission.DelayedTriggerEvent[])
+---`Field Public Instance`
+---@field OnMissionStateChanged (System.Action*1Barotrauma*Mission)|(fun(obj:Barotrauma.Mission))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimesAttempted System.Int32
+---`Getter NonPublic Static`
+---@field IsClient System.Boolean
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field SuccessMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field FailureMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field AllowUndocking System.Boolean
+---`Getter Public Instance Virtual`
+---@field Reward System.Int32
+---`Getter Public Instance`
+---@field ReputationRewards (System.Collections.Immutable.ImmutableList*1Barotrauma*MissionPrefab*ReputationReward)|(Barotrauma.MissionPrefab.ReputationReward[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Completed System.Boolean
+---`Getter Public Instance`
+---@field Failed System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowRespawning System.Boolean
+---`Getter Public Instance Virtual`
+---@field TeamCount System.Int32
+---`Getter Public Instance Virtual`
+---@field EnemySubmarineInfo Barotrauma.SubmarineInfo
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance`
+---@field SonarIconIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Difficulty System.Nullable*1System*Int32
+_G['Mission'] = {}
+
+---`Method Public Static`
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param totalReward System.Int32
+---@return System.Int32
+_G['Mission'].DistributeRewardsToCrew = function(crew, totalReward) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['Mission'].ServerWriteInitial = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Mission'].ServerWrite = function(msg) end
+
+---`Method Public Instance`
+---@param message Barotrauma.LocalizedString
+---@param sub Barotrauma.Submarine
+---@param replaceReward? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['Mission'].ReplaceVariablesInMissionMessage = function(message, sub, replaceReward) end
+
+---`Method Public Instance Virtual`
+---@param level Barotrauma.LevelData
+_G['Mission'].SetLevel = function(level) end
+
+---`Method Public Static`
+---@overload fun(locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), seed:System.String, requireCorrectLocationType:System.Boolean, missionTypes:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), isSinglePlayer?:System.Boolean, difficultyLevel?:System.Nullable*1System*Single):(Barotrauma.Mission)
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param rand Barotrauma.MTRandom
+---@param requireCorrectLocationType System.Boolean
+---@param missionTypes (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param isSinglePlayer? System.Boolean
+---@param difficultyLevel? System.Nullable*1System*Single
+---@return Barotrauma.Mission
+_G['Mission'].LoadRandom = function(locations, rand, requireCorrectLocationType, missionTypes, isSinglePlayer, difficultyLevel) end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['Mission'].GetBaseReward = function(sub) end
+
+---`Method Public Instance`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['Mission'].GetReward = function(sub) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+_G['Mission'].Start = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['Mission'].StartMissionSpecific = function(level) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Mission'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['Mission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@param missionState System.Int32
+_G['Mission'].ShowMessage = function(missionState) end
+
+---`Method Private Instance`
+---@param missionState System.Int32
+_G['Mission'].ShowMessageProjSpecific = function(missionState) end
+
+---`Method NonPublic Instance Virtual`
+---@param message Barotrauma.LocalizedString
+---@param color? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['Mission'].ModifyMessage = function(message, color) end
+
+---`Method Private Instance`
+---@param state System.Int32
+_G['Mission'].TryTriggerEvents = function(state) end
+
+---`Method Private Instance`
+---@param trigger Barotrauma.MissionPrefab.TriggerEvent
+_G['Mission'].TryTriggerEvent = function(trigger) end
+
+---`Method Private Instance`
+---@param trigger Barotrauma.MissionPrefab.TriggerEvent
+_G['Mission'].TriggerEvent = function(trigger) end
+
+---`Method Public Instance`
+_G['Mission'].End = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Boolean
+_G['Mission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['Mission'].EndMissionSpecific = function(completed) end
+
+---`Method Public Instance`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['Mission'].GetFinalReward = function(sub) end
+
+---`Method Private Instance`
+---@param sub Barotrauma.Submarine
+_G['Mission'].CalculateFinalReward = function(sub) end
+
+---`Method Private Instance`
+_G['Mission'].GiveReward = function() end
+
+---`Method Private Instance`
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param experienceGain System.Int32
+_G['Mission'].DistributeExperienceToCrew = function(crew, experienceGain) end
+
+---`Method Public Static`
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param rewardDistribution? System.Int32
+---@return System.Int32
+_G['Mission'].GetRewardDistibutionSum = function(crew, rewardDistribution) end
+
+---`Method Public Static`
+---@param rewardDistribution System.Int32
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param reward Barotrauma.Option*1System*Int32
+---@return System.ValueTuple*1System*Int32*1System*Int32*1System*Single
+_G['Mission'].GetRewardShare = function(rewardDistribution, crew, reward) end
+
+---`Method NonPublic Instance`
+---@param change Barotrauma.LocationTypeChange
+_G['Mission'].ChangeLocationType = function(change) end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['Mission'].AdjustLevelData = function(levelData) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.HumanPrefab
+_G['Mission'].GetHumanPrefabFromElement = function(element) end
+
+---`Method NonPublic Static`
+---@param humanPrefab Barotrauma.HumanPrefab
+---@param characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---@param characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---@param submarine Barotrauma.Submarine
+---@param teamType Barotrauma.CharacterTeamType
+---@param positionToStayIn? Barotrauma.ISpatialEntity
+---@param humanPrefabRandSync? Barotrauma.Rand.RandSync
+---@return Barotrauma.Character
+_G['Mission'].CreateHuman = function(humanPrefab, characters, characterItems, submarine, teamType, positionToStayIn, humanPrefabRandSync) end
+
+---`Method NonPublic Instance`
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.ItemPrefab
+_G['Mission'].FindItemPrefab = function(element) end
+
+---`Method NonPublic Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param cargoRoomSub Barotrauma.Submarine-ref
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Mission'].GetCargoSpawnPosition = function(itemPrefab, cargoRoomSub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Mission
+_G['Mission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.Mission
+_G['Mission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD968535F8.lua b/Meta/Types/server/_00007FFD968535F8.lua
new file mode 100644
index 0000000..1aaad58
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968535F8.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.AbandonedOutpostMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field spawnedItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field characterConfig System.Xml.Linq.XElement
+---`Field NonPublic Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field NonPublic Instance`
+---@field requireKill (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field NonPublic Instance`
+---@field requireRescue (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field itemTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field itemConfig System.Xml.Linq.XElement
+---`Field Private Instance`
+---@field items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field hostagesKilledMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field endTimer System.Single
+---`Field Private Instance`
+---@field allowOrderingRescuees System.Boolean
+---`Field NonPublic Instance`
+---@field wasDocked System.Boolean
+---`Field NonPublic Static`
+---@field HostagesKilledState System.Int32
+---`Field Private Static`
+---@field EndDelay System.Single
+---`Getter Public Instance Virtual`
+---@field AllowRespawning System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowUndocking System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Private Instance`
+---@field Targets (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+_G['AbandonedOutpostMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['AbandonedOutpostMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['AbandonedOutpostMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].InitItems = function(submarine) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].InitCharacters = function(submarine) end
+
+---`Method Private Instance`
+---@param humanPrefab Barotrauma.HumanPrefab
+---@param element System.Xml.Linq.XElement
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].LoadHuman = function(humanPrefab, element, submarine) end
+
+---`Method Private Instance`
+---@param monsterPrefab Barotrauma.CharacterPrefab
+---@param element System.Xml.Linq.XElement
+---@param submarine Barotrauma.Submarine
+_G['AbandonedOutpostMission'].LoadMonster = function(monsterPrefab, element, submarine) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param element System.Xml.Linq.XElement
+_G['AbandonedOutpostMission'].InitCharacter = function(character, element) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AbandonedOutpostMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AbandonedOutpostMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['AbandonedOutpostMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.AbandonedOutpostMission
+_G['AbandonedOutpostMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.AbandonedOutpostMission
+_G['AbandonedOutpostMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96853B18.lua b/Meta/Types/server/_00007FFD96853B18.lua
new file mode 100644
index 0000000..6b3172a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96853B18.lua
@@ -0,0 +1,74 @@
+---@meta
+---@class Barotrauma.EliminateTargetsMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field targetItemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field targetEnemyIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field minEnemyCount System.Int32
+---`Field Private Instance`
+---@field existingTargets (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field spawnedTargets (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field allTargets (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Public Instance`
+---@field TargetSubType Barotrauma.SubmarineType
+---`Field Public Instance`
+---@field PrioritizeThalamus System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field TargetSub Barotrauma.Submarine
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['EliminateTargetsMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['EliminateTargetsMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['EliminateTargetsMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['EliminateTargetsMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['EliminateTargetsMission'].AllTargetsEliminated = function() end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['EliminateTargetsMission'].IsItemDestroyed = function(item) end
+
+---`Method Private Static`
+---@param enemy Barotrauma.Character
+---@return System.Boolean
+_G['EliminateTargetsMission'].IsEnemyDefeated = function(enemy) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['EliminateTargetsMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['EliminateTargetsMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EliminateTargetsMission
+_G['EliminateTargetsMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EliminateTargetsMission
+_G['EliminateTargetsMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96853F48.lua b/Meta/Types/server/_00007FFD96853F48.lua
new file mode 100644
index 0000000..fc8bb89
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96853F48.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class Barotrauma.EndMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field bossPrefab Barotrauma.CharacterPrefab
+---`Field Private Instance`
+---@field minionPrefab Barotrauma.CharacterPrefab
+---`Field Private Instance`
+---@field spawnPointTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field bossSpawnPoint Barotrauma.WayPoint
+---`Field Private Instance`
+---@field destructibleItemTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field endCinematicSound System.String
+---`Field Private Instance`
+---@field minions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field minionCount System.Int32
+---`Field Private Instance`
+---@field minionScatter System.Single
+---`Field Private Instance`
+---@field boss Barotrauma.Character
+---`Field Private Instance`
+---@field projectilePrefab Barotrauma.ItemPrefab
+---`Field Private Instance`
+---@field projectileTimer System.Single
+---`Field Private Instance`
+---@field startCinematicDistance System.Single
+---`Field Private Instance`
+---@field endCinematicTimer System.Single
+---`Field Private Instance`
+---@field destructibleItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field NonPublic Instance`
+---@field wakeUpCinematicDelay System.Single
+---`Field NonPublic Instance`
+---@field bossWakeUpDelay System.Single
+---`Field NonPublic Instance`
+---@field cameraWaitDuration System.Single
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field State System.Int32
+---`Getter Private Instance`
+---@field Phase Barotrauma.EndMission.MissionPhase
+_G['EndMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['EndMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['EndMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['EndMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['EndMission'].DetermineCompleted = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EndMission
+_G['EndMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EndMission
+_G['EndMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96854908.lua b/Meta/Types/server/_00007FFD96854908.lua
new file mode 100644
index 0000000..93ac335
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96854908.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.BeaconMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field swarmSpawned System.Boolean
+---`Field Private Instance`
+---@field monsterSets (System.Collections.Generic.List*1Barotrauma*BeaconMission*MonsterSet)|(Barotrauma.BeaconMission.MonsterSet[])
+---`Field Private Instance`
+---@field sonarLabel Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['BeaconMission'] = {}
+
+---`Method Private Instance`
+---@param monsterElement System.Xml.Linq.XElement
+---@param set Barotrauma.BeaconMission.MonsterSet
+_G['BeaconMission'].LoadMonsters = function(monsterElement, set) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['BeaconMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['BeaconMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['BeaconMission'].EndMissionSpecific = function(completed) end
+
+---`Method Public Instance Virtual`
+---@param levelData Barotrauma.LevelData
+_G['BeaconMission'].AdjustLevelData = function(levelData) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.BeaconMission
+_G['BeaconMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.BeaconMission
+_G['BeaconMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96854C50.lua b/Meta/Types/server/_00007FFD96854C50.lua
new file mode 100644
index 0000000..2f36747
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96854C50.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.CargoMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field parentInventoryIDs (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*UInt16)|({[Barotrauma.Item]:(System.UInt16)})
+---`Field Private Instance`
+---@field inventorySlotIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32)|({[Barotrauma.Item]:(System.Int32)})
+---`Field Private Instance`
+---@field parentItemContainerIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Byte)|({[Barotrauma.Item]:(System.Byte)})
+---`Field Private Instance`
+---@field requiredDeliveryAmount System.Single
+---`Field Private Instance`
+---@field itemsToSpawn (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*ContentXElement*2Barotrauma*Items*Components*ItemContainer)|(System.ValueTuple*1Barotrauma*ContentXElement*1Barotrauma*Items*Components*ItemContainer[])
+---`Field Private Instance`
+---@field rewardPerCrate System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field calculatedReward System.Int32
+---`Field Private Instance`
+---@field maxItemCount System.Int32
+---`Field Private Instance`
+---@field currentSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field nextRoundSubInfo Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field previouslySelectedMissions (System.Collections.Generic.List*1Barotrauma*CargoMission)|(Barotrauma.CargoMission[])
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+_G['CargoMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['CargoMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method Private Instance`
+_G['CargoMission'].DetermineCargo = function() end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['CargoMission'].GetBaseReward = function(sub) end
+
+---`Method Private Instance`
+_G['CargoMission'].InitItems = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param parent Barotrauma.Item
+_G['CargoMission'].LoadItemAsChild = function(element, parent) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['CargoMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['CargoMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['CargoMission'].EndMissionSpecific = function(completed) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['CargoMission'].IsItemDelivered = function(item) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.CargoMission
+_G['CargoMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.CargoMission
+_G['CargoMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96855458.lua b/Meta/Types/server/_00007FFD96855458.lua
new file mode 100644
index 0000000..c0adf99
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96855458.lua
@@ -0,0 +1,119 @@
+---@meta
+---@class Barotrauma.CombatMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field teamDead (System.Boolean-arr)|(System.Boolean[])
+---`Field Private Instance`
+---@field crews (System.Collections.Generic.List)|((System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])[])
+---`Field Private Instance`
+---@field kills (System.Collections.Generic.List*1Barotrauma*CombatMission*KillCount)|(Barotrauma.CombatMission.KillCount[])
+---`Field Private Instance`
+---@field initialized System.Boolean
+---`Field Private Instance`
+---@field roundEndTimer System.Single
+---`Field Private Instance`
+---@field timeInTargetSubmarineTimer System.Single
+---`Field Private Instance`
+---@field subs (Barotrauma.Submarine-arr)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field descriptions (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field allowRespawning System.Boolean
+---`Field Private Instance`
+---@field winCondition Barotrauma.CombatMission.WinCondition
+---`Field Private Instance`
+---@field targetSubmarine Barotrauma.Submarine
+---`Field Private Instance`
+---@field targetSubmarineSonarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field PointsPerKill System.Int32
+---`Field Public Instance`
+---@field Scores (System.Int32-arr)|(System.Int32[])
+---`Field Private Static`
+---@field teamNames (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Field Private Static`
+---@field RoundEndDuration System.Single
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field AllowRespawning System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetSubmarineType Barotrauma.TagAction.SubType
+---`Getter Public Instance`
+---@field WinScore System.Int32
+---`Getter Public Instance`
+---@field HasWinScore System.Boolean
+---`Getter Public Static`
+---@field Winner Barotrauma.CharacterTeamType
+---`Getter Public Instance Virtual`
+---@field SuccessMessage Barotrauma.LocalizedString
+_G['CombatMission'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['CombatMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+_G['CombatMission'].CheckTeamCharacters = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CombatMission'].CheckWinCondition = function(deltaTime) end
+
+---`Method Private Instance`
+_G['CombatMission'].CheckScore = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CombatMission'].CheckTargetSubmarineControl = function(deltaTime) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['CombatMission'].AddKill = function(character) end
+
+---`Method Private Instance`
+---@param teamIndex System.Int32
+_G['CombatMission'].SetWinningTeam = function(teamIndex) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['CombatMission'].ServerWrite = function(msg) end
+
+---`Method Public Static`
+---@param teamID Barotrauma.CharacterTeamType
+---@return Barotrauma.LocalizedString
+_G['CombatMission'].GetTeamName = function(teamID) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CombatMission'].IsInWinningTeam = function(character) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['CombatMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['CombatMission'].DetermineCompleted = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.CombatMission
+---@return Barotrauma.CombatMission
+_G['CombatMission'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968558C0.lua b/Meta/Types/server/_00007FFD968558C0.lua
new file mode 100644
index 0000000..52714cf
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968558C0.lua
@@ -0,0 +1,108 @@
+---@meta
+---@class Barotrauma.EscortMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field characterConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field characterStatusEffects (System.Collections.Generic.Dictionary*1Barotrauma*HumanPrefab*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.HumanPrefab]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field baseEscortedCharacters System.Int32
+---`Field Private Instance`
+---@field scalingEscortedCharacters System.Single
+---`Field Private Instance`
+---@field terroristChance System.Single
+---`Field Private Instance`
+---@field calculatedReward System.Int32
+---`Field Private Instance`
+---@field missionSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field vipCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field terroristCharacters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field terroristsShouldAct System.Boolean
+---`Field Private Instance`
+---@field terroristDistanceSquared System.Single
+---`Field Private Instance`
+---@field terroristAnnounceDialogTag System.String
+---`Field Private Static`
+---@field TerroristTeamChangeIdentifier System.String
+_G['EscortMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['EscortMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method Private Instance`
+_G['EscortMission'].CalculateReward = function() end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['EscortMission'].GetBaseReward = function(sub) end
+
+---`Method Private Instance`
+---@param inMission? System.Boolean
+---@return System.Int32
+_G['EscortMission'].CalculateScalingEscortedCharacterCount = function(inMission) end
+
+---`Method Private Instance`
+_G['EscortMission'].InitEscort = function() end
+
+---`Method Private Instance`
+_G['EscortMission'].InitCharacters = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['EscortMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+_G['EscortMission'].TryToTriggerTerrorists = function() end
+
+---`Method Private Instance`
+---@param characterList (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return System.Boolean
+_G['EscortMission'].NonTerroristsStillAlive = function(characterList) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['EscortMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EscortMission'].Survived = function(character) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EscortMission'].IsAlive = function(character) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['EscortMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['EscortMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EscortMission
+_G['EscortMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.EscortMission
+_G['EscortMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96855AC8.lua b/Meta/Types/server/_00007FFD96855AC8.lua
new file mode 100644
index 0000000..940f85b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96855AC8.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.GoToMission : Barotrauma.Mission
+_G['GoToMission'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['GoToMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['GoToMission'].DetermineCompleted = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.GoToMission
+_G['GoToMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.GoToMission
+_G['GoToMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96857508.lua b/Meta/Types/server/_00007FFD96857508.lua
new file mode 100644
index 0000000..ebe2ffe
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96857508.lua
@@ -0,0 +1,97 @@
+---@meta
+---@class Barotrauma.MineralMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field resourceAmounts (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32)|({[Barotrauma.Identifier]:(System.Int32)})
+---`Field Private Instance`
+---@field spawnedResources (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field relevantLevelResources (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Item-arr)|({[Barotrauma.Identifier]:((Barotrauma.Item-arr)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field missionClusterPositions (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Microsoft*Xna*Framework*Vector2)|(System.ValueTuple*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field caves (System.Collections.Generic.HashSet*1Barotrauma*Level*Cave)|(Barotrauma.Level.Cave[])
+---`Field Private Instance`
+---@field positionType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field resourceHandoverAmount System.Single
+---`Field Public Static`
+---@field ValidPositionTypes (System.Collections.Immutable.ImmutableArray*1Barotrauma*Level*PositionType)|(Barotrauma.Level.PositionType[])
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance Virtual`
+---@field SuccessMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field FailureMessage Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+_G['MineralMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['MineralMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['MineralMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['MineralMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['MineralMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['MineralMission'].EndMissionSpecific = function(completed) end
+
+---`Method Private Instance`
+_G['MineralMission'].FindRelevantLevelResources = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['MineralMission'].EnoughHaveBeenCollected = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['MineralMission'].HasBeenCollected = function(item) end
+
+---`Method Private Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return System.Boolean
+_G['MineralMission'].AnyAreUncollected = function(items) end
+
+---`Method Private Instance`
+_G['MineralMission'].CalculateMissionClusterPositions = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param message Barotrauma.LocalizedString
+---@param color? System.Boolean
+---@return Barotrauma.LocalizedString
+_G['MineralMission'].ModifyMessage = function(message, color) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.MissionPrefab, locations:(Barotrauma.Location-arr)|(Barotrauma.Location[]), sub:Barotrauma.Submarine):Barotrauma.MineralMission
+---@return Barotrauma.MineralMission
+_G['MineralMission'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96859130.lua b/Meta/Types/server/_00007FFD96859130.lua
new file mode 100644
index 0000000..f788f9b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96859130.lua
@@ -0,0 +1,567 @@
+---@meta
+---@class Barotrauma.Level : Barotrauma.Entity
+---`Field Private Instance`
+---@field cellGrid (System.Collections.Generic.List)|((System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])[])
+---`Field Private Instance`
+---@field cells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---`Field Public Instance`
+---@field AbyssIslands (System.Collections.Generic.List*1Barotrauma*Level*AbyssIsland)|(Barotrauma.Level.AbyssIsland[])
+---`Field Public Instance`
+---@field siteCoordsX (System.Collections.Generic.List*1System*Double)|(System.Double[])
+---`Field Public Instance`
+---@field siteCoordsY (System.Collections.Generic.List*1System*Double)|(System.Double[])
+---`Field Public Instance`
+---@field distanceField (System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Point*2System*Double)|(System.ValueTuple*1Microsoft*Xna*Framework*Point*1System*Double[])
+---`Field Private Instance`
+---@field startPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field endPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field borders Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field bottomPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Point)|(Microsoft.Xna.Framework.Point[])
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field startExitPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field endExitPosition Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field beaconSonar Barotrauma.Items.Components.Sonar
+---`Field Private Instance`
+---@field preSelectedStartOutpost Barotrauma.SubmarineInfo
+---`Field Private Instance`
+---@field preSelectedEndOutpost Barotrauma.SubmarineInfo
+---`Field Public Instance`
+---@field LevelData Barotrauma.LevelData
+---`Field Private Instance`
+---@field equalityCheckValues (System.Collections.Generic.Dictionary*1Barotrauma*Level*LevelGenStage*1System*Int32)|({[Barotrauma.Level.LevelGenStage]:(System.Int32)})
+---`Field Private Instance`
+---@field isRandomHashSet System.Boolean
+---`Field Private Instance`
+---@field _randomHash System.Int32
+---`Field Private Instance`
+---@field previousSeed System.String
+---`Field Private Instance`
+---@field tempCells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---`Field Private Instance`
+---@field positionHistory (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Vector2)|({[System.String]:((System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[]))})
+---`Field Private Instance`
+---@field blockedRects (System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Rectangle)|({[Barotrauma.Submarine]:((System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[]))})
+---`Field Private Static`
+---@field loaded Barotrauma.Level
+---`Field Public Static`
+---@field ForcedDifficulty System.Nullable*1System*Single
+---`Field Private Static`
+---@field nextPathPointId System.Int32
+---`Field Public Static`
+---@field MaxEntityDepth System.Int32
+---`Field Public Static`
+---@field ShaftHeight System.Single
+---`Field Public Static`
+---@field OutsideBoundsCurrentMargin System.Single
+---`Field Public Static`
+---@field OutsideBoundsCurrentMarginExponential System.Single
+---`Field Public Static`
+---@field OutsideBoundsCurrentHardLimit System.Single
+---`Field Public Static`
+---@field MaxSubmarineWidth System.Int32
+---`Field Public Static`
+---@field ExitDistance System.Single
+---`Field Public Static`
+---@field GridCellSize System.Int32
+---`Field Private Static`
+---@field NetworkUpdateInterval System.Single
+---`Field Public Static`
+---@field DefaultRealWorldCrushDepth System.Single
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Loaded Barotrauma.Level
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AbyssArea Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field AbyssStart System.Int32
+---`Getter Public Instance`
+---@field AbyssEnd System.Int32
+---`Getter Public Instance`
+---@field StartPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field StartExitPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---@field EndPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field EndExitPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BottomPos System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SeaFloorTopPos System.Int32
+---`Getter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---@field RealWorldCrushDepth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SeaFloor Barotrauma.LevelWall
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Ruins (System.Collections.Generic.List*1Barotrauma*RuinGeneration*Ruin)|(Barotrauma.RuinGeneration.Ruin[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Wrecks (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BeaconStation Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExtraWalls (System.Collections.Generic.List*1Barotrauma*LevelWall)|(Barotrauma.LevelWall[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnsyncedExtraWalls (System.Collections.Generic.List*1Barotrauma*LevelWall)|(Barotrauma.LevelWall[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tunnels (System.Collections.Generic.List*1Barotrauma*Level*Tunnel)|(Barotrauma.Level.Tunnel[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Caves (System.Collections.Generic.List*1Barotrauma*Level*Cave)|(Barotrauma.Level.Cave[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PositionsOfInterest (System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition)|(Barotrauma.Level.InterestingPosition[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartOutpost Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndOutpost Barotrauma.Submarine
+---`Getter Public Instance`
+---@field EqualityCheckValues (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Level*LevelGenStage*1System*Int32)|({[Barotrauma.Level.LevelGenStage]:(System.Int32)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EntitiesBeforeGenerate (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EntityCountBeforeGenerate System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EntityCountAfterGenerate System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TopBarrier FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BottomBarrier FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LevelObjectManager Barotrauma.LevelObjectManager
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Generating System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Mirrored System.Boolean
+---`Getter Public Instance`
+---@field Seed System.String
+---`Getter Public Instance`
+---@field Difficulty System.Single
+---`Getter Public Instance`
+---@field Type Barotrauma.LevelData.LevelType
+---`Getter Public Instance`
+---@field IsEndBiome System.Boolean
+---`Getter Public Static`
+---@field IsLoadedOutpost System.Boolean
+---`Getter Public Static`
+---@field IsLoadedFriendlyOutpost System.Boolean
+---`Getter Public Instance`
+---@field GenerationParams Barotrauma.LevelGenerationParams
+---`Getter Public Instance`
+---@field BackgroundTextureColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field BackgroundColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field WallColor Microsoft.Xna.Framework.Color
+---`Getter Private Instance`
+---@field RandomHash System.Int32
+---`Getter Public Instance`
+---@field PathPoints (System.Collections.Generic.List*1Barotrauma*Level*PathPoint)|(Barotrauma.Level.PathPoint[])
+---`Getter Public Instance`
+---@field AbyssResources (System.Collections.Generic.List*1Barotrauma*Level*ClusterLocation)|(Barotrauma.Level.ClusterLocation[])
+_G['Level'] = {}
+
+---`Method Private Instance`
+---@param tunnel Barotrauma.Level.Tunnel
+---@param parentTunnel Barotrauma.Level.Tunnel
+_G['Level'].GenerateWaypoints = function(tunnel, parentTunnel) end
+
+---`Method Private Instance`
+---@overload fun(tunnel:Barotrauma.Level.Tunnel, parentTunnel:Barotrauma.Level.Tunnel)
+---@param wp1 Barotrauma.WayPoint
+---@param wp2 Barotrauma.WayPoint
+---@param interval System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['Level'].ConnectWaypoints = function(wp1, wp2, interval) end
+
+---`Method Private Static`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2, otherTunnel:Barotrauma.Level.Tunnel):(Barotrauma.WayPoint)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param waypoints (System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint)|(fun():(Barotrauma.WayPoint))
+---@param filter? (System.Func*1Barotrauma*WayPoint*1System*Boolean)|(fun(arg:Barotrauma.WayPoint):(System.Boolean))
+---@return Barotrauma.WayPoint
+_G['Level'].FindClosestWayPoint = function(worldPosition, waypoints, filter) end
+
+---`Method Private Instance`
+---@param emptyCells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---@param minDistance System.Single
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetTooCloseCells = function(emptyCells, minDistance) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param minDistance System.Single
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetTooCloseCells = function(position, minDistance) end
+
+---`Method Private Instance`
+_G['Level'].GenerateAbyssPositions = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateAbyssArea = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateAbyssGeometry = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateSeaFloorPositions = function() end
+
+---`Method Private Instance`
+_G['Level'].GenerateSeaFloor = function() end
+
+---`Method Private Instance`
+---@param parentTunnel Barotrauma.Level.Tunnel
+_G['Level'].GenerateCaves = function(parentTunnel) end
+
+---`Method Private Instance`
+---@param caveParams Barotrauma.CaveGenerationParams
+---@param parentTunnel Barotrauma.Level.Tunnel
+---@param cavePos Microsoft.Xna.Framework.Point
+---@param caveSize Microsoft.Xna.Framework.Point
+_G['Level'].GenerateCave = function(caveParams, parentTunnel, cavePos, caveSize) end
+
+---`Method Private Instance`
+---@param ruinPos Microsoft.Xna.Framework.Point
+---@param mirror System.Boolean
+---@param requireMissionReadyRuin System.Boolean
+_G['Level'].GenerateRuin = function(ruinPos, mirror, requireMissionReadyRuin) end
+
+---`Method Private Instance`
+---@param ruin Barotrauma.RuinGeneration.Ruin
+_G['Level'].GenerateRuinWayPoints = function(ruin) end
+
+---`Method Private Instance`
+---@param minDistance System.Double
+---@param asCloseAsPossible System.Boolean
+---@param limits? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Microsoft.Xna.Framework.Point
+_G['Level'].FindPosAwayFromMainPath = function(minDistance, asCloseAsPossible, limits) end
+
+---`Method Private Instance`
+---@param ruinPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Point)|(Microsoft.Xna.Framework.Point[])
+_G['Level'].CalculateTunnelDistanceField = function(ruinPositions) end
+
+---`Method Private Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param tunnel Barotrauma.Level.Tunnel
+---@return System.Double
+_G['Level'].GetDistToTunnel = function(position, tunnel) end
+
+---`Method Private Instance`
+---@overload fun(edges:(System.Collections.Generic.IEnumerable*1Voronoi2*GraphEdge)|(fun():(Voronoi2.GraphEdge)), position:Microsoft.Xna.Framework.Vector2, health?:System.Nullable*1System*Single):(Barotrauma.DestructibleLevelWall)
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param position Microsoft.Xna.Framework.Vector2
+---@param health? System.Nullable*1System*Single
+---@return Barotrauma.DestructibleLevelWall
+_G['Level'].CreateIceChunk = function(vertices, position, health) end
+
+---`Method Private Instance`
+---@param usedSpireEdges (System.Collections.Generic.List*1Voronoi2*GraphEdge)|(Voronoi2.GraphEdge[])
+---@return Barotrauma.DestructibleLevelWall
+_G['Level'].CreateIceSpire = function(usedSpireEdges) end
+
+---`Method Private Instance`
+_G['Level'].GenerateItems = function() end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@param requiredAmount System.Int32
+---@param positionType Barotrauma.Level.PositionType
+---@param targetCaves? (System.Collections.Generic.IEnumerable*1Barotrauma*Level*Cave)|(fun():(Barotrauma.Level.Cave))
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Level'].GenerateMissionResources = function(prefab, requiredAmount, positionType, targetCaves) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Level*ClusterLocation)|(Barotrauma.Level.ClusterLocation[])
+_G['Level'].GetAllValidClusterLocations = function() end
+
+---`Method Private Instance`
+---@param resourcePrefab Barotrauma.ItemPrefab
+---@param resourceCount System.Int32
+---@param location Barotrauma.Level.ClusterLocation
+---@param placedResources System.Collections.Generic.List
+---@param edgeLength? System.Nullable*1System*Single
+---@param maxResourceOverlap? System.Single
+_G['Level'].PlaceResources = function(resourcePrefab, resourceCount, location, placedResources, edgeLength, maxResourceOverlap) end
+
+---`Method Public Instance`
+---@param spawnPosType Barotrauma.Level.PositionType
+---@param randomSpread System.Single
+---@param minDistFromSubs System.Single
+---@param offsetFromWall? System.Single
+---@param filter? (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---@return Microsoft.Xna.Framework.Vector2
+_G['Level'].GetRandomItemPos = function(spawnPosType, randomSpread, minDistFromSubs, offsetFromWall, filter) end
+
+---`Method Public Instance`
+---@param useSyncedRand System.Boolean
+---@param positionType Barotrauma.Level.PositionType
+---@param minDistFromSubs System.Single
+---@param position Barotrauma.InterestingPosition-ref
+---@param awayPoint Microsoft.Xna.Framework.Vector2
+---@param minDistFromPoint System.Single
+---@param filter? (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---@return System.Boolean
+_G['Level'].TryGetInterestingPositionAwayFromPoint = function(useSyncedRand, positionType, minDistFromSubs, position, awayPoint, minDistFromPoint, filter) end
+
+---`Method Public Instance`
+---@overload fun(useSyncedRand:System.Boolean, positionType:Barotrauma.Level.PositionType, minDistFromSubs:System.Single, position:Barotrauma.InterestingPosition-ref, filter?:(System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean)), suppressWarning?:System.Boolean):(System.Boolean)
+---@param useSyncedRand System.Boolean
+---@param positionType Barotrauma.Level.PositionType
+---@param minDistFromSubs System.Single
+---@param position Barotrauma.InterestingPosition-ref
+---@param awayPoint Microsoft.Xna.Framework.Vector2
+---@param minDistFromPoint? System.Single
+---@param filter? (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---@param suppressWarning? System.Boolean
+---@return System.Boolean
+_G['Level'].TryGetInterestingPosition = function(useSyncedRand, positionType, minDistFromSubs, position, awayPoint, minDistFromPoint, filter, suppressWarning) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Level'].IsPositionInsideWall = function(worldPosition) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Level'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param xPosition System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['Level'].GetBottomPosition = function(xPosition) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetAllCells = function() end
+
+---`Method Public Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@param searchDepth? System.Int32
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].GetCells = function(worldPos, searchDepth) end
+
+---`Method Public Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@return Voronoi2.VoronoiCell
+_G['Level'].GetClosestCell = function(worldPos) end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Point
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].CreatePathToClosestTunnel = function(pos) end
+
+---`Method Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, minDist:System.Single):(System.Boolean)
+---@param position Microsoft.Xna.Framework.Point
+---@param minDist System.Single
+---@return System.Boolean
+_G['Level'].IsCloseToStart = function(position, minDist) end
+
+---`Method Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, minDist:System.Single):(System.Boolean)
+---@param position Microsoft.Xna.Framework.Point
+---@param minDist System.Single
+---@return System.Boolean
+_G['Level'].IsCloseToEnd = function(position, minDist) end
+
+---`Method Private Instance`
+---@param subName System.String
+---@param contentFile Barotrauma.ContentFile
+---@param type Barotrauma.SubmarineType
+---@param thalamusSpawn? Barotrauma.LevelData.ThalamusSpawn
+---@param spawnInTheMiddle? System.Boolean
+---@return Barotrauma.Submarine
+_G['Level'].SpawnSubOnPath = function(subName, contentFile, type, thalamusSpawn, spawnInTheMiddle) end
+
+---`Method Private Instance`
+_G['Level'].CreateWrecks = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Level'].HasStartOutpost = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Level'].HasEndOutpost = function() end
+
+---`Method Private Instance`
+_G['Level'].CreateOutposts = function() end
+
+---`Method Private Instance`
+_G['Level'].CreateBeaconStation = function() end
+
+---`Method Public Instance`
+_G['Level'].PrepareBeaconStation = function() end
+
+---`Method Public Instance`
+---@param disconnectWireProbability System.Single
+_G['Level'].DisconnectBeaconStationWires = function(disconnectWireProbability) end
+
+---`Method Public Instance`
+---@param breakDeviceProbability System.Single
+_G['Level'].DamageBeaconStationDevices = function(breakDeviceProbability) end
+
+---`Method Public Instance`
+---@param damageWallProbability System.Single
+_G['Level'].DamageBeaconStationWalls = function(damageWallProbability) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Level'].CheckBeaconActive = function() end
+
+---`Method Private Instance`
+---@param parentSub Barotrauma.Submarine
+_G['Level'].SetLinkedSubCrushDepth = function(parentSub) end
+
+---`Method Private Static`
+---@return System.Boolean
+_G['Level'].IsModeStartOutpostCompatible = function() end
+
+---`Method Public Instance`
+_G['Level'].SpawnCorpses = function() end
+
+---`Method Public Instance`
+_G['Level'].SpawnNPCs = function() end
+
+---`Method Public Instance`
+---@param worldPositionY System.Single
+---@return System.Single
+_G['Level'].GetRealWorldDepth = function(worldPositionY) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Level'].IsPositionAboveLevel = function(worldPosition) end
+
+---`Method Public Instance`
+---@param newStartLocation Barotrauma.Location
+_G['Level'].DebugSetStartLocation = function(newStartLocation) end
+
+---`Method Public Instance`
+---@param newEndLocation Barotrauma.Location
+_G['Level'].DebugSetEndLocation = function(newEndLocation) end
+
+---`Method Public Instance Virtual`
+_G['Level'].Remove = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Level'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+---@param stage Barotrauma.Level.LevelGenStage
+_G['Level'].GenerateEqualityCheckValue = function(stage) end
+
+---`Method Private Instance`
+---@param stage Barotrauma.Level.LevelGenStage
+---@param value System.Int32
+_G['Level'].SetEqualityCheckValue = function(stage, value) end
+
+---`Method Private Instance`
+_G['Level'].ClearEqualityCheckValues = function() end
+
+---`Method Public Instance`
+---@param minDifficulty System.Single
+---@param maxDifficulty System.Single
+---@return System.Boolean
+_G['Level'].IsAllowedDifficulty = function(minDifficulty, maxDifficulty) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Level'].ShouldSpawnCrewInsideOutpost = function() end
+
+---`Method Public Static`
+---@param levelData Barotrauma.LevelData
+---@param mirror System.Boolean
+---@param startLocation Barotrauma.Location
+---@param endLocation Barotrauma.Location
+---@param startOutpost? Barotrauma.SubmarineInfo
+---@param endOutpost? Barotrauma.SubmarineInfo
+---@return Barotrauma.Level
+_G['Level'].Generate = function(levelData, mirror, startLocation, endLocation, startOutpost, endOutpost) end
+
+---`Method Private Instance`
+---@param mirror System.Boolean
+---@param startLocation Barotrauma.Location
+---@param endLocation Barotrauma.Location
+_G['Level'].Generate = function(mirror, startLocation, endLocation) end
+
+---`Method Private Instance`
+_G['Level'].GenerateVoronoiSites = function() end
+
+---`Method Private Instance`
+_G['Level'].ResetRandomSeed = function() end
+
+---`Method Private Instance`
+---@param startPosition Microsoft.Xna.Framework.Point
+---@param endPosition Microsoft.Xna.Framework.Point
+---@param pathBorders Microsoft.Xna.Framework.Rectangle
+---@param parentTunnel Barotrauma.Level.Tunnel
+---@param variance System.Single
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Point)|(Microsoft.Xna.Framework.Point[])
+_G['Level'].GeneratePathNodes = function(startPosition, endPosition, pathBorders, parentTunnel, variance) end
+
+---`Method Private Instance`
+---@param holeProbability System.Single
+---@param limits Microsoft.Xna.Framework.Rectangle
+---@param submarineSize System.Int32
+---@return (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+_G['Level'].CreateHoles = function(holeProbability, limits, submarineSize) end
+
+---`Method Private Instance`
+---@param pathCells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---@param minWidth System.Single
+_G['Level'].EnlargePath = function(pathCells, minWidth) end
+
+---`Constructor Private Instance`
+---@param levelData Barotrauma.LevelData
+---@return Barotrauma.Level
+_G['Level'] = function(levelData) end
+
+---`Constructor Private Instance`
+---@param levelData Barotrauma.LevelData
+---@return Barotrauma.Level
+_G['Level'].__new = function(levelData) end
+
diff --git a/Meta/Types/server/_00007FFD968593E0.lua b/Meta/Types/server/_00007FFD968593E0.lua
new file mode 100644
index 0000000..bcd53f2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968593E0.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.MonsterMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field monsterPrefabs (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point)|(System.ValueTuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point[])
+---`Field Private Instance`
+---@field monsters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field sonarPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field tempSonarPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field maxSonarMarkerDistance System.Single
+---`Field Private Instance`
+---@field spawnPosType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field spawnPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['MonsterMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['MonsterMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['MonsterMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+---@param monsters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['MonsterMission'].InitializeMonsters = function(monsters) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['MonsterMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['MonsterMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['MonsterMission'].EndMissionSpecific = function(completed) end
+
+---`Method Public Static`
+---@param enemy Barotrauma.Character
+---@return System.Boolean
+_G['MonsterMission'].IsEliminated = function(enemy) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.MonsterMission
+_G['MonsterMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.MonsterMission
+_G['MonsterMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96859750.lua b/Meta/Types/server/_00007FFD96859750.lua
new file mode 100644
index 0000000..18d3621
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96859750.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.NestMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field items (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field statusEffectOnApproach (System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*StatusEffect)|({[Barotrauma.Item]:(Barotrauma.StatusEffect)})
+---`Field Private Instance`
+---@field monsterPrefabs (System.Collections.Generic.HashSet*1System*Tuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point)|(System.Tuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point[])
+---`Field Private Instance`
+---@field itemSpawnRadius System.Single
+---`Field Private Instance`
+---@field approachItemsRadius System.Single
+---`Field Private Instance`
+---@field nestObjectRadius System.Single
+---`Field Private Instance`
+---@field monsterSpawnRadius System.Single
+---`Field Private Instance`
+---@field nestObjectAmount System.Int32
+---`Field Private Instance`
+---@field requireDelivery System.Boolean
+---`Field Private Instance`
+---@field spawnPositionType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field nestPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field selectedCave Barotrauma.Level.Cave
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['NestMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['NestMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['NestMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+---@param level Barotrauma.Level
+---@param cave Barotrauma.Level.Cave
+_G['NestMission'].SpawnNestObjects = function(level, cave) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['NestMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['NestMission'].AllItemsDestroyedOrRetrieved = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['NestMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['NestMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.NestMission
+_G['NestMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.NestMission
+_G['NestMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96859BF0.lua b/Meta/Types/server/_00007FFD96859BF0.lua
new file mode 100644
index 0000000..0160407
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96859BF0.lua
@@ -0,0 +1,144 @@
+---@meta
+---@class Barotrauma.PirateMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field submarineTypeConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field characterConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field characterTypeConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field addedMissionDifficultyPerPlayer System.Single
+---`Field Private Instance`
+---@field missionDifficulty System.Single
+---`Field Private Instance`
+---@field alternateReward System.Int32
+---`Field Private Instance`
+---@field factionIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field enemySub Barotrauma.Submarine
+---`Field Private Instance`
+---@field characters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field characterItems (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Character]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field characterStatusEffects (System.Collections.Generic.Dictionary*1Barotrauma*HumanPrefab*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.HumanPrefab]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field pirateSightingUpdateFrequency System.Single
+---`Field Private Instance`
+---@field pirateSightingUpdateTimer System.Single
+---`Field Private Instance`
+---@field lastSighting System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field levelData Barotrauma.LevelData
+---`Field Private Instance`
+---@field outsideOfSonarRange System.Boolean
+---`Field Private Instance`
+---@field patrolPositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field submarineInfo Barotrauma.SubmarineInfo
+---`Field Private Static`
+---@field RandomnessModifier System.Single
+---`Field Private Static`
+---@field ShipRandomnessModifier System.Single
+---`Field Private Static`
+---@field MaxDifficulty System.Single
+---`Getter Public Instance Virtual`
+---@field TeamCount System.Int32
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+---`Getter Public Instance Virtual`
+---@field EnemySubmarineInfo Barotrauma.SubmarineInfo
+_G['PirateMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['PirateMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param sub Barotrauma.Submarine
+---@return System.Int32
+_G['PirateMission'].GetBaseReward = function(sub) end
+
+---`Method Public Instance Virtual`
+---@param level Barotrauma.LevelData
+_G['PirateMission'].SetLevel = function(level) end
+
+---`Method Private Static`
+---@param preferredDifficulty System.Single
+---@param levelDifficulty System.Single
+---@param randomnessModifier System.Single
+---@param rand System.Random
+---@return System.Single
+_G['PirateMission'].GetDifficultyModifiedValue = function(preferredDifficulty, levelDifficulty, randomnessModifier, rand) end
+
+---`Method Private Static`
+---@param minAmount System.Int32
+---@param maxAmount System.Int32
+---@param levelDifficulty System.Single
+---@param rand System.Random
+---@return System.Int32
+_G['PirateMission'].GetDifficultyModifiedAmount = function(minAmount, maxAmount, levelDifficulty, rand) end
+
+---`Method Private Instance`
+---@param levelDifficulty System.Single
+---@param randomnessModifier System.Single
+---@return Barotrauma.SubmarineInfo
+_G['PirateMission'].GetRandomDifficultyModifiedSubmarine = function(levelDifficulty, randomnessModifier) end
+
+---`Method Private Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@param levelDifficulty System.Single
+---@param randomnessModifier System.Single
+---@return System.Xml.Linq.XElement
+_G['PirateMission'].GetRandomDifficultyModifiedElement = function(parentElement, levelDifficulty, randomnessModifier) end
+
+---`Method Private Instance`
+---@param preferredSpawnPos Microsoft.Xna.Framework.Vector2-ref
+_G['PirateMission'].CreateMissionPositions = function(preferredSpawnPos) end
+
+---`Method Private Instance`
+_G['PirateMission'].InitPirateShip = function() end
+
+---`Method Private Instance`
+_G['PirateMission'].InitPirates = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['PirateMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['PirateMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['PirateMission'].CheckWinState = function() end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['PirateMission'].DeadOrCaptured = function(character) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['PirateMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['PirateMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.PirateMission
+_G['PirateMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.PirateMission
+_G['PirateMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD96859FA0.lua b/Meta/Types/server/_00007FFD96859FA0.lua
new file mode 100644
index 0000000..0fd2b76
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96859FA0.lua
@@ -0,0 +1,69 @@
+---@meta
+---@class Barotrauma.SalvageMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field spawnInfo (System.Collections.Generic.Dictionary*1Barotrauma*SalvageMission*Target*1Barotrauma*SalvageMission*SpawnInfo)|({[Barotrauma.SalvageMission.Target]:(Barotrauma.SalvageMission.SpawnInfo)})
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*SalvageMission*Target)|(Barotrauma.SalvageMission.Target[])
+---`Field Private Instance`
+---@field requiredDeliveryAmount System.Single
+---`Field Private Instance`
+---@field partiallyRetrievedMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field allRetrievedMessage Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field rng Barotrauma.MTRandom
+---`Getter Public Instance`
+---@field AnyTargetNeedsToBeRetrievedToSub System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['SalvageMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['SalvageMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['SalvageMission'].ServerWrite = function(msg) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentTarget Barotrauma.SalvageMission.Target
+_G['SalvageMission'].LoadTarget = function(element, parentTarget) end
+
+---`Method Private Instance`
+---@param targetElement Barotrauma.ContentXElement
+---@return System.Int32
+_G['SalvageMission'].GetAmount = function(targetElement) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['SalvageMission'].StartMissionSpecific = function(level) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['SalvageMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['SalvageMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['SalvageMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.SalvageMission
+_G['SalvageMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.SalvageMission
+_G['SalvageMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD9685A3C0.lua b/Meta/Types/server/_00007FFD9685A3C0.lua
new file mode 100644
index 0000000..d495a25
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685A3C0.lua
@@ -0,0 +1,100 @@
+---@meta
+---@class Barotrauma.ScanMission : Barotrauma.Mission
+---`Field Private Instance`
+---@field itemConfig Barotrauma.ContentXElement
+---`Field Private Instance`
+---@field startingItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field scanners (System.Collections.Generic.List*1Barotrauma*Items*Components*Scanner)|(Barotrauma.Items.Components.Scanner[])
+---`Field Private Instance`
+---@field parentInventoryIDs (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*UInt16)|({[Barotrauma.Item]:(System.UInt16)})
+---`Field Private Instance`
+---@field inventorySlotIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32)|({[Barotrauma.Item]:(System.Int32)})
+---`Field Private Instance`
+---@field parentItemContainerIndices (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Byte)|({[Barotrauma.Item]:(System.Byte)})
+---`Field Private Instance`
+---@field targetsToScan System.Int32
+---`Field Private Instance`
+---@field scanTargets (System.Collections.Generic.Dictionary*1Barotrauma*WayPoint*1System*Boolean)|({[Barotrauma.WayPoint]:(System.Boolean)})
+---`Field Private Instance`
+---@field newTargetsScanned (System.Collections.Generic.HashSet*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field minTargetDistance System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field TargetRuin Barotrauma.RuinGeneration.Ruin
+---`Getter Private Instance`
+---@field AllTargetsScanned System.Boolean
+---`Getter Public Instance Virtual`
+---@field SonarLabels (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2)|(fun():(System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2))
+_G['ScanMission'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['ScanMission'].ServerWriteInitial = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ScanMission'].ServerWrite = function(msg) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ScanMission'].ServerWriteScanTargetStatus = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param level Barotrauma.Level
+_G['ScanMission'].StartMissionSpecific = function(level) end
+
+---`Method Private Instance`
+_G['ScanMission'].Reset = function() end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param parent Barotrauma.Item
+_G['ScanMission'].LoadItem = function(element, parent) end
+
+---`Method Private Instance`
+_G['ScanMission'].GetScanners = function() end
+
+---`Method Private Instance`
+---@param scanner Barotrauma.Items.Components.Scanner
+_G['ScanMission'].OnScanStarted = function(scanner) end
+
+---`Method Private Instance`
+---@param scanner Barotrauma.Items.Components.Scanner
+_G['ScanMission'].OnScanCompleted = function(scanner) end
+
+---`Method Private Static`
+---@param scanner Barotrauma.Items.Components.Scanner
+---@param scanStatus System.Collections.Generic.KeyValuePair*1Barotrauma*WayPoint*1System*Boolean
+---@param scanRadiusSquared System.Single
+---@return System.Boolean
+_G['ScanMission'].IsValidScanPosition = function(scanner, scanStatus, scanRadiusSquared) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['ScanMission'].UpdateMissionSpecific = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['ScanMission'].DetermineCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param completed System.Boolean
+_G['ScanMission'].EndMissionSpecific = function(completed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.ScanMission
+_G['ScanMission'] = function(prefab, locations, sub) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.MissionPrefab
+---@param locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---@param sub Barotrauma.Submarine
+---@return Barotrauma.ScanMission
+_G['ScanMission'].__new = function(prefab, locations, sub) end
+
diff --git a/Meta/Types/server/_00007FFD9685A630.lua b/Meta/Types/server/_00007FFD9685A630.lua
new file mode 100644
index 0000000..b1edd36
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685A630.lua
@@ -0,0 +1,40 @@
+---@meta
+---@class Barotrauma.Level.InterestingPosition : System.ValueType
+---`Field Public Instance`
+---@field Position Microsoft.Xna.Framework.Point
+---`Field Public Instance`
+---@field PositionType Barotrauma.Level.PositionType
+---`Field Public Instance`
+---@field IsValid System.Boolean
+---`Field Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Field Public Instance`
+---@field Ruin Barotrauma.RuinGeneration.Ruin
+---`Field Public Instance`
+---@field Cave Barotrauma.Level.Cave
+_G['Level']['InterestingPosition'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Level']['InterestingPosition'].IsEnclosedArea = function() end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, submarine?:Barotrauma.Submarine, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, ruin:Barotrauma.RuinGeneration.Ruin, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@param position Microsoft.Xna.Framework.Point
+---@param positionType Barotrauma.Level.PositionType
+---@param cave Barotrauma.Level.Cave
+---@param isValid? System.Boolean
+---@return Barotrauma.Level.InterestingPosition
+_G['Level']['InterestingPosition'] = function(position, positionType, cave, isValid) end
+
+---`Constructor Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, submarine?:Barotrauma.Submarine, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@overload fun(position:Microsoft.Xna.Framework.Point, positionType:Barotrauma.Level.PositionType, ruin:Barotrauma.RuinGeneration.Ruin, isValid?:System.Boolean):Barotrauma.Level.InterestingPosition
+---@param position Microsoft.Xna.Framework.Point
+---@param positionType Barotrauma.Level.PositionType
+---@param cave Barotrauma.Level.Cave
+---@param isValid? System.Boolean
+---@return Barotrauma.Level.InterestingPosition
+_G['Level']['InterestingPosition'].__new = function(position, positionType, cave, isValid) end
+
diff --git a/Meta/Types/server/_00007FFD9685C128.lua b/Meta/Types/server/_00007FFD9685C128.lua
new file mode 100644
index 0000000..409e934
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685C128.lua
@@ -0,0 +1,385 @@
+---@meta
+---@class Barotrauma.LevelGenerationParams : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field minWidth System.Int32
+---`Field Private Instance`
+---@field maxWidth System.Int32
+---`Field Private Instance`
+---@field height System.Int32
+---`Field Private Instance`
+---@field voronoiSiteInterval Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field voronoiSiteVariance Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field mainPathNodeIntervalRange Microsoft.Xna.Framework.Point
+---`Field Private Instance`
+---@field caveCount System.Int32
+---`Field Private Instance`
+---@field bottomHoleProbability System.Single
+---`Field Private Instance`
+---@field seaFloorBaseDepth System.Int32
+---`Field Private Instance`
+---@field seaFloorVariance System.Int32
+---`Field Private Instance`
+---@field cellSubdivisionLength System.Int32
+---`Field Private Instance`
+---@field cellRoundingAmount System.Single
+---`Field Private Instance`
+---@field cellIrregularity System.Single
+---`Field Private Instance`
+---@field mountainCountMin System.Int32
+---`Field Private Instance`
+---@field mountainCountMax System.Int32
+---`Field Private Instance`
+---@field mountainHeightMin System.Int32
+---`Field Private Instance`
+---@field mountainHeightMax System.Int32
+---`Field Private Instance`
+---@field waterParticleScale System.Single
+---`Field Private Instance`
+---@field initialDepthMin System.Int32
+---`Field Private Instance`
+---@field initialDepthMax System.Int32
+---`Field Public Instance`
+---@field AllowedBiomeIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field AnyBiomeAllowed System.Boolean
+---`Field Private Instance`
+---@field startPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field endPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field forceOutpostPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field waterParticleVelocity Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field LevelParams (Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams)|(fun():(Barotrauma.LevelGenerationParams))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field OldIdentifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Type Barotrauma.LevelData.LevelType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsPvPLevel System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Commonness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TransitionFromPreviousBiome System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxLevelDifficulty System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StartPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EndPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceOutpostPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CreateHoleNextToEnd System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BottomHoleProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinWidth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxWidth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Height System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InitialDepthMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InitialDepthMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NoLevelGeometry System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoronoiSiteInterval Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoronoiSiteVariance Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CellSubdivisionLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CellRoundingAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CellIrregularity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinTunnelRadius System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SideTunnelCount Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SideTunnelVariance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinSideTunnelRadius Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainPathNodeIntervalRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainPathVariance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelObjectAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackgroundCreatureAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaveCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResourceIntervalRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaveResourceIntervalRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResourceClusterSizeRange Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResourceSpawnChance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CaveResourceSpawnChance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FloatingIceChunkCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IslandCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IceSpireCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CreateHoleToAbyss System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandSizeMin Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandSizeMax Microsoft.Xna.Framework.Point
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssIslandCaveProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssResourceClustersMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbyssResourceClustersMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeaFloorDepth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeaFloorVariance System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainCountMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainCountMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainHeightMin System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MountainHeightMax System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RuinCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinRuinCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxRuinCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RuinSpawnProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinWreckCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxWreckCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinCorpseCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxCorpseCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HuskProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ThalamusProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckHullFloodingChance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckFloodingHullMinWaterPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckFloodingHullMaxWaterPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceBeaconStation System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterParticleScale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterParticleVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallTextureSize System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeTextureWidth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlashInterval Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlashColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeExpandOutwardsAmount System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeExpandInwardsAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AmbientLightColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackgroundTextureColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackgroundColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WallColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterParticleColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayNoiseLoopInOutpostLevel System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterAmbienceVolume System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundTopSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallEdgeSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DestructibleWallSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DestructibleWallEdgeSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallSpriteDestroyed Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterParticles Barotrauma.Sprite
+_G['LevelGenerationParams'] = {}
+
+---`Method Public Static`
+_G['LevelGenerationParams'].CheckValidity = function() end
+
+---`Method Public Static`
+---@param seed System.String
+---@param type Barotrauma.LevelData.LevelType
+---@param difficulty System.Single
+---@param biomeId? Barotrauma.Identifier
+---@param pvpOnly? System.Boolean
+---@param biomeTransition? System.Boolean
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'].GetRandom = function(seed, type, difficulty, biomeId, pvpOnly, biomeTransition) end
+
+---`Method Public Instance Virtual`
+_G['LevelGenerationParams'].Dispose = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['LevelGenerationParams'].UseRandomRuinCount = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['LevelGenerationParams'].GetMaxRuinCount = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.LevelGenerationParams
+---@return Barotrauma.LevelGenerationParams
+_G['LevelGenerationParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9685C478.lua b/Meta/Types/server/_00007FFD9685C478.lua
new file mode 100644
index 0000000..ea2751b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685C478.lua
@@ -0,0 +1,109 @@
+---@meta
+---@class Barotrauma.LevelObjectManager : Barotrauma.Entity
+---`Field Private Instance`
+---@field objects (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field updateableObjects (System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Instance`
+---@field objectGrid (System.Collections.Generic.List)|((System.Collections.Generic.List*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])[])
+---`Field Private Static`
+---@field objectsInRange (System.Collections.Generic.HashSet*1Barotrauma*LevelObject)|(Barotrauma.LevelObject[])
+---`Field Private Static`
+---@field GridSize System.Int32
+---`Field Private Static`
+---@field ParallaxStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GlobalForceDecreaseTimer System.Single
+_G['LevelObjectManager'] = {}
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@param amount System.Int32
+_G['LevelObjectManager'].PlaceObjects = function(level, amount) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@param cave Barotrauma.Level.Cave
+---@param nestPosition Microsoft.Xna.Framework.Vector2
+---@param nestRadius System.Single
+---@param objectAmount System.Int32
+_G['LevelObjectManager'].PlaceNestObjects = function(level, cave, nestPosition, nestRadius, objectAmount) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.LevelObjectPrefab
+---@param spawnPosition Barotrauma.LevelObjectManager.SpawnPosition
+---@param level Barotrauma.Level
+---@param parentCave? Barotrauma.Level.Cave
+_G['LevelObjectManager'].PlaceObject = function(prefab, spawnPosition, level, parentCave) end
+
+---`Method Private Instance`
+---@param newObject Barotrauma.LevelObject
+---@param level Barotrauma.Level
+_G['LevelObjectManager'].AddObject = function(newObject, level) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Point
+_G['LevelObjectManager'].GetGridIndices = function(worldPosition) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IEnumerable*1Barotrauma*LevelObject)|(fun():(Barotrauma.LevelObject)))
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param radius System.Single
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*LevelObject)|(fun():(Barotrauma.LevelObject))
+_G['LevelObjectManager'].GetAllObjects = function(worldPosition, radius) end
+
+---`Method Private Static`
+---@param cells (System.Collections.Generic.IEnumerable*1Voronoi2*VoronoiCell)|(fun():(Voronoi2.VoronoiCell))
+---@param spawnPosType Barotrauma.LevelObjectPrefab.SpawnPosType
+---@return (System.Collections.Generic.List*1Barotrauma*LevelObjectManager*SpawnPosition)|(Barotrauma.LevelObjectManager.SpawnPosition[])
+_G['LevelObjectManager'].GetAvailableSpawnPositions = function(cells, spawnPosType) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['LevelObjectManager'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param triggeredObject Barotrauma.LevelObject
+---@param trigger Barotrauma.LevelTrigger
+---@param triggerer Barotrauma.Entity
+_G['LevelObjectManager'].OnObjectTriggered = function(triggeredObject, trigger, triggerer) end
+
+---`Method Private Static`
+---@overload fun(level:Barotrauma.Level, availablePrefabs:(System.Collections.Generic.IList*1Barotrauma*LevelObjectPrefab)|(Barotrauma.LevelObjectPrefab[])):(Barotrauma.LevelObjectPrefab)
+---@param caveParams Barotrauma.CaveGenerationParams
+---@param availablePrefabs (System.Collections.Generic.IList*1Barotrauma*LevelObjectPrefab)|(Barotrauma.LevelObjectPrefab[])
+---@param requireCaveSpecificOverride System.Boolean
+---@return Barotrauma.LevelObjectPrefab
+_G['LevelObjectManager'].GetRandomPrefab = function(caveParams, availablePrefabs, requireCaveSpecificOverride) end
+
+---`Method Public Instance Virtual`
+_G['LevelObjectManager'].Remove = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['LevelObjectManager'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.LevelObjectManager
+---@return Barotrauma.LevelObjectManager
+_G['LevelObjectManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9685C940.lua b/Meta/Types/server/_00007FFD9685C940.lua
new file mode 100644
index 0000000..84dc6d5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685C940.lua
@@ -0,0 +1,100 @@
+---@meta
+---@class Barotrauma.LevelObject : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.LevelObjectPrefab
+---`Field Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector3
+---`Field Public Instance`
+---@field NetworkUpdateTimer System.Single
+---`Field Public Instance`
+---@field Scale System.Single
+---`Field Public Instance`
+---@field Rotation System.Single
+---`Field Private Instance`
+---@field spriteIndex System.Int32
+---`Field NonPublic Instance`
+---@field tookDamage System.Boolean
+---`Field Public Instance`
+---@field ActivePrefab Barotrauma.LevelObjectPrefab
+---`Field Public Instance`
+---@field ParentCave Barotrauma.Level.Cave
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Triggers (System.Collections.Generic.List*1Barotrauma*LevelTrigger)|(Barotrauma.LevelTrigger[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsNetworkSyncing System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NeedsUpdate System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['LevelObject'] = {}
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['LevelObject'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Public Instance`
+---@param damage System.Single
+---@param deltaTime System.Single
+---@param attacker Barotrauma.Entity
+---@param isNetworkEvent? System.Boolean
+_G['LevelObject'].AddDamage = function(damage, deltaTime, attacker, isNetworkEvent) end
+
+---`Method Public Instance`
+---@param localPosition Microsoft.Xna.Framework.Vector2
+---@param swingState? System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['LevelObject'].LocalToWorld = function(localPosition, swingState) end
+
+---`Method Public Instance`
+_G['LevelObject'].Remove = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['LevelObject'].ToString = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['LevelObject'].ServerWrite = function(msg, c) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.LevelObjectPrefab
+---@param position Microsoft.Xna.Framework.Vector3
+---@param scale System.Single
+---@param rotation? System.Single
+---@return Barotrauma.LevelObject
+_G['LevelObject'] = function(prefab, position, scale, rotation) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.LevelObjectPrefab
+---@param position Microsoft.Xna.Framework.Vector3
+---@param scale System.Single
+---@param rotation? System.Single
+---@return Barotrauma.LevelObject
+_G['LevelObject'].__new = function(prefab, position, scale, rotation) end
+
diff --git a/Meta/Types/server/_00007FFD9685D580.lua b/Meta/Types/server/_00007FFD9685D580.lua
new file mode 100644
index 0000000..10b878e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685D580.lua
@@ -0,0 +1,243 @@
+---@meta
+---@class Barotrauma.LevelTrigger : System.Object
+---`Field Public Instance`
+---@field OnTriggered (System.Action*1Barotrauma*LevelTrigger*1Barotrauma*Entity)|(fun(arg1:Barotrauma.LevelTrigger, arg2:Barotrauma.Entity))
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Private Instance`
+---@field attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+---`Field Private Instance`
+---@field cameraShake System.Single
+---`Field Private Instance`
+---@field unrotatedForce Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field forceFluctuationTimer System.Single
+---`Field Private Instance`
+---@field currentForceFluctuation System.Single
+---`Field Private Instance`
+---@field triggerers (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field triggeredBy Barotrauma.LevelTrigger.TriggererType
+---`Field Private Instance`
+---@field triggerSpeciesOrGroup Barotrauma.Identifier
+---`Field Private Instance`
+---@field conditionals Barotrauma.PropertyConditional.LogicalComparison
+---`Field Private Instance`
+---@field randomTriggerInterval System.Single
+---`Field Private Instance`
+---@field randomTriggerProbability System.Single
+---`Field Private Instance`
+---@field randomTriggerTimer System.Single
+---`Field Private Instance`
+---@field triggeredTimer System.Single
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field allowedOtherTriggerTags (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Private Instance`
+---@field stayTriggeredDelay System.Single
+---`Field Public Instance`
+---@field ParentTrigger Barotrauma.LevelTrigger
+---`Field Private Instance`
+---@field worldPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field forceMode Barotrauma.LevelTrigger.TriggerForceMode
+---`Field Private Instance`
+---@field triggeredOnce System.Boolean
+---`Field Private Instance`
+---@field triggerOnce System.Boolean
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Static`
+---@field triggerersToRemove (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Getter Public Instance`
+---@field StatusEffects (System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect)|(fun():(Barotrauma.StatusEffect))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TriggererPosition (System.Collections.Generic.Dictionary*1Barotrauma*Entity*1Microsoft*Xna*Framework*Vector2)|({[Barotrauma.Entity]:(Microsoft.Xna.Framework.Vector2)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TriggerOthersDistance System.Single
+---`Getter Public Instance`
+---@field Triggerers (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+---`Getter Public Instance`
+---@field IsTriggered System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Force Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceFalloff System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field GlobalForceDecreaseInterval System.Single
+---`Getter Public Instance`
+---@field ForceMode Barotrauma.LevelTrigger.TriggerForceMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceVelocityLimit System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ColliderRadius System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseNetworkSyncing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsNetworkSyncing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InfectIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InfectionChance System.Single
+_G['LevelTrigger'] = {}
+
+---`Method Public Static`
+---@param triggeredBy Barotrauma.LevelTrigger.TriggererType
+---@return FarseerPhysics.Dynamics.Category
+_G['LevelTrigger'].GetCollisionCategories = function(triggeredBy) end
+
+---`Method Private Instance`
+_G['LevelTrigger'].CalculateDirectionalForce = function() end
+
+---`Method Public Static`
+---@param statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+_G['LevelTrigger'].LoadStatusEffect = function(statusEffects, element, parentDebugName) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@param triggerOnce System.Boolean
+---@param attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+_G['LevelTrigger'].LoadAttack = function(element, parentDebugName, triggerOnce, attacks) end
+
+---`Method Private Instance`
+---@param fixtureA FarseerPhysics.Dynamics.Fixture
+---@param fixtureB FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['LevelTrigger'].PhysicsBody_OnCollision = function(fixtureA, fixtureB, contact) end
+
+---`Method Public Static`
+---@param entity Barotrauma.Entity
+---@param triggeredBy Barotrauma.LevelTrigger.TriggererType
+---@param triggerSpeciesOrGroup Barotrauma.Identifier
+---@param conditionals Barotrauma.PropertyConditional.LogicalComparison
+---@param mustBeOnSpecificSub? System.ValueTuple*1System*Boolean*1Barotrauma*Submarine
+---@param mustBeOutside? System.Boolean
+---@return System.Boolean
+_G['LevelTrigger'].IsTriggeredByEntity = function(entity, triggeredBy, triggerSpeciesOrGroup, conditionals, mustBeOnSpecificSub, mustBeOutside) end
+
+---`Method Private Instance`
+---@param fixtureA FarseerPhysics.Dynamics.Fixture
+---@param fixtureB FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+_G['LevelTrigger'].PhysicsBody_OnSeparation = function(fixtureA, fixtureB, contact) end
+
+---`Method Public Static`
+---@param triggerBody Barotrauma.PhysicsBody
+---@param separatingFixture FarseerPhysics.Dynamics.Fixture
+---@param separatingEntity Barotrauma.Entity
+---@return System.Boolean
+_G['LevelTrigger'].CheckContactsForOtherFixtures = function(triggerBody, separatingFixture, separatingEntity) end
+
+---`Method Public Static`
+---@param triggerBody Barotrauma.PhysicsBody
+---@param targetEntity Barotrauma.Entity
+---@return System.Boolean
+_G['LevelTrigger'].CheckContactsForEntity = function(triggerBody, targetEntity) end
+
+---`Method Public Static`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@return Barotrauma.Entity
+_G['LevelTrigger'].GetEntity = function(fixture) end
+
+---`Method Public Instance`
+---@param otherTrigger Barotrauma.LevelTrigger
+---@param triggerer Barotrauma.Entity
+_G['LevelTrigger'].OtherTriggered = function(otherTrigger, triggerer) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['LevelTrigger'].Update = function(deltaTime) end
+
+---`Method Public Static`
+---@param physicsBody Barotrauma.PhysicsBody
+---@param triggerers (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+_G['LevelTrigger'].RemoveInActiveTriggerers = function(physicsBody, triggerers) end
+
+---`Method Public Static`
+---@param statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param triggerer Barotrauma.Entity
+---@param deltaTime System.Single
+---@param targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---@param targetItem? Barotrauma.Item
+_G['LevelTrigger'].ApplyStatusEffects = function(statusEffects, worldPosition, triggerer, deltaTime, targets, targetItem) end
+
+---`Method Public Static`
+---@overload fun(attacks:(System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[]), damageable:Barotrauma.IDamageable, worldPosition:Microsoft.Xna.Framework.Vector2, deltaTime:System.Single)
+---@param attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+_G['LevelTrigger'].ApplyAttacks = function(attacks, worldPosition, deltaTime) end
+
+---`Method Private Instance`
+---@param body Barotrauma.PhysicsBody
+_G['LevelTrigger'].ApplyForce = function(body) end
+
+---`Method Public Static`
+---@param triggererBody Barotrauma.PhysicsBody
+---@param triggerBody Barotrauma.PhysicsBody
+---@param colliderRadius System.Single
+---@return System.Single
+_G['LevelTrigger'].GetDistanceFactor = function(triggererBody, triggerBody, colliderRadius) end
+
+---`Method Public Instance`
+---@overload fun(viewPosition:Microsoft.Xna.Framework.Vector2):(Microsoft.Xna.Framework.Vector2)
+---@return Microsoft.Xna.Framework.Vector2
+_G['LevelTrigger'].GetWaterFlowVelocity = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['LevelTrigger'].ServerWrite = function(msg, c) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, position:Microsoft.Xna.Framework.Vector2, rotation:System.Single, scale?:System.Single, parentDebugName?:System.String):Barotrauma.LevelTrigger
+---@return Barotrauma.LevelTrigger
+_G['LevelTrigger'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9685D8B0.lua b/Meta/Types/server/_00007FFD9685D8B0.lua
new file mode 100644
index 0000000..d49f7fc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685D8B0.lua
@@ -0,0 +1,67 @@
+---@meta
+---@class Barotrauma.LevelWall : System.Object
+---`Field NonPublic Instance`
+---@field level Barotrauma.Level
+---`Field Private Instance`
+---@field triangles (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+---`Field Private Instance`
+---@field color Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field moveState System.Single
+---`Field Private Instance`
+---@field moveLength System.Single
+---`Field Private Instance`
+---@field moveAmount Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field wallDamageOnTouch System.Single
+---`Field Public Instance`
+---@field MoveSpeed System.Single
+---`Field Private Instance`
+---@field originalPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Cells (System.Collections.Generic.List*1Voronoi2*VoronoiCell)|(Voronoi2.VoronoiCell[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Body FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WallDamageOnTouch System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveState System.Single
+_G['LevelWall'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['LevelWall'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['LevelWall'].IsPointInside = function(point) end
+
+---`Method Public Instance Virtual`
+_G['LevelWall'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[]), color:Microsoft.Xna.Framework.Color, level:Barotrauma.Level, giftWrap?:System.Boolean, createBody?:System.Boolean):Barotrauma.LevelWall
+---@param edgePositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param extendAmount Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@return Barotrauma.LevelWall
+_G['LevelWall'] = function(edgePositions, extendAmount, color, level) end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[]), color:Microsoft.Xna.Framework.Color, level:Barotrauma.Level, giftWrap?:System.Boolean, createBody?:System.Boolean):Barotrauma.LevelWall
+---@param edgePositions (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param extendAmount Microsoft.Xna.Framework.Vector2
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@return Barotrauma.LevelWall
+_G['LevelWall'].__new = function(edgePositions, extendAmount, color, level) end
+
diff --git a/Meta/Types/server/_00007FFD9685DBF8.lua b/Meta/Types/server/_00007FFD9685DBF8.lua
new file mode 100644
index 0000000..3b5b11c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685DBF8.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.DestructibleLevelWall : Barotrauma.LevelWall
+---`Field Public Instance`
+---@field NetworkUpdatePending System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Damage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Destroyed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadeOutDuration System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadeOutTimer System.Single
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+_G['DestructibleLevelWall'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['DestructibleLevelWall'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param damage System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+_G['DestructibleLevelWall'].AddDamage = function(damage, worldPosition) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['DestructibleLevelWall'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Private Instance`
+_G['DestructibleLevelWall'].CreateFragments = function() end
+
+---`Method Public Instance`
+_G['DestructibleLevelWall'].Destroy = function() end
+
+---`Constructor Public Instance`
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@param health? System.Nullable*1System*Single
+---@param giftWrap? System.Boolean
+---@return Barotrauma.DestructibleLevelWall
+_G['DestructibleLevelWall'] = function(vertices, color, level, health, giftWrap) end
+
+---`Constructor Public Instance`
+---@param vertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---@param color Microsoft.Xna.Framework.Color
+---@param level Barotrauma.Level
+---@param health? System.Nullable*1System*Single
+---@param giftWrap? System.Boolean
+---@return Barotrauma.DestructibleLevelWall
+_G['DestructibleLevelWall'].__new = function(vertices, color, level, health, giftWrap) end
+
diff --git a/Meta/Types/server/_00007FFD9685E520.lua b/Meta/Types/server/_00007FFD9685E520.lua
new file mode 100644
index 0000000..4c8a4f2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685E520.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.Biome : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field OldIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field IsEndBiome System.Boolean
+---`Field Public Instance`
+---@field EndBiomeLocationCount System.Int32
+---`Field Public Instance`
+---@field MinDifficulty System.Single
+---`Field Private Instance`
+---@field maxDifficulty System.Single
+---`Field Public Instance`
+---@field AllowedZones (System.Collections.Immutable.ImmutableHashSet*1System*Int32)|(System.Int32[])
+---`Field Private Instance`
+---@field submarineAvailability System.Nullable*1Barotrauma*Biome*SubmarineAvailability
+---`Field Private Instance`
+---@field submarineAvailabilityOverrides (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Biome*SubmarineAvailability)|(Barotrauma.Biome.SubmarineAvailability[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*Biome)|(fun():(Barotrauma.Biome))
+---`Getter Public Instance`
+---@field ActualMaxDifficulty System.Single
+---`Getter Public Instance`
+---@field AdjustedMaxDifficulty System.Single
+_G['Biome'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Identifier
+_G['Biome'].ParseIdentifier = function(element) end
+
+---`Method Public Instance`
+---@param subClass Barotrauma.SubmarineClass
+---@param locationType Barotrauma.Identifier
+---@return System.Int32
+_G['Biome'].HighestSubmarineTierAvailable = function(subClass, locationType) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@param locationType Barotrauma.Identifier
+---@return System.Boolean
+_G['Biome'].IsSubmarineAvailable = function(info, locationType) end
+
+---`Method Public Instance Virtual`
+_G['Biome'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.LevelGenerationParametersFile):Barotrauma.Biome
+---@return Barotrauma.Biome
+_G['Biome'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9685EDB0.lua b/Meta/Types/server/_00007FFD9685EDB0.lua
new file mode 100644
index 0000000..b67adcf
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685EDB0.lua
@@ -0,0 +1,245 @@
+---@meta
+---@class Barotrauma.Map : System.Object
+---`Field Public Instance`
+---@field AllowDebugTeleport System.Boolean
+---`Field Private Instance`
+---@field generationParams Barotrauma.MapGenerationParams
+---`Field Private Instance`
+---@field furthestDiscoveredLocation Barotrauma.Location
+---`Field Public Instance`
+---@field OnLocationSelected (System.Action*1Barotrauma*Location*1Barotrauma*LocationConnection)|(fun(arg1:Barotrauma.Location, arg2:Barotrauma.LocationConnection))
+---`Field Public Instance`
+---@field OnMissionsSelected (System.Action*1Barotrauma*LocationConnection*1System*Collections*Generic*IEnumerable*2Barotrauma*Mission)|(fun(arg1:Barotrauma.LocationConnection, arg2:(System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))))
+---`Field Public Instance`
+---@field OnLocationChanged Barotrauma.NamedEvent*1Barotrauma*Map*LocationChangeInfo
+---`Field Private Instance`
+---@field endLocations (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Field Private Instance`
+---@field locationsDiscovered (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Field Private Instance`
+---@field locationsVisited (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Field Public Instance`
+---@field Radiation Barotrauma.Radiation
+---`Field Private Instance`
+---@field trackedLocationDiscoveryAndVisitOrder System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Width System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Height System.Int32
+---`Getter Public Instance`
+---@field EndLocations (System.Collections.Generic.IReadOnlyList*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartLocation Barotrauma.Location
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentLocation Barotrauma.Location
+---`Getter Public Instance`
+---@field CurrentLocationIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedLocation Barotrauma.Location
+---`Getter Public Instance`
+---@field SelectedLocationIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedConnection Barotrauma.LocationConnection
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Seed System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Locations (System.Collections.Generic.List*1Barotrauma*Location)|(Barotrauma.Location[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*LocationConnection)|(Barotrauma.LocationConnection[])
+_G['Map'] = {}
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+_G['Map'].GetSelectedMissionIndices = function() end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Map'].Generate = function(campaign) end
+
+---`Method Public Instance`
+---@param xPos System.Single
+---@return System.Int32
+_G['Map'].GetZoneIndex = function(xPos) end
+
+---`Method Public Instance`
+---@overload fun(mapPos:Microsoft.Xna.Framework.Vector2):(Barotrauma.Biome)
+---@param xPos System.Single
+---@return Barotrauma.Biome
+_G['Map'].GetBiome = function(xPos) end
+
+---`Method Private Instance`
+---@param rand System.Random
+_G['Map'].AssignBiomes = function(rand) end
+
+---`Method Private Instance`
+---@return Barotrauma.Location
+_G['Map'].GetPreviousToEndLocation = function() end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param location Barotrauma.Location
+_G['Map'].ForceLocationTypeToNone = function(campaign, location) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Map'].CreateEndLocation = function(campaign) end
+
+---`Method Private Instance`
+_G['Map'].AssignEndLocationLevelData = function() end
+
+---`Method Private Instance`
+---@param seeds (System.Collections.Generic.List*1Barotrauma*LocationConnection)|(Barotrauma.LocationConnection[])
+_G['Map'].ExpandBiomes = function(seeds) end
+
+---`Method Public Instance`
+_G['Map'].MoveToNextLocation = function() end
+
+---`Method Public Instance`
+---@param index System.Int32
+_G['Map'].SetLocation = function(index) end
+
+---`Method Public Instance`
+---@overload fun(index:System.Int32)
+---@param location Barotrauma.Location
+_G['Map'].SelectLocation = function(location) end
+
+---`Method Public Instance`
+---@param missionIndices (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+_G['Map'].SelectMission = function(missionIndices) end
+
+---`Method Public Instance`
+---@param preferUndiscovered System.Boolean
+_G['Map'].SelectRandomLocation = function(preferUndiscovered) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param transitionType Barotrauma.CampaignMode.TransitionType
+---@param roundDuration System.Single
+_G['Map'].ProgressWorld = function(campaign, transitionType, roundDuration) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Map'].ProgressWorld = function(campaign) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['Map'].ProgressLocationTypeChanges = function(campaign, location) end
+
+---`Method Private Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param location Barotrauma.Location
+---@param change Barotrauma.LocationTypeChange
+---@return System.Boolean
+_G['Map'].ChangeLocationType = function(campaign, location, change) end
+
+---`Method Public Static`
+---@param startLocation Barotrauma.Location
+---@param maxDistance System.Int32
+---@param criteria (System.Func*1Barotrauma*Location*1System*Boolean)|(fun(arg:Barotrauma.Location):(System.Boolean))
+---@param connectionCriteria? (System.Func*1Barotrauma*LocationConnection*1System*Boolean)|(fun(arg:Barotrauma.LocationConnection):(System.Boolean))
+---@return System.Boolean
+_G['Map'].LocationOrConnectionWithinDistance = function(startLocation, maxDistance, criteria, connectionCriteria) end
+
+---`Method Public Static`
+---@param startLocation Barotrauma.Location
+---@param maxDistance System.Int32
+---@param criteria (System.Func*1Barotrauma*Location*1System*Boolean)|(fun(arg:Barotrauma.Location):(System.Boolean))
+---@param connectionCriteria? (System.Func*1Barotrauma*LocationConnection*1System*Boolean)|(fun(arg:Barotrauma.LocationConnection):(System.Boolean))
+---@return System.Int32
+_G['Map'].GetDistanceToClosestLocationOrConnection = function(startLocation, maxDistance, criteria, connectionCriteria) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param checkTalents? System.Boolean
+_G['Map'].Discover = function(location, checkTalents) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+_G['Map'].Visit = function(location) end
+
+---`Method Public Instance`
+_G['Map'].ClearLocationHistory = function() end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Nullable*1System*Int32
+_G['Map'].GetDiscoveryIndex = function(location) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@param includeLocationsWithoutOutpost? System.Boolean
+---@return System.Nullable*1System*Int32
+_G['Map'].GetVisitIndex = function(location, includeLocationsWithoutOutpost) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['Map'].IsDiscovered = function(location) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['Map'].IsVisited = function(location) end
+
+---`Method Public Static`
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Map
+_G['Map'].Load = function(campaign, element) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@param showNotifications System.Boolean
+_G['Map'].LoadState = function(campaign, element, showNotifications) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Map'].Save = function(element) end
+
+---`Method Public Instance`
+_G['Map'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'] = function(campaign, seed) end
+
+---`Constructor Public Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'].__new = function(campaign, seed) end
+
+---`Constructor Private Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'] = function(campaign, seed) end
+
+---`Constructor Private Instance`
+---@overload fun(settings:Barotrauma.CampaignSettings):Barotrauma.Map
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement):Barotrauma.Map
+---@param campaign Barotrauma.CampaignMode
+---@param seed System.String
+---@return Barotrauma.Map
+_G['Map'].__new = function(campaign, seed) end
+
diff --git a/Meta/Types/server/_00007FFD9685F0A8.lua b/Meta/Types/server/_00007FFD9685F0A8.lua
new file mode 100644
index 0000000..3027ca2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685F0A8.lua
@@ -0,0 +1,67 @@
+---@meta
+---@class Barotrauma.Radiation : System.Object
+---`Field Public Instance`
+---@field Map Barotrauma.Map
+---`Field Public Instance`
+---@field Params Barotrauma.RadiationParams
+---`Field Private Instance`
+---@field radiationAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field radiationTimer System.Single
+---`Field Private Instance`
+---@field increasedAmount System.Single
+---`Field Private Instance`
+---@field lastIncrease System.Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Amount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['Radiation'] = {}
+
+---`Method Public Instance`
+---@param steps? System.Single
+_G['Radiation'].OnStep = function(steps) end
+
+---`Method Public Instance`
+---@param amount System.Single
+_G['Radiation'].IncreaseRadiation = function(amount) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Radiation'].UpdateRadiation = function(deltaTime) end
+
+---`Method Public Instance`
+---@overload fun(location:Barotrauma.Location):(System.Boolean)
+---@param pos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Radiation'].Contains = function(pos) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['Radiation'].IsEntityRadiated = function(entity) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['Radiation'].Save = function() end
+
+---`Constructor Public Instance`
+---@param map Barotrauma.Map
+---@param radiationParams Barotrauma.RadiationParams
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Radiation
+_G['Radiation'] = function(map, radiationParams, element) end
+
+---`Constructor Public Instance`
+---@param map Barotrauma.Map
+---@param radiationParams Barotrauma.RadiationParams
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Radiation
+_G['Radiation'].__new = function(map, radiationParams, element) end
+
diff --git a/Meta/Types/server/_00007FFD9685F498.lua b/Meta/Types/server/_00007FFD9685F498.lua
new file mode 100644
index 0000000..a139413
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9685F498.lua
@@ -0,0 +1,87 @@
+---@meta
+---@class Barotrauma.PriceInfo : System.Object
+---`Field Private Instance`
+---@field minReputation (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Static`
+---@field DefaultAmount System.Int32
+---`Field Private Static`
+---@field DefaultMaxAvailabilityRelativeToMin System.Single
+---`Getter Public Instance`
+---@field Price System.Int32
+---`Getter Public Instance`
+---@field CanBeBought System.Boolean
+---`Getter Public Instance`
+---@field MinAvailableAmount System.Int32
+---`Getter Public Instance`
+---@field MaxAvailableAmount System.Int32
+---`Getter Public Instance`
+---@field CanBeSpecial System.Boolean
+---`Getter Public Instance`
+---@field MinLevelDifficulty System.Int32
+---`Getter Public Instance`
+---@field BuyingPriceMultiplier System.Single
+---`Getter Public Instance`
+---@field DisplayNonEmpty System.Boolean
+---`Getter Public Instance`
+---@field StoreIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field RequiresUnlock System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RequiredFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---@field MinReputation (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+_G['PriceInfo'] = {}
+
+---`Method Private Instance`
+---@param priceInfoElement System.Xml.Linq.XElement
+_G['PriceInfo'].LoadReputationRestrictions = function(priceInfoElement) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param defaultPrice Barotrauma.PriceInfo-ref
+---@return (System.Collections.Generic.List*1Barotrauma*PriceInfo)|(Barotrauma.PriceInfo[])
+_G['PriceInfo'].CreatePriceInfos = function(element, defaultPrice) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param defaultValue System.Int32
+---@return System.Int32
+_G['PriceInfo'].GetMinAmount = function(element, defaultValue) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param defaultValue System.Int32
+---@return System.Int32
+_G['PriceInfo'].GetMaxAmount = function(element, defaultValue) end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement):Barotrauma.PriceInfo
+---@param price System.Int32
+---@param canBeBought System.Boolean
+---@param minAmount? System.Int32
+---@param maxAmount? System.Int32
+---@param canBeSpecial? System.Boolean
+---@param minLevelDifficulty? System.Int32
+---@param buyingPriceMultiplier? System.Single
+---@param displayNonEmpty? System.Boolean
+---@param requiresUnlock? System.Boolean
+---@param storeIdentifier? System.String
+---@return Barotrauma.PriceInfo
+_G['PriceInfo'] = function(price, canBeBought, minAmount, maxAmount, canBeSpecial, minLevelDifficulty, buyingPriceMultiplier, displayNonEmpty, requiresUnlock, storeIdentifier) end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement):Barotrauma.PriceInfo
+---@param price System.Int32
+---@param canBeBought System.Boolean
+---@param minAmount? System.Int32
+---@param maxAmount? System.Int32
+---@param canBeSpecial? System.Boolean
+---@param minLevelDifficulty? System.Int32
+---@param buyingPriceMultiplier? System.Single
+---@param displayNonEmpty? System.Boolean
+---@param requiresUnlock? System.Boolean
+---@param storeIdentifier? System.String
+---@return Barotrauma.PriceInfo
+_G['PriceInfo'].__new = function(price, canBeBought, minAmount, maxAmount, canBeSpecial, minLevelDifficulty, buyingPriceMultiplier, displayNonEmpty, requiresUnlock, storeIdentifier) end
+
diff --git a/Meta/Types/server/_00007FFD968612B8.lua b/Meta/Types/server/_00007FFD968612B8.lua
new file mode 100644
index 0000000..7b0d9a9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968612B8.lua
@@ -0,0 +1,379 @@
+---@meta
+---@class Barotrauma.Location : System.Object
+---`Field Public Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*LocationConnection)|(Barotrauma.LocationConnection[])
+---`Field Private Instance`
+---@field nameFormatIndex System.Int32
+---`Field Private Instance`
+---@field nameIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field rawName System.String
+---`Field Private Instance`
+---@field addInitialMissionsForType Barotrauma.LocationType
+---`Field Public Instance`
+---@field ProximityTimer (System.Collections.Generic.Dictionary*1Barotrauma*LocationTypeChange*Requirement*1System*Int32)|({[Barotrauma.LocationTypeChange.Requirement]:(System.Int32)})
+---`Field Public Instance`
+---@field PendingLocationTypeChange System.Nullable*1System*ValueTuple*2Barotrauma*LocationTypeChange*2System*Int32*2Barotrauma*MissionPrefab
+---`Field Public Instance`
+---@field LocationTypeChangeCooldown System.Int32
+---`Field Public Instance`
+---@field DisallowLocationTypeChanges System.Boolean
+---`Field Private Instance`
+---@field takenItems (System.Collections.Generic.List*1Barotrauma*Location*TakenItem)|(Barotrauma.Location.TakenItem[])
+---`Field Private Instance`
+---@field killedCharacterIdentifiers (System.Collections.Generic.HashSet*1System*Int32)|(System.Int32[])
+---`Field Private Instance`
+---@field availableMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Private Instance`
+---@field selectedMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Field Private Instance`
+---@field priceMultiplier System.Single
+---`Field Private Instance`
+---@field mechanicalpriceMultiplier System.Single
+---`Field Public Instance`
+---@field LastTypeChangeMessage System.String
+---`Field Public Instance`
+---@field TimeSinceLastTypeChange System.Int32
+---`Field Public Instance`
+---@field IsGateBetweenBiomes System.Boolean
+---`Field Private Instance`
+---@field loadedMissions (System.Collections.Generic.List*1Barotrauma*Location*LoadedMission)|(Barotrauma.Location.LoadedMission[])
+---`Field Public Instance`
+---@field HireManager Barotrauma.HireManager
+---`Field Private Static`
+---@field SpecialsUpdateInterval System.Int32
+---`Field Private Static`
+---@field MechanicalMaxDiscountPercentage System.Single
+---`Field Private Static`
+---@field HealMaxDiscountPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field NameIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field NameFormatIndex System.Int32
+---`Getter Public Instance`
+---@field Discovered System.Boolean
+---`Getter Public Instance`
+---@field Visited System.Boolean
+---`Getter Public Instance`
+---@field LocationTypeChangesBlocked System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Biome Barotrauma.Biome
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MapPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Type Barotrauma.LocationType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OriginalType Barotrauma.LocationType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelData Barotrauma.LevelData
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PortraitId System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Faction Barotrauma.Faction
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SecondaryFaction Barotrauma.Faction
+---`Getter Public Instance`
+---@field Reputation Barotrauma.Reputation
+---`Getter Public Instance`
+---@field IsFactionHostile System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TurnsInRadiation System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stores (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Location*StoreInfo)|({[Barotrauma.Identifier]:(Barotrauma.Location.StoreInfo)})
+---`Getter Private Instance`
+---@field StoreMaxReputationModifier System.Single
+---`Getter Private Instance`
+---@field StoreSellPriceModifier System.Single
+---`Getter Private Instance`
+---@field DailySpecialPriceModifier System.Single
+---`Getter Private Instance`
+---@field RequestGoodPriceModifier System.Single
+---`Getter Public Instance`
+---@field StoreInitialBalance System.Int32
+---`Getter Private Instance`
+---@field StorePriceModifierRange System.Int32
+---`Getter Public Instance`
+---@field DailySpecialsCount System.Int32
+---`Getter Public Instance`
+---@field RequestedGoodsCount System.Int32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field StepsSinceSpecialsUpdated System.Int32
+---`Getter Public Instance`
+---@field StoreIdentifiers (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field TakenItems (System.Collections.Generic.IEnumerable*1Barotrauma*Location*TakenItem)|(fun():(Barotrauma.Location.TakenItem))
+---`Getter Public Instance`
+---@field KilledCharacterIdentifiers (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+---`Getter Public Instance`
+---@field AvailableMissions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---@field SelectedMissions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PriceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MechanicalPriceMultiplier System.Single
+_G['Location'] = {}
+
+---`Method Public Instance`
+---@param characters (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['Location'].RegisterKilledCharacters = function(characters) end
+
+---`Method Public Instance`
+_G['Location'].RemoveTakenItems = function() end
+
+---`Method Public Instance`
+---@param cost System.Int32
+---@return System.Int32
+_G['Location'].GetAdjustedMechanicalCost = function(cost) end
+
+---`Method Public Instance`
+---@param cost System.Int32
+---@return System.Int32
+_G['Location'].GetAdjustedHealCost = function(cost) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.Location.StoreInfo
+_G['Location'].GetStore = function(identifier) end
+
+---`Method Public Instance`
+---@param force? System.Boolean
+_G['Location'].CreateStores = function(force) end
+
+---`Method Public Instance`
+_G['Location'].UpdateStores = function() end
+
+---`Method Public Instance`
+_G['Location'].UpdateSpecials = function() end
+
+---`Method Private Instance`
+_G['Location'].UpdateStoreIdentifiers = function() end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+_G['Location'].AddNewStore = function(identifier) end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[]))})
+_G['Location'].AddStock = function(items) end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[]))})
+_G['Location'].RemoveStock = function(items) end
+
+---`Method Public Static`
+---@return System.Int32
+_G['Location'].GetExtraSpecialSalesCount = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].CanHaveSubsForSale = function() end
+
+---`Method Public Instance`
+---@param submarineClass? Barotrauma.SubmarineClass
+---@return System.Int32
+_G['Location'].HighestSubmarineTierAvailable = function(submarineClass) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@return System.Boolean
+_G['Location'].IsSubmarineAvailable = function(info) end
+
+---`Method Private Instance`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@return System.Boolean
+_G['Location'].CanHaveCampaignInteraction = function(interactionType) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Location'].Reset = function(campaign) end
+
+---`Method Public Instance`
+---@param map Barotrauma.Map
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Location'].Save = function(map, parentElement) end
+
+---`Method Public Instance`
+_G['Location'].Remove = function() end
+
+---`Method Public Instance`
+_G['Location'].RemoveProjSpecific = function() end
+
+---`Method Public Instance`
+---@param mission Barotrauma.Mission
+_G['Location'].SelectMission = function(mission) end
+
+---`Method Public Instance`
+---@param mission Barotrauma.Mission
+_G['Location'].DeselectMission = function(mission) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+_G['Location'].GetSelectedMissionIndices = function() end
+
+---`Method Public Instance`
+---@param missionIndices (System.Collections.Generic.IEnumerable*1System*Int32)|(fun():(System.Int32))
+_G['Location'].SetSelectedMissionIndices = function(missionIndices) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Location'].ToString = function() end
+
+---`Method Public Instance`
+---@param locationElement System.Xml.Linq.XElement
+_G['Location'].LoadLocationTypeChange = function(locationElement) end
+
+---`Method Public Instance`
+---@param locationElement System.Xml.Linq.XElement
+_G['Location'].LoadMissions = function(locationElement) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param zone System.Nullable*1System*Int32
+---@param rand System.Random
+---@param requireOutpost System.Boolean
+---@param forceLocationType? Barotrauma.LocationType
+---@param existingLocations? (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+---@return Barotrauma.Location
+_G['Location'].CreateRandom = function(position, zone, rand, requireOutpost, forceLocationType, existingLocations) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@param newType Barotrauma.LocationType
+---@param createStores? System.Boolean
+_G['Location'].ChangeType = function(campaign, newType, createStores) end
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+_G['Location'].TryAssignFactionBasedOnLocationType = function(campaign) end
+
+---`Method Public Instance`
+---@param randSync? Barotrauma.Rand.RandSync
+_G['Location'].UnlockInitialMissions = function(randSync) end
+
+---`Method Public Instance`
+---@overload fun(missionPrefab:Barotrauma.MissionPrefab, connection:Barotrauma.LocationConnection)
+---@param missionPrefab Barotrauma.MissionPrefab
+_G['Location'].UnlockMission = function(missionPrefab) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param invokingContentPackage? Barotrauma.ContentPackage
+---@return Barotrauma.Mission
+_G['Location'].UnlockMissionByIdentifier = function(identifier, invokingContentPackage) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param random? System.Random
+---@param invokingContentPackage? Barotrauma.ContentPackage
+---@return Barotrauma.Mission
+_G['Location'].UnlockMissionByTag = function(tag, random, invokingContentPackage) end
+
+---`Method Private Instance`
+---@param mission Barotrauma.Mission
+_G['Location'].AddMission = function(mission) end
+
+---`Method Private Instance`
+---@overload fun(prefab:Barotrauma.MissionPrefab, connection:Barotrauma.LocationConnection-ref):(Barotrauma.Mission)
+---@overload fun(prefab:Barotrauma.MissionPrefab, connection:Barotrauma.LocationConnection):(Barotrauma.Mission)
+---@param prefab Barotrauma.MissionPrefab
+---@return Barotrauma.Mission
+_G['Location'].InstantiateMission = function(prefab) end
+
+---`Method Public Instance`
+---@param map Barotrauma.Map
+_G['Location'].InstantiateLoadedMissions = function(map) end
+
+---`Method Public Instance`
+_G['Location'].ClearMissions = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].HasOutpost = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].IsCriticallyRadiated = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocationType
+_G['Location'].GetLocationType = function() end
+
+---`Method Public Instance`
+---@param connection Barotrauma.LocationConnection
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+_G['Location'].GetMissionsInConnection = function(connection) end
+
+---`Method Public Instance`
+---@param character Barotrauma.CharacterInfo
+_G['Location'].RemoveHireableCharacter = function(character) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))
+_G['Location'].GetHireableCharacters = function() end
+
+---`Method Public Instance`
+---@param hireableCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo)|(fun():(Barotrauma.CharacterInfo))
+_G['Location'].ForceHireableCharacters = function(hireableCharacters) end
+
+---`Method Private Instance`
+---@param type Barotrauma.LocationType
+---@param rand System.Random
+---@param existingLocations (System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))
+_G['Location'].CreateRandomName = function(type, rand, existingLocations) end
+
+---`Method Public Static`
+---@overload fun(locationTypeIdentifier:Barotrauma.Identifier, nameFormatIndex:System.Int32, nameId:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@param type Barotrauma.LocationType
+---@param nameFormatIndex System.Int32
+---@param nameId Barotrauma.Identifier
+---@return Barotrauma.LocalizedString
+_G['Location'].GetName = function(type, nameFormatIndex, nameId) end
+
+---`Method Public Instance`
+---@param nameId Barotrauma.Identifier
+_G['Location'].ForceName = function(nameId) end
+
+---`Method Public Instance`
+---@param locationElement System.Xml.Linq.XElement
+_G['Location'].LoadStores = function(locationElement) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Location'].IsRadiated = function() end
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Location'].RegisterTakenItems = function(items) end
+
+---`Constructor Public Instance`
+---@overload fun(mapPosition:Microsoft.Xna.Framework.Vector2, zone:System.Nullable*1System*Int32, rand:System.Random, requireOutpost?:System.Boolean, forceLocationType?:Barotrauma.LocationType, existingLocations?:(System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))):Barotrauma.Location
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Location
+_G['Location'] = function(campaign, element) end
+
+---`Constructor Public Instance`
+---@overload fun(mapPosition:Microsoft.Xna.Framework.Vector2, zone:System.Nullable*1System*Int32, rand:System.Random, requireOutpost?:System.Boolean, forceLocationType?:Barotrauma.LocationType, existingLocations?:(System.Collections.Generic.IEnumerable*1Barotrauma*Location)|(fun():(Barotrauma.Location))):Barotrauma.Location
+---@param campaign Barotrauma.CampaignMode
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.Location
+_G['Location'].__new = function(campaign, element) end
+
diff --git a/Meta/Types/server/_00007FFD968614A8.lua b/Meta/Types/server/_00007FFD968614A8.lua
new file mode 100644
index 0000000..88c24f0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968614A8.lua
@@ -0,0 +1,52 @@
+---@meta
+---@class Barotrauma.LocationTypeChange : System.Object
+---`Field Public Instance`
+---@field CurrentType Barotrauma.Identifier
+---`Field Public Instance`
+---@field ChangeToType Barotrauma.Identifier
+---`Field Public Instance`
+---@field Probability System.Single
+---`Field Public Instance`
+---@field RequireDiscovered System.Boolean
+---`Field Public Instance`
+---@field Requirements (System.Collections.Generic.List*1Barotrauma*LocationTypeChange*Requirement)|(Barotrauma.LocationTypeChange.Requirement[])
+---`Field Private Instance`
+---@field requireChangeMessages System.Boolean
+---`Field Private Instance`
+---@field messageTag System.String
+---`Field Public Instance`
+---@field DisallowedAdjacentLocations (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field DisallowedProximity System.Int32
+---`Field Public Instance`
+---@field CooldownAfterChange System.Int32
+---`Field Public Instance`
+---@field RequiredDurationRange Microsoft.Xna.Framework.Point
+_G['LocationTypeChange'] = {}
+
+---`Method Public Instance`
+---@param faction Barotrauma.Faction
+---@return (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+_G['LocationTypeChange'].GetMessages = function(faction) end
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return System.Single
+_G['LocationTypeChange'].DetermineProbability = function(location) end
+
+---`Constructor Public Instance`
+---@param currentType Barotrauma.Identifier
+---@param element Barotrauma.ContentXElement
+---@param requireChangeMessages System.Boolean
+---@param defaultProbability? System.Single
+---@return Barotrauma.LocationTypeChange
+_G['LocationTypeChange'] = function(currentType, element, requireChangeMessages, defaultProbability) end
+
+---`Constructor Public Instance`
+---@param currentType Barotrauma.Identifier
+---@param element Barotrauma.ContentXElement
+---@param requireChangeMessages System.Boolean
+---@param defaultProbability? System.Single
+---@return Barotrauma.LocationTypeChange
+_G['LocationTypeChange'].__new = function(currentType, element, requireChangeMessages, defaultProbability) end
+
diff --git a/Meta/Types/server/_00007FFD96861AD0.lua b/Meta/Types/server/_00007FFD96861AD0.lua
new file mode 100644
index 0000000..c05b395
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96861AD0.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.LocationConnection : System.Object
+---`Field Public Instance`
+---@field Biome Barotrauma.Biome
+---`Field Public Instance`
+---@field Difficulty System.Single
+---`Field Public Instance`
+---@field CrackSegments (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr)|((Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])[])
+---`Field Public Instance`
+---@field Passed System.Boolean
+---`Field Public Instance`
+---@field Locked System.Boolean
+---`Field Private Instance`
+---@field availableMissions (System.Collections.Generic.List*1Barotrauma*Mission)|(Barotrauma.Mission[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelData Barotrauma.LevelData
+---`Getter Public Instance`
+---@field CenterPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Locations (Barotrauma.Location-arr)|(Barotrauma.Location[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Length System.Single
+---`Getter Public Instance`
+---@field AvailableMissions (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+_G['LocationConnection'] = {}
+
+---`Method Public Instance`
+---@param location Barotrauma.Location
+---@return Barotrauma.Location
+_G['LocationConnection'].OtherLocation = function(location) end
+
+---`Constructor Public Instance`
+---@param location1 Barotrauma.Location
+---@param location2 Barotrauma.Location
+---@return Barotrauma.LocationConnection
+_G['LocationConnection'] = function(location1, location2) end
+
+---`Constructor Public Instance`
+---@param location1 Barotrauma.Location
+---@param location2 Barotrauma.Location
+---@return Barotrauma.LocationConnection
+_G['LocationConnection'].__new = function(location1, location2) end
+
diff --git a/Meta/Types/server/_00007FFD96862370.lua b/Meta/Types/server/_00007FFD96862370.lua
new file mode 100644
index 0000000..86a6d00
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96862370.lua
@@ -0,0 +1,264 @@
+---@meta
+---@class Barotrauma.EventManager : System.Object
+---`Field Private Instance`
+---@field level Barotrauma.Level
+---`Field Private Instance`
+---@field preloadedSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field currentIntensity System.Single
+---`Field Private Instance`
+---@field targetIntensity System.Single
+---`Field Private Instance`
+---@field musicIntensity System.Single
+---`Field Private Instance`
+---@field eventThreshold System.Single
+---`Field Private Instance`
+---@field eventCoolDown System.Single
+---`Field Private Instance`
+---@field intensityUpdateTimer System.Single
+---`Field Private Instance`
+---@field pathFinder Barotrauma.PathFinder
+---`Field Private Instance`
+---@field totalPathLength System.Single
+---`Field Private Instance`
+---@field calculateDistanceTraveledTimer System.Single
+---`Field Private Instance`
+---@field distanceTraveled System.Single
+---`Field Private Instance`
+---@field avgCrewHealth System.Single
+---`Field Private Instance`
+---@field avgHullIntegrity System.Single
+---`Field Private Instance`
+---@field floodingAmount System.Single
+---`Field Private Instance`
+---@field fireAmount System.Single
+---`Field Private Instance`
+---@field enemyDanger System.Single
+---`Field Private Instance`
+---@field monsterStrength System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthMain System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthRuins System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthWrecks System.Single
+---`Field Public Instance`
+---@field CumulativeMonsterStrengthCaves System.Single
+---`Field Private Instance`
+---@field roundDuration System.Single
+---`Field Private Instance`
+---@field isCrewAway System.Boolean
+---`Field Private Instance`
+---@field crewAwayResetTimer System.Single
+---`Field Private Instance`
+---@field crewAwayDuration System.Single
+---`Field Private Instance`
+---@field pendingEventSets (System.Collections.Generic.List*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---`Field Private Instance`
+---@field selectedEvents (System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Collections*Generic*List*2Barotrauma*Event)|({[Barotrauma.EventSet]:((System.Collections.Generic.List*1Barotrauma*Event)|(Barotrauma.Event[]))})
+---`Field Private Instance`
+---@field activeEvents (System.Collections.Generic.List*1Barotrauma*Event)|(Barotrauma.Event[])
+---`Field Private Instance`
+---@field finishedEvents (System.Collections.Generic.HashSet*1Barotrauma*Event)|(Barotrauma.Event[])
+---`Field Private Instance`
+---@field nonRepeatableEvents (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field nextIntensityLogTime System.DateTime
+---`Field Private Instance`
+---@field settings Barotrauma.EventManagerSettings
+---`Field Private Instance`
+---@field isClient System.Boolean
+---`Field Public Instance`
+---@field QueuedEvents (System.Collections.Generic.Queue*1Barotrauma*Event)|(fun():(Barotrauma.Event))
+---`Field Public Instance`
+---@field QueuedEventsForNextRound (System.Collections.Generic.Queue*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Field Private Instance`
+---@field timeStamps (System.Collections.Generic.List*1Barotrauma*EventManager*TimeStamp)|(Barotrauma.EventManager.TimeStamp[])
+---`Field Public Instance`
+---@field EventLog Barotrauma.EventLog
+---`Field Public Instance`
+---@field Enabled System.Boolean
+---`Field Private Instance`
+---@field random Barotrauma.MTRandom
+---`Field Private Instance`
+---@field eventsInitialized System.Boolean
+---`Field Private Static`
+---@field IntensityUpdateInterval System.Single
+---`Field Private Static`
+---@field CalculateDistanceTraveledInterval System.Single
+---`Field Private Static`
+---@field MaxEventHistory System.Int32
+---`Field Private Static`
+---@field CrewAwayResetDelay System.Single
+---`Getter Public Instance`
+---@field CurrentIntensity System.Single
+---`Getter Public Instance`
+---@field MusicIntensity System.Single
+---`Getter Public Instance`
+---@field ActiveEvents (System.Collections.Generic.IEnumerable*1Barotrauma*Event)|(fun():(Barotrauma.Event))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomSeed System.Int32
+_G['EventManager'] = {}
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@param entry Barotrauma.EventManager.NetEventLogEntry
+_G['EventManager'].ServerWriteEventLog = function(client, entry) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@param entry Barotrauma.EventManager.NetEventObjective
+_G['EventManager'].ServerWriteObjective = function(client, entry) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['EventManager'].ServerRead = function(inc, sender) end
+
+---`Method Public Instance`
+---@param e Barotrauma.Event
+_G['EventManager'].AddTimeStamp = function(e) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+_G['EventManager'].StartRound = function(level) end
+
+---`Method Public Instance`
+---@param newEvent Barotrauma.Event
+_G['EventManager'].ActivateEvent = function(newEvent) end
+
+---`Method Public Instance`
+_G['EventManager'].ClearEvents = function() end
+
+---`Method Private Instance`
+_G['EventManager'].SelectSettings = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['EventManager'].GetFilesToPreload = function() end
+
+---`Method Public Instance`
+---@param contentFiles (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['EventManager'].PreloadContent = function(contentFiles) end
+
+---`Method Public Instance`
+_G['EventManager'].TriggerOnEndRoundActions = function() end
+
+---`Method Public Instance`
+_G['EventManager'].EndRound = function() end
+
+---`Method Public Instance`
+---@param registerFinishedOnly? System.Boolean
+_G['EventManager'].RegisterEventHistory = function(registerFinishedOnly) end
+
+---`Method Public Instance`
+_G['EventManager'].SkipEventCooldown = function() end
+
+---`Method Private Instance`
+---@param eventPrefab Barotrauma.EventPrefab
+---@param baseCommonness System.Single
+---@return System.Single
+_G['EventManager'].CalculateCommonness = function(eventPrefab, baseCommonness) end
+
+---`Method Private Instance`
+---@param eventSet Barotrauma.EventSet
+_G['EventManager'].CreateEvents = function(eventSet) end
+
+---`Method Private Instance`
+---@param eventSets (System.Collections.Generic.IReadOnlyList*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---@param requireCampaignSet? System.Nullable*1System*Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*EventSet)|(fun():(Barotrauma.EventSet))
+_G['EventManager'].GetAllowedEventSets = function(eventSets, requireCampaignSet) end
+
+---`Method Private Instance`
+---@param eventSets (System.Collections.Generic.IReadOnlyList*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---@param requireCampaignSet? System.Nullable*1System*Boolean
+---@param random? System.Random
+---@return Barotrauma.EventSet
+_G['EventManager'].SelectRandomEvents = function(eventSets, requireCampaignSet, random) end
+
+---`Method Public Static`
+---@param e Barotrauma.EventPrefab
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsSuitable = function(e, level) end
+
+---`Method Public Static`
+---@param e Barotrauma.EventPrefab
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsLevelSuitable = function(e, level) end
+
+---`Method Private Static`
+---@param factionId Barotrauma.Identifier
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsFactionSuitable = function(factionId, level) end
+
+---`Method Private Static`
+---@param eventSet Barotrauma.EventSet
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['EventManager'].IsValidForLevel = function(eventSet, level) end
+
+---`Method Private Instance`
+---@param eventSet Barotrauma.EventSet
+---@param location Barotrauma.Location
+---@return System.Boolean
+_G['EventManager'].IsValidForLocation = function(eventSet, location) end
+
+---`Method Private Instance`
+---@return Barotrauma.Location
+_G['EventManager'].GetEventLocation = function() end
+
+---`Method Private Instance`
+---@param eventSet Barotrauma.EventSet
+---@return System.Boolean
+_G['EventManager'].CanStartEventSet = function(eventSet) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['EventManager'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+_G['EventManager'].EntitySpawned = function(entity) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EventManager'].CalculateCurrentIntensity = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['EventManager'].CalculateDistanceTraveled = function() end
+
+---`Method Public Static`
+---@return Barotrauma.ISpatialEntity
+_G['EventManager'].GetRefEntity = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['EventManager'].IsCrewAway = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EventManager'].IsCharacterAway = function(character) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['EventManager'].Load = function(element) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['EventManager'].Save = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EventManager
+_G['EventManager'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EventManager
+_G['EventManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96862748.lua b/Meta/Types/server/_00007FFD96862748.lua
new file mode 100644
index 0000000..4f7cb76
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96862748.lua
@@ -0,0 +1,94 @@
+---@meta
+---@class Barotrauma.EventPrefab : Barotrauma.Prefab
+---`Field Public Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field EventType System.Type
+---`Field Private Instance`
+---@field tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Probability System.Single
+---`Field Public Instance`
+---@field TriggerEventCooldown System.Boolean
+---`Field Public Instance`
+---@field Commonness System.Single
+---`Field Public Instance`
+---@field BiomeIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field RequiredLayer Barotrauma.Identifier
+---`Field Public Instance`
+---@field RequiredSpawnPointTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field UnlockPathEvent System.Boolean
+---`Field Public Instance`
+---@field UnlockPathTooltip System.String
+---`Field Public Instance`
+---@field UnlockPathReputation System.Int32
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventPrefab)|(fun():(Barotrauma.EventPrefab))
+---`Getter Public Instance`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['EventPrefab'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.RandomEventsFile
+---@param fallbackIdentifier? Barotrauma.Identifier
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].Create = function(element, file, fallbackIdentifier) end
+
+---`Method Public Instance`
+---@param seed System.Int32
+---@param instance Barotrauma.T-ref
+---@return System.Boolean
+_G['EventPrefab'].TryCreateInstance = function(seed, instance) end
+
+---`Method Public Instance`
+---@param seed System.Int32
+---@return Barotrauma.Event
+_G['EventPrefab'].CreateInstance = function(seed) end
+
+---`Method Public Instance Virtual`
+_G['EventPrefab'].Dispose = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['EventPrefab'].ToString = function() end
+
+---`Method Public Static`
+---@param biomeIdentifier Barotrauma.Identifier
+---@param faction Barotrauma.Faction
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].GetUnlockPathEvent = function(biomeIdentifier, faction) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@param tag Barotrauma.Identifier
+---@param source Barotrauma.ContentPackage
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].FindEventPrefab = function(identifier, tag, source) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, fallbackIdentifier?:Barotrauma.Identifier):Barotrauma.EventPrefab
+---@return Barotrauma.EventPrefab
+_G['EventPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968629F8.lua b/Meta/Types/server/_00007FFD968629F8.lua
new file mode 100644
index 0000000..a161b72
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968629F8.lua
@@ -0,0 +1,69 @@
+---@meta
+---@class Barotrauma.Event : System.Object
+---`Field Private Instance`
+---@field Finished (System.Action)|(fun())
+---`Field NonPublic Instance`
+---@field isFinished System.Boolean
+---`Field Public Instance`
+---@field RandomSeed System.Int32
+---`Field NonPublic Instance`
+---@field prefab Barotrauma.EventPrefab
+---`Field Public Instance`
+---@field SpawnPosFilter (System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean)|(fun(arg:Barotrauma.Level.InterestingPosition):(System.Boolean))
+---`Getter Public Instance`
+---@field Prefab Barotrauma.EventPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParentSet Barotrauma.EventSet
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Initialized System.Boolean
+---`Getter Public Instance`
+---@field IsFinished System.Boolean
+---`Getter Public Instance Virtual`
+---@field DebugDrawPos Microsoft.Xna.Framework.Vector2
+_G['Event'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Event'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['Event'].GetFilesToPreload = function() end
+
+---`Method Public Instance`
+---@param parentSet? Barotrauma.EventSet
+_G['Event'].Init = function(parentSet) end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet? Barotrauma.EventSet
+_G['Event'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Event'].GetDebugInfo = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['Event'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['Event'].Finish = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['Event'].LevelMeetsRequirements = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.Event
+_G['Event'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.Event
+_G['Event'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/server/_00007FFD968647F0.lua b/Meta/Types/server/_00007FFD968647F0.lua
new file mode 100644
index 0000000..a2d9b63
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968647F0.lua
@@ -0,0 +1,150 @@
+---@meta
+---@class Barotrauma.EventSet : Barotrauma.Prefab
+---`Field Public Instance`
+---@field IsCampaignSet System.Boolean
+---`Field Public Instance`
+---@field MinLevelDifficulty System.Single
+---`Field Public Instance`
+---@field MaxLevelDifficulty System.Single
+---`Field Public Instance`
+---@field BiomeIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field LevelType Barotrauma.LevelData.LevelType
+---`Field Public Instance`
+---@field RequiredLayer Barotrauma.Identifier
+---`Field Public Instance`
+---@field RequiredSpawnPointTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field LocationTypeIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Faction Barotrauma.Identifier
+---`Field Public Instance`
+---@field ChooseRandom System.Boolean
+---`Field Private Instance`
+---@field eventCount System.Int32
+---`Field Public Instance`
+---@field SubSetCount System.Int32
+---`Field Private Instance`
+---@field overrideEventCount (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32)|({[Barotrauma.Identifier]:(System.Int32)})
+---`Field Public Instance`
+---@field Exhaustible System.Boolean
+---`Field Public Instance`
+---@field MinDistanceTraveled System.Single
+---`Field Public Instance`
+---@field MinMissionTime System.Single
+---`Field Public Instance`
+---@field MinIntensity System.Single
+---`Field Public Instance`
+---@field MaxIntensity System.Single
+---`Field Public Instance`
+---@field AllowAtStart System.Boolean
+---`Field Public Instance`
+---@field IgnoreCoolDown System.Boolean
+---`Field Public Instance`
+---@field TriggerEventCooldown System.Boolean
+---`Field Public Instance`
+---@field IgnoreIntensity System.Boolean
+---`Field Public Instance`
+---@field PerRuin System.Boolean
+---`Field Public Instance`
+---@field PerCave System.Boolean
+---`Field Public Instance`
+---@field PerWreck System.Boolean
+---`Field Public Instance`
+---@field DisableInHuntingGrounds System.Boolean
+---`Field Public Instance`
+---@field OncePerLevel System.Boolean
+---`Field Public Instance`
+---@field DelayWhenCrewAway System.Boolean
+---`Field Public Instance`
+---@field Additive System.Boolean
+---`Field Public Instance`
+---@field SelectAlways System.Boolean
+---`Field Public Instance`
+---@field DefaultCommonness System.Single
+---`Field Public Instance`
+---@field OverrideCommonness (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Public Instance`
+---@field ResetTime System.Single
+---`Field Public Instance`
+---@field ForceAtDiscoveredNr System.Int32
+---`Field Public Instance`
+---@field ForceAtVisitedNr System.Int32
+---`Field Public Instance`
+---@field CampaignTutorialOnly System.Boolean
+---`Field Public Instance`
+---@field EventPrefabs (System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet*SubEventPrefab)|(Barotrauma.EventSet.SubEventPrefab[])
+---`Field Public Instance`
+---@field ChildSets (System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet)|(Barotrauma.EventSet[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*EventSet)|(fun():(Barotrauma.EventSet))
+_G['EventSet'] = {}
+
+---`Method Public Static`
+---@return (System.Collections.Generic.List*1Barotrauma*EventPrefab)|(Barotrauma.EventPrefab[])
+_G['EventSet'].GetAllEventPrefabs = function() end
+
+---`Method Public Static`
+---@param list (System.Collections.Generic.List*1Barotrauma*EventPrefab)|(Barotrauma.EventPrefab[])
+---@param set Barotrauma.EventSet
+_G['EventSet'].AddSetEventPrefabsToList = function(list, set) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.EventPrefab
+_G['EventSet'].GetEventPrefab = function(identifier) end
+
+---`Method Private Static`
+---@param parent Barotrauma.EventSet
+---@param element System.Xml.Linq.XElement
+---@param file Barotrauma.RandomEventsFile
+---@return Barotrauma.Identifier
+_G['EventSet'].DetermineIdentifier = function(parent, element, file) end
+
+---`Method Public Instance`
+_G['EventSet'].CheckLocationTypeErrors = function() end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Single
+_G['EventSet'].GetCommonness = function(level) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Int32
+_G['EventSet'].GetEventCount = function(level) end
+
+---`Method Public Static`
+---@param simulatedRoundCount? System.Int32
+---@param filter? (System.Func*1Barotrauma*MonsterEvent*1System*Boolean)|(fun(arg:Barotrauma.MonsterEvent):(System.Boolean))
+---@param fullLog? System.Boolean
+---@return (System.Collections.Generic.List*1System*String)|(System.String[])
+_G['EventSet'].GetDebugStatistics = function(simulatedRoundCount, filter, fullLog) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['EventSet'].ToString = function() end
+
+---`Method Public Instance Virtual`
+_G['EventSet'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.RandomEventsFile, parentSet?:Barotrauma.EventSet):Barotrauma.EventSet
+---@return Barotrauma.EventSet
+_G['EventSet'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968659A8.lua b/Meta/Types/server/_00007FFD968659A8.lua
new file mode 100644
index 0000000..eea1391
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968659A8.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.ArtifactEvent : Barotrauma.Event
+---`Field Private Instance`
+---@field itemPrefab Barotrauma.ItemPrefab
+---`Field Private Instance`
+---@field item Barotrauma.Item
+---`Field Private Instance`
+---@field state System.Int32
+---`Field Private Instance`
+---@field spawnPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field spawnPending System.Boolean
+---`Getter Public Instance`
+---@field SpawnPending System.Boolean
+---`Getter Public Instance`
+---@field State System.Int32
+---`Getter Public Instance`
+---@field Item Barotrauma.Item
+---`Getter Public Instance`
+---@field SpawnPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field DebugDrawPos Microsoft.Xna.Framework.Vector2
+_G['ArtifactEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ArtifactEvent'].ToString = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet Barotrauma.EventSet
+_G['ArtifactEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ArtifactEvent'].GetDebugInfo = function() end
+
+---`Method Private Instance`
+_G['ArtifactEvent'].SpawnItem = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['ArtifactEvent'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ArtifactEvent
+_G['ArtifactEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ArtifactEvent
+_G['ArtifactEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/server/_00007FFD96865DF0.lua b/Meta/Types/server/_00007FFD96865DF0.lua
new file mode 100644
index 0000000..d0a3e3a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96865DF0.lua
@@ -0,0 +1,99 @@
+---@meta
+---@class Barotrauma.MonsterEvent : Barotrauma.Event
+---`Field Public Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Field Public Instance`
+---@field MinAmount System.Int32
+---`Field Public Instance`
+---@field MaxAmount System.Int32
+---`Field Private Instance`
+---@field monsters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Public Instance`
+---@field SpawnDistance System.Single
+---`Field Private Instance`
+---@field scatter System.Single
+---`Field Private Instance`
+---@field offset System.Single
+---`Field Private Instance`
+---@field delayBetweenSpawns System.Single
+---`Field Private Instance`
+---@field resetTime System.Single
+---`Field Private Instance`
+---@field resetTimer System.Single
+---`Field Private Instance`
+---@field spawnPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field disallowed System.Boolean
+---`Field Public Instance`
+---@field SpawnPosType Barotrauma.Level.PositionType
+---`Field Private Instance`
+---@field spawnPointTag System.String
+---`Field Private Instance`
+---@field spawnPending System.Boolean
+---`Field Private Instance`
+---@field spawnReady System.Boolean
+---`Field Public Instance`
+---@field MaxAmountPerLevel System.Int32
+---`Field Private Instance`
+---@field overridePlayDeadProbability System.Nullable*1System*Single
+---`Field Private Instance`
+---@field chosenPosition Barotrauma.Level.InterestingPosition
+---`Getter Public Instance`
+---@field Monsters (System.Collections.Generic.IReadOnlyList*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Getter Public Instance`
+---@field SpawnPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---@field SpawnPending System.Boolean
+---`Getter Public Instance Virtual`
+---@field DebugDrawPos Microsoft.Xna.Framework.Vector2
+_G['MonsterEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['MonsterEvent'].ToString = function() end
+
+---`Method Private Static`
+---@return Barotrauma.Submarine
+_G['MonsterEvent'].GetReferenceSub = function() end
+
+---`Method Public Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile)|(fun():(Barotrauma.ContentFile))
+_G['MonsterEvent'].GetFilesToPreload = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet Barotrauma.EventSet
+_G['MonsterEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['MonsterEvent'].GetDebugInfo = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition)|(Barotrauma.Level.InterestingPosition[])
+_G['MonsterEvent'].GetAvailableSpawnPositions = function() end
+
+---`Method Private Instance`
+---@param affectSubImmediately System.Boolean
+_G['MonsterEvent'].FindSpawnPosition = function(affectSubImmediately) end
+
+---`Method Private Instance`
+---@param submarine Barotrauma.Submarine
+---@return System.Single
+_G['MonsterEvent'].GetMinDistanceToSub = function(submarine) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['MonsterEvent'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MonsterEvent
+_G['MonsterEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MonsterEvent
+_G['MonsterEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/server/_00007FFD96866258.lua b/Meta/Types/server/_00007FFD96866258.lua
new file mode 100644
index 0000000..8f2a0f8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96866258.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.ScriptedEvent : Barotrauma.Event
+---`Field Private Instance`
+---@field targetPredicates (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*ScriptedEvent*TargetPredicate)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*ScriptedEvent*TargetPredicate)|(Barotrauma.ScriptedEvent.TargetPredicate[]))})
+---`Field Private Instance`
+---@field cachedTargets (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Entity)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[]))})
+---`Field Private Instance`
+---@field initialAmounts (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32)|({[Barotrauma.Identifier]:(System.Int32)})
+---`Field Private Instance`
+---@field newEntitySpawned System.Boolean
+---`Field Private Instance`
+---@field prevPlayerCount System.Int32
+---`Field Private Instance`
+---@field prevBotCount System.Int32
+---`Field Private Instance`
+---@field prevControlled Barotrauma.Character
+---`Field Public Instance`
+---@field OnRoundEndAction Barotrauma.OnRoundEndAction
+---`Field Private Instance`
+---@field requiredDestinationTypes (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequireBeaconStation System.Boolean
+---`Field Public Instance`
+---@field RequiredDestinationFaction Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentActionIndex System.Int32
+---`Getter Public Instance`
+---@field Actions (System.Collections.Generic.List*1Barotrauma*EventAction)|(Barotrauma.EventAction[])
+---`Getter Public Instance`
+---@field Targets (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Entity)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[]))})
+---`Getter NonPublic Instance Virtual`
+---@field NonActionChildElementNames (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['ScriptedEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ScriptedEvent'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ScriptedEvent'].GetDebugInfo = function() end
+
+---`Method Public Instance Virtual`
+---@param tag System.String
+---@return System.String
+_G['ScriptedEvent'].GetTextForReplacementElement = function(tag) end
+
+---`Method Public Instance Virtual`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['ScriptedEvent'].ReplaceVariablesInEventText = function(str) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*ValueTuple*2System*Int32*2Barotrauma*EventAction)|(System.ValueTuple*1System*Int32*1Barotrauma*EventAction[])
+_G['ScriptedEvent'].GetAllActions = function() end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param target Barotrauma.Entity
+_G['ScriptedEvent'].AddTarget = function(tag, target) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param entityType Barotrauma.ScriptedEvent.TargetPredicate.EntityType
+---@param predicate (System.Predicate*1Barotrauma*Entity)|(fun(obj:Barotrauma.Entity):(System.Boolean))
+_G['ScriptedEvent'].AddTargetPredicate = function(tag, entityType, predicate) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Int32
+_G['ScriptedEvent'].GetInitialTargetCount = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+_G['ScriptedEvent'].GetTargets = function(tag) end
+
+---`Method Public Instance`
+---@param originalEntity Barotrauma.Entity
+---@param newEntity Barotrauma.Entity
+_G['ScriptedEvent'].InheritTags = function(originalEntity, newEntity) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+_G['ScriptedEvent'].RemoveTag = function(tag) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['ScriptedEvent'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['ScriptedEvent'].NeedsToRefreshCachedTargets = function() end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+_G['ScriptedEvent'].EntitySpawned = function(entity) end
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['ScriptedEvent'].LevelMeetsRequirements = function() end
+
+---`Method Public Instance Virtual`
+_G['ScriptedEvent'].Finish = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ScriptedEvent
+_G['ScriptedEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.ScriptedEvent
+_G['ScriptedEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/server/_00007FFD968664B8.lua b/Meta/Types/server/_00007FFD968664B8.lua
new file mode 100644
index 0000000..4533696
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968664B8.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.MalfunctionEvent : Barotrauma.Event
+---`Field Private Instance`
+---@field targetItemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field targetItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field minItemAmount System.Int32
+---`Field Private Instance`
+---@field maxItemAmount System.Int32
+---`Field Private Instance`
+---@field decreaseConditionAmount System.Single
+---`Field Private Instance`
+---@field duration System.Single
+---`Field Private Instance`
+---@field timer System.Single
+_G['MalfunctionEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['MalfunctionEvent'].ToString = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet Barotrauma.EventSet
+_G['MalfunctionEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['MalfunctionEvent'].Update = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MalfunctionEvent
+_G['MalfunctionEvent'] = function(prefab, seed) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param seed System.Int32
+---@return Barotrauma.MalfunctionEvent
+_G['MalfunctionEvent'].__new = function(prefab, seed) end
+
diff --git a/Meta/Types/server/_00007FFD96866850.lua b/Meta/Types/server/_00007FFD96866850.lua
new file mode 100644
index 0000000..1ae9782
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96866850.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.EntitySpawner : Barotrauma.Entity
+---`Field Private Instance`
+---@field spawnOrRemoveQueue (System.Collections.Generic.Queue*1Barotrauma*Either*2Barotrauma*EntitySpawner*IEntitySpawnInfo*2Barotrauma*Entity)|(fun():(Barotrauma.Either*1Barotrauma*EntitySpawner*IEntitySpawnInfo*1Barotrauma*Entity))
+_G['EntitySpawner'] = {}
+
+---`Method Public Instance`
+---@param spawnOrRemove Barotrauma.EntitySpawner.SpawnOrRemove
+_G['EntitySpawner'].CreateNetworkEvent = function(spawnOrRemove) end
+
+---`Method Public Instance Virtual`
+---@param message Barotrauma.Networking.IWriteMessage
+---@param client Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['EntitySpawner'].ServerEventWrite = function(message, client, extraData) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['EntitySpawner'].ToString = function() end
+
+---`Method Public Instance`
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, worldPosition:Microsoft.Xna.Framework.Vector2, condition?:System.Nullable*1System*Single, quality?:System.Nullable*1System*Int32, onSpawned?:(System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item)))
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, sub:Barotrauma.Submarine, condition?:System.Nullable*1System*Single, quality?:System.Nullable*1System*Int32, onSpawned?:(System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item)))
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param inventory Barotrauma.Inventory
+---@param condition? System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@param onSpawned? (System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item))
+---@param spawnIfInventoryFull? System.Boolean
+---@param ignoreLimbSlots? System.Boolean
+---@param slot? Barotrauma.InvSlotType
+_G['EntitySpawner'].AddItemToSpawnQueue = function(itemPrefab, inventory, condition, quality, onSpawned, spawnIfInventoryFull, ignoreLimbSlots, slot) end
+
+---`Method Public Instance`
+---@overload fun(speciesName:Barotrauma.Identifier, worldPosition:Microsoft.Xna.Framework.Vector2, onSpawn?:(System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character)))
+---@overload fun(speciesName:Barotrauma.Identifier, position:Microsoft.Xna.Framework.Vector2, sub:Barotrauma.Submarine, onSpawn?:(System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character)))
+---@param speciesName Barotrauma.Identifier
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param characterInfo Barotrauma.CharacterInfo
+---@param onSpawn? (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+_G['EntitySpawner'].AddCharacterToSpawnQueue = function(speciesName, worldPosition, characterInfo, onSpawn) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+_G['EntitySpawner'].AddEntityToRemoveQueue = function(entity) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['EntitySpawner'].AddItemToRemoveQueue = function(item) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EntitySpawner*IEntitySpawnInfo)|(fun(obj:Barotrauma.EntitySpawner.IEntitySpawnInfo):(System.Boolean))
+---@return System.Boolean
+_G['EntitySpawner'].IsInSpawnQueue = function(predicate) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EntitySpawner*IEntitySpawnInfo)|(fun(obj:Barotrauma.EntitySpawner.IEntitySpawnInfo):(System.Boolean))
+---@return System.Int32
+_G['EntitySpawner'].CountSpawnQueue = function(predicate) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['EntitySpawner'].IsInRemoveQueue = function(entity) end
+
+---`Method Public Instance`
+---@param createNetworkEvents? System.Boolean
+_G['EntitySpawner'].Update = function(createNetworkEvents) end
+
+---`Method Private Instance`
+---@param spawnOrRemove Barotrauma.EntitySpawner.SpawnOrRemove
+_G['EntitySpawner'].CreateNetworkEventProjSpecific = function(spawnOrRemove) end
+
+---`Method Public Instance`
+_G['EntitySpawner'].Reset = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EntitySpawner
+_G['EntitySpawner'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.EntitySpawner
+_G['EntitySpawner'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96866B40.lua b/Meta/Types/server/_00007FFD96866B40.lua
new file mode 100644
index 0000000..38fdb39
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96866B40.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.EntityGrid : System.Object
+---`Field Private Instance`
+---@field allEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Instance`
+---@field entities (System.Collections.Generic.List)|((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])[])
+---`Field Private Instance`
+---@field limits Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field cellSize System.Single
+---`Field Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---@field WorldRect Microsoft.Xna.Framework.Rectangle
+_G['EntityGrid'] = {}
+
+---`Method Private Instance`
+_G['EntityGrid'].InitializeGrid = function() end
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+_G['EntityGrid'].InsertEntity = function(entity) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+_G['EntityGrid'].RemoveEntity = function(entity) end
+
+---`Method Public Instance`
+_G['EntityGrid'].Clear = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['EntityGrid'].GetAllEntities = function() end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+_G['EntityGrid'].GetEntities = function(position) end
+
+---`Method Public Instance`
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle):(Microsoft.Xna.Framework.Rectangle)
+---@param position Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Point
+_G['EntityGrid'].GetIndices = function(position) end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, cellSize:System.Single):Barotrauma.EntityGrid
+---@param worldRect Microsoft.Xna.Framework.Rectangle
+---@param cellSize System.Single
+---@return Barotrauma.EntityGrid
+_G['EntityGrid'] = function(worldRect, cellSize) end
+
+---`Constructor Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, cellSize:System.Single):Barotrauma.EntityGrid
+---@param worldRect Microsoft.Xna.Framework.Rectangle
+---@param cellSize System.Single
+---@return Barotrauma.EntityGrid
+_G['EntityGrid'].__new = function(worldRect, cellSize) end
+
diff --git a/Meta/Types/server/_00007FFD96867100.lua b/Meta/Types/server/_00007FFD96867100.lua
new file mode 100644
index 0000000..731cb6c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96867100.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.CoreEntityPrefab : Barotrauma.MapEntityPrefab
+---`Field Private Instance`
+---@field constructor System.Reflection.ConstructorInfo
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CoreEntityPrefab)|(fun():(Barotrauma.CoreEntityPrefab))
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field HullPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GapPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field WayPointPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SpawnPointPrefab Barotrauma.CoreEntityPrefab
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance Virtual`
+---@field OriginalName System.String
+---`Getter Public Instance Virtual`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance Virtual`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field AllowedLinks (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Category Barotrauma.MapEntityCategory
+---`Getter Public Instance Virtual`
+---@field Aliases (System.Collections.Immutable.ImmutableHashSet*1System*String)|(System.String[])
+_G['CoreEntityPrefab'] = {}
+
+---`Method Public Static`
+_G['CoreEntityPrefab'].InitCorePrefabs = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param rect Microsoft.Xna.Framework.Rectangle
+_G['CoreEntityPrefab'].CreateInstance = function(rect) end
+
+---`Method Public Instance Virtual`
+_G['CoreEntityPrefab'].Dispose = function() end
+
+---`Constructor Private Instance`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'] = function() end
+
+---`Constructor Private Instance`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(identifier:Barotrauma.Identifier, constructor:System.Reflection.ConstructorInfo, resizeHorizontal?:System.Boolean, resizeVertical?:System.Boolean, linkable?:System.Boolean, allowedLinks?:(System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier)), aliases?:(System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))):Barotrauma.CoreEntityPrefab
+---@return Barotrauma.CoreEntityPrefab
+_G['CoreEntityPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96867C30.lua b/Meta/Types/server/_00007FFD96867C30.lua
new file mode 100644
index 0000000..34b63ca
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96867C30.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab}, {[System.String]:Barotrauma.ItemPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*ItemPrefab*1System*Boolean)|(fun(arg1:Barotrauma.ItemPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*ItemPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*ItemPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.ItemPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.ItemPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.ItemPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab):(System.Boolean))
+---@return Barotrauma.ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*ItemPrefab*1System*Boolean)|(fun(arg1:Barotrauma.ItemPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*ItemPrefab*1System*Boolean)|(fun(arg1:Barotrauma.ItemPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*ItemPrefab)|(fun(obj:Barotrauma.ItemPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*ItemPrefab
+_G['PrefabCollection*1Barotrauma*ItemPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD96868368.lua b/Meta/Types/server/_00007FFD96868368.lua
new file mode 100644
index 0000000..7872af6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96868368.lua
@@ -0,0 +1,101 @@
+---@meta
+---@class Barotrauma.JobPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field JobItems (System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*JobPrefab*JobItem)|({[System.Int32]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem)|(Barotrauma.JobPrefab.JobItem[]))})
+---`Field Public Instance`
+---@field Skills (System.Collections.Generic.List*1Barotrauma*SkillPrefab)|(Barotrauma.SkillPrefab[])
+---`Field Public Instance`
+---@field AutonomousObjectives (System.Collections.Generic.List*1Barotrauma*AutonomousObjective)|(Barotrauma.AutonomousObjective[])
+---`Field Public Instance`
+---@field AppropriateOrders (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field IconSmall Barotrauma.Sprite
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*JobPrefab)|(fun():(Barotrauma.JobPrefab))
+---`Field Private Static`
+---@field _itemRepairPriorities (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Getter Public Static`
+---@field ItemRepairPriorities (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UIColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdleBehavior Barotrauma.AIObjectiveIdle.BehaviorType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OnlyJobSpecificDialog System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InitialCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAlways System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxNumber System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinNumber System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinKarma System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PriceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VitalityModifier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HiddenJob System.Boolean
+---`Getter Public Instance`
+---@field PrimarySkill Barotrauma.SkillPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Element Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Variants System.Int32
+_G['JobPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['JobPrefab'].Dispose = function() end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].Get = function(identifier) end
+
+---`Method Public Static`
+---@param sync Barotrauma.Rand.RandSync
+---@param predicate? (System.Func*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg:Barotrauma.JobPrefab):(System.Boolean))
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].Random = function(sync, predicate) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.JobsFile):Barotrauma.JobPrefab
+---@return Barotrauma.JobPrefab
+_G['JobPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96868408.lua b/Meta/Types/server/_00007FFD96868408.lua
new file mode 100644
index 0000000..9cde5bc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96868408.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*JobPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.JobPrefab}, {[System.String]:Barotrauma.JobPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg1:Barotrauma.JobPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*JobPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*JobPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.JobPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.JobPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*JobPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.JobPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.JobPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.JobPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab):(System.Boolean))
+---@return Barotrauma.JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*JobPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*JobPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*JobPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*JobPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*JobPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg1:Barotrauma.JobPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*JobPrefab*1System*Boolean)|(fun(arg1:Barotrauma.JobPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*JobPrefab)|(fun(obj:Barotrauma.JobPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*JobPrefab
+_G['PrefabCollection*1Barotrauma*JobPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD96868998.lua b/Meta/Types/server/_00007FFD96868998.lua
new file mode 100644
index 0000000..3396c5a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96868998.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.CharacterPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field originalElement Barotrauma.ContentXElement
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab)|(fun():(Barotrauma.CharacterPrefab))
+---`Field Public Static`
+---@field HumanSpeciesName Barotrauma.Identifier
+---`Field Public Static`
+---@field HumanGroup Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field VariantOf Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ParentPrefab Barotrauma.CharacterPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasCharacterInfo System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Group Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConfigElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CharacterInfoPrefab Barotrauma.CharacterInfoPrefab
+---`Getter Public Static`
+---@field ConfigElements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---`Getter Public Static`
+---@field HumanConfigFile Barotrauma.CharacterFile
+---`Getter Public Static`
+---@field HumanPrefab Barotrauma.CharacterPrefab
+_G['CharacterPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['CharacterPrefab'].Dispose = function() end
+
+---`Method Public Instance`
+---@param speciesName Barotrauma.Identifier
+---@return Barotrauma.Identifier
+_G['CharacterPrefab'].GetBaseCharacterSpeciesName = function(speciesName) end
+
+---`Method Public Instance`
+---@param speciesNameOrGroup Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterPrefab'].MatchesSpeciesNameOrGroup = function(speciesNameOrGroup) end
+
+---`Method Public Instance Virtual`
+---@param parent Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].InheritFrom = function(parent) end
+
+---`Method Private Instance`
+_G['CharacterPrefab'].ParseConfigElement = function() end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].FindBySpeciesName = function(speciesName) end
+
+---`Method Public Static`
+---@param filePath System.String
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].FindByFilePath = function(filePath) end
+
+---`Method Public Static`
+---@param predicate (System.Predicate*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab):(System.Boolean))
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].Find = function(predicate) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@param file Barotrauma.CharacterFile
+---@return Barotrauma.Identifier
+_G['CharacterPrefab'].ParseName = function(element, file) end
+
+---`Method Public Static`
+---@param mainElement System.Xml.Linq.XElement
+---@param file Barotrauma.CharacterFile
+---@param name Barotrauma.Identifier-ref
+---@return System.Boolean
+_G['CharacterPrefab'].CheckSpeciesName = function(mainElement, file, name) end
+
+---`Constructor Public Instance`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(mainElement:Barotrauma.ContentXElement, file:Barotrauma.CharacterFile):Barotrauma.CharacterPrefab
+---@return Barotrauma.CharacterPrefab
+_G['CharacterPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96868AE8.lua b/Meta/Types/server/_00007FFD96868AE8.lua
new file mode 100644
index 0000000..9355c4d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96868AE8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.CharacterPrefab}, {[System.String]:Barotrauma.CharacterPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*CharacterPrefab*1System*Boolean)|(fun(arg1:Barotrauma.CharacterPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*CharacterPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.CharacterPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.CharacterPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.CharacterPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.CharacterPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab):(System.Boolean))
+---@return Barotrauma.CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*CharacterPrefab*1System*Boolean)|(fun(arg1:Barotrauma.CharacterPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*CharacterPrefab*1System*Boolean)|(fun(arg1:Barotrauma.CharacterPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*CharacterPrefab)|(fun(obj:Barotrauma.CharacterPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*CharacterPrefab
+_G['PrefabCollection*1Barotrauma*CharacterPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD96868D20.lua b/Meta/Types/server/_00007FFD96868D20.lua
new file mode 100644
index 0000000..b7e0875
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96868D20.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.HumanPrefab}, {[System.String]:Barotrauma.HumanPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*HumanPrefab*1System*Boolean)|(fun(arg1:Barotrauma.HumanPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*HumanPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*HumanPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.HumanPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.HumanPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.HumanPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.HumanPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.HumanPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab):(System.Boolean))
+---@return Barotrauma.HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.HumanPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.HumanPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*HumanPrefab*1System*Boolean)|(fun(arg1:Barotrauma.HumanPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*HumanPrefab*1System*Boolean)|(fun(arg1:Barotrauma.HumanPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*HumanPrefab)|(fun(obj:Barotrauma.HumanPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*HumanPrefab
+_G['PrefabCollection*1Barotrauma*HumanPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD96869598.lua b/Meta/Types/server/_00007FFD96869598.lua
new file mode 100644
index 0000000..2112eea
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96869598.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.LimbType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftHand Barotrauma.LimbType
+---`Field Public Static`
+---@field RightHand Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftArm Barotrauma.LimbType
+---`Field Public Static`
+---@field RightArm Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftForearm Barotrauma.LimbType
+---`Field Public Static`
+---@field RightForearm Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftLeg Barotrauma.LimbType
+---`Field Public Static`
+---@field RightLeg Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftFoot Barotrauma.LimbType
+---`Field Public Static`
+---@field RightFoot Barotrauma.LimbType
+---`Field Public Static`
+---@field Head Barotrauma.LimbType
+---`Field Public Static`
+---@field Torso Barotrauma.LimbType
+---`Field Public Static`
+---@field Tail Barotrauma.LimbType
+---`Field Public Static`
+---@field Legs Barotrauma.LimbType
+---`Field Public Static`
+---@field RightThigh Barotrauma.LimbType
+---`Field Public Static`
+---@field LeftThigh Barotrauma.LimbType
+---`Field Public Static`
+---@field Waist Barotrauma.LimbType
+---`Field Public Static`
+---@field Jaw Barotrauma.LimbType
+_G['LimbType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96869750.lua b/Meta/Types/server/_00007FFD96869750.lua
new file mode 100644
index 0000000..ea5a8c5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96869750.lua
@@ -0,0 +1,215 @@
+---@meta
+---@class Barotrauma.AfflictionPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Private Instance`
+---@field configElement Barotrauma.ContentXElement
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field CauseOfDeathDescription Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SelfCauseOfDeathDescription Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field defaultDescription Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field Descriptions (System.Collections.Immutable.ImmutableList*1Barotrauma*AfflictionPrefab*Description)|(Barotrauma.AfflictionPrefab.Description[])
+---`Field Public Instance`
+---@field AfflictionType Barotrauma.Identifier
+---`Field Public Instance`
+---@field LimbSpecific System.Boolean
+---`Field Public Instance`
+---@field IndicatorLimb Barotrauma.LimbType
+---`Field Public Instance`
+---@field TranslationIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field IsBuff System.Boolean
+---`Field Public Instance`
+---@field AffectMachines System.Boolean
+---`Field Public Instance`
+---@field HealableInMedicalClinic System.Boolean
+---`Field Public Instance`
+---@field HealCostMultiplier System.Single
+---`Field Public Instance`
+---@field BaseHealCost System.Int32
+---`Field Public Instance`
+---@field ShowBarInHealthMenu System.Boolean
+---`Field Public Instance`
+---@field HideIconAfterDelay System.Boolean
+---`Field Public Instance`
+---@field ActivationThreshold System.Single
+---`Field Public Instance`
+---@field ShowIconThreshold System.Single
+---`Field Public Instance`
+---@field ShowIconToOthersThreshold System.Single
+---`Field Public Instance`
+---@field MaxStrength System.Single
+---`Field Public Instance`
+---@field GrainBurst System.Single
+---`Field Public Instance`
+---@field ShowInHealthScannerThreshold System.Single
+---`Field Public Instance`
+---@field TreatmentThreshold System.Single
+---`Field Public Instance`
+---@field IgnoreTreatmentIfAfflictedBy (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Duration System.Single
+---`Field Public Instance`
+---@field KarmaChangeOnApplied System.Single
+---`Field Public Instance`
+---@field BurnOverlayAlpha System.Single
+---`Field Public Instance`
+---@field DamageOverlayAlpha System.Single
+---`Field Public Instance`
+---@field AchievementOnReceived Barotrauma.Identifier
+---`Field Public Instance`
+---@field AchievementOnRemoved Barotrauma.Identifier
+---`Field Public Instance`
+---@field IconColors (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Public Instance`
+---@field AfflictionOverlayAlphaIsLinear System.Boolean
+---`Field Public Instance`
+---@field ResetBetweenRounds System.Boolean
+---`Field Public Instance`
+---@field DamageParticles System.Boolean
+---`Field Public Instance`
+---@field MedicalSkillGain System.Single
+---`Field Public Instance`
+---@field WeaponsSkillGain System.Single
+---`Field Private Instance`
+---@field effects (System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*Effect)|(Barotrauma.AfflictionPrefab.Effect[])
+---`Field Private Instance`
+---@field periodicEffects (System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*PeriodicEffect)|(Barotrauma.AfflictionPrefab.PeriodicEffect[])
+---`Field Private Instance`
+---@field constructor System.Reflection.ConstructorInfo
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field AfflictionOverlay Barotrauma.Sprite
+---`Field Public Static`
+---@field DamageType Barotrauma.Identifier
+---`Field Public Static`
+---@field BurnType Barotrauma.Identifier
+---`Field Public Static`
+---@field BleedingType Barotrauma.Identifier
+---`Field Public Static`
+---@field ParalysisType Barotrauma.Identifier
+---`Field Public Static`
+---@field PoisonType Barotrauma.Identifier
+---`Field Public Static`
+---@field StunType Barotrauma.Identifier
+---`Field Public Static`
+---@field EMPType Barotrauma.Identifier
+---`Field Public Static`
+---@field SpaceHerpesType Barotrauma.Identifier
+---`Field Public Static`
+---@field AlienInfectedType Barotrauma.Identifier
+---`Field Public Static`
+---@field InvertControlsType Barotrauma.Identifier
+---`Field Public Static`
+---@field DisguisedAsHuskType Barotrauma.Identifier
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab)|(fun():(Barotrauma.AfflictionPrefab))
+---`Getter Public Static`
+---@field InternalDamage Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field BiteWounds Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field ImpactDamage Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Bleeding Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Burn Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field OxygenLow Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Bloodloss Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Pressure Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field OrganDamage Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field Stun Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field RadiationSickness Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field HuskInfection Barotrauma.AfflictionPrefab
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab)|(fun():(Barotrauma.AfflictionPrefab))
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field TargetSpecies (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Effects (System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab*Effect)|(fun():(Barotrauma.AfflictionPrefab.Effect))
+---`Getter Public Instance`
+---@field PeriodicEffects (System.Collections.Generic.IList*1Barotrauma*AfflictionPrefab*PeriodicEffect)|(Barotrauma.AfflictionPrefab.PeriodicEffect[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TreatmentSuitabilities (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasTreatments System.Boolean
+_G['AfflictionPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['AfflictionPrefab'].Dispose = function() end
+
+---`Method Private Instance`
+_G['AfflictionPrefab'].RefreshTreatmentSuitabilities = function() end
+
+---`Method Public Instance`
+---@param strength System.Single
+---@param targetType Barotrauma.AfflictionPrefab.Description.TargetType
+---@return Barotrauma.LocalizedString
+_G['AfflictionPrefab'].GetDescription = function(strength, targetType) end
+
+---`Method Public Static`
+_G['AfflictionPrefab'].LoadAllEffectsAndTreatmentSuitabilities = function() end
+
+---`Method Public Static`
+_G['AfflictionPrefab'].ClearAllEffects = function() end
+
+---`Method Private Instance`
+_G['AfflictionPrefab'].LoadEffects = function() end
+
+---`Method Private Instance`
+_G['AfflictionPrefab'].ClearEffects = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['AfflictionPrefab'].ToString = function() end
+
+---`Method Public Instance`
+---@param strength System.Single
+---@param source? Barotrauma.Character
+---@return Barotrauma.Affliction
+_G['AfflictionPrefab'].Instantiate = function(strength, source) end
+
+---`Method Public Instance`
+---@param currentStrength System.Single
+---@return Barotrauma.AfflictionPrefab.Effect
+_G['AfflictionPrefab'].GetActiveEffect = function(currentStrength) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Single
+_G['AfflictionPrefab'].GetTreatmentSuitability = function(item) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.AfflictionsFile, type:System.Type):Barotrauma.AfflictionPrefab
+---@return Barotrauma.AfflictionPrefab
+_G['AfflictionPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968697F0.lua b/Meta/Types/server/_00007FFD968697F0.lua
new file mode 100644
index 0000000..7528e12
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968697F0.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.AfflictionPrefab}, {[System.String]:Barotrauma.AfflictionPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg1:Barotrauma.AfflictionPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*AfflictionPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.AfflictionPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.AfflictionPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.AfflictionPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.AfflictionPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab):(System.Boolean))
+---@return Barotrauma.AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg1:Barotrauma.AfflictionPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg1:Barotrauma.AfflictionPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*AfflictionPrefab)|(fun(obj:Barotrauma.AfflictionPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*AfflictionPrefab
+_G['PrefabCollection*1Barotrauma*AfflictionPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD96869A28.lua b/Meta/Types/server/_00007FFD96869A28.lua
new file mode 100644
index 0000000..6d4f31a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96869A28.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.TalentPrefab}, {[System.String]:Barotrauma.TalentPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*TalentPrefab*1System*Boolean)|(fun(arg1:Barotrauma.TalentPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.TalentPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.TalentPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.TalentPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.TalentPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.TalentPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab):(System.Boolean))
+---@return Barotrauma.TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentPrefab*1System*Boolean)|(fun(arg1:Barotrauma.TalentPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentPrefab*1System*Boolean)|(fun(arg1:Barotrauma.TalentPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentPrefab)|(fun(obj:Barotrauma.TalentPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentPrefab
+_G['PrefabCollection*1Barotrauma*TalentPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD96869C60.lua b/Meta/Types/server/_00007FFD96869C60.lua
new file mode 100644
index 0000000..f715616
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96869C60.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*TalentTree : System.Object, {[Barotrauma.Identifier]:Barotrauma.TalentTree}, {[System.String]:Barotrauma.TalentTree}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*TalentTree*1System*Boolean)|(fun(arg1:Barotrauma.TalentTree, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentTree)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentTree'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.TalentTree
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.TalentTree
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*TalentTree'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.TalentTree-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.TalentTree-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.TalentTree-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree):(System.Boolean))
+---@return Barotrauma.TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentTree
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentTree
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*TalentTree'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentTree'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentTree'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*TalentTree'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*TalentTree'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentTree*1System*Boolean)|(fun(arg1:Barotrauma.TalentTree, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@overload fun(onAdd:(System.Action*1Barotrauma*TalentTree*1System*Boolean)|(fun(arg1:Barotrauma.TalentTree, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*TalentTree)|(fun(obj:Barotrauma.TalentTree)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*TalentTree
+_G['PrefabCollection*1Barotrauma*TalentTree'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD9686A460.lua b/Meta/Types/server/_00007FFD9686A460.lua
new file mode 100644
index 0000000..f6e0cb5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686A460.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.OrderCategory : System.Enum
+---`Field Public Static`
+---@field Emergency Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Movement Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Power Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Maintenance Barotrauma.OrderCategory
+---`Field Public Static`
+---@field Operate Barotrauma.OrderCategory
+_G['OrderCategory'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9686A9B8.lua b/Meta/Types/server/_00007FFD9686A9B8.lua
new file mode 100644
index 0000000..6541ba8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686A9B8.lua
@@ -0,0 +1,202 @@
+---@meta
+---@class Barotrauma.OrderPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Category System.Nullable*1Barotrauma*OrderCategory
+---`Field Public Instance`
+---@field CategoryIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field ContextualName Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SymbolSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field ItemComponentType System.Type
+---`Field Public Instance`
+---@field CanTypeBeSubclass System.Boolean
+---`Field Public Instance`
+---@field TargetItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequireItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field OptionTargetItems (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[]))})
+---`Field Private Instance`
+---@field color System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Public Instance`
+---@field TargetAllCharacters System.Boolean
+---`Field Public Instance`
+---@field TraitorModeOnly System.Boolean
+---`Field Public Instance`
+---@field FadeOutTime System.Single
+---`Field Public Instance`
+---@field UseController System.Boolean
+---`Field Public Instance`
+---@field ControllerTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field AppropriateJobs (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Options (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field HiddenOptions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field AllOptions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field OptionNames (Barotrauma.ListDictionary*1Barotrauma*Identifier*1Barotrauma*LocalizedString)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*LocalizedString))
+---`Field Public Instance`
+---@field OptionSprites (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*Sprite)|({[Barotrauma.Identifier]:(Barotrauma.Sprite)})
+---`Field Public Instance`
+---@field MustSetTarget System.Boolean
+---`Field Public Instance`
+---@field CanBeGeneralized System.Boolean
+---`Field Public Instance`
+---@field AppropriateSkill Barotrauma.Identifier
+---`Field Public Instance`
+---@field Hidden System.Boolean
+---`Field Public Instance`
+---@field IgnoreAtOutpost System.Boolean
+---`Field Public Instance`
+---@field MustManuallyAssign System.Boolean
+---`Field Public Instance`
+---@field AutoDismiss System.Boolean
+---`Field Public Instance`
+---@field PreferredJobs (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab)|(fun():(Barotrauma.OrderPrefab))
+---`Field Public Static`
+---@field DismissalIdentifier Barotrauma.Identifier
+---`Getter Public Static`
+---@field Dismissal Barotrauma.OrderPrefab
+---`Getter Public Instance`
+---@field HasOptionSpecificTargetItems System.Boolean
+---`Getter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field IsReport System.Boolean
+---`Getter Public Instance`
+---@field IsVisibleAsReportButton System.Boolean
+---`Getter Public Instance`
+---@field IsDismissal System.Boolean
+---`Getter Public Instance`
+---@field HasOptions System.Boolean
+---`Getter Public Instance`
+---@field TargetType Barotrauma.OrderPrefab.OrderTargetType
+---`Getter Public Instance`
+---@field WallSectionIndex System.Nullable*1System*Int32
+---`Getter Public Instance`
+---@field IsIgnoreOrder System.Boolean
+---`Getter Public Instance`
+---@field IsDeconstructOrder System.Boolean
+---`Getter Public Instance`
+---@field DrawIconWhenContained System.Boolean
+---`Getter Public Instance`
+---@field AssignmentPriority System.Int32
+---`Getter Public Instance`
+---@field ColoredWhenControllingGiver System.Boolean
+---`Getter Public Instance`
+---@field DisplayGiverInTooltip System.Boolean
+_G['OrderPrefab'] = {}
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param jobs (System.Collections.Generic.IReadOnlyList*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@return System.Boolean
+_G['OrderPrefab'].HasSpecifiedJob = function(character, jobs) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['OrderPrefab'].HasAppropriateJob = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['OrderPrefab'].HasPreferredJob = function(character) end
+
+---`Method Public Instance`
+---@param targetCharacterName System.String
+---@param targetRoomName System.String
+---@param targetEntity Barotrauma.Entity
+---@param givingOrderToSelf System.Boolean
+---@param orderOption? Barotrauma.Identifier
+---@param isNewOrder? System.Boolean
+---@return System.String
+_G['OrderPrefab'].GetChatMessage = function(targetCharacterName, targetRoomName, targetEntity, givingOrderToSelf, orderOption, isNewOrder) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.ItemComponent
+_G['OrderPrefab'].GetTargetItemComponent = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param firstMatchingComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return System.Boolean
+_G['OrderPrefab'].TryGetTargetItemComponent = function(item, firstMatchingComponent) end
+
+---`Method Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, mustBelongToPlayerSub:System.Boolean, requiredTeam?:System.Nullable*1Barotrauma*CharacterTeamType, interactableFor?:Barotrauma.Character, orderOption?:Barotrauma.Identifier):((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))
+---@param mustBelongToPlayerSub System.Boolean
+---@param interactableFor? Barotrauma.Character
+---@param orderOption? Barotrauma.Identifier
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['OrderPrefab'].GetMatchingItems = function(mustBelongToPlayerSub, interactableFor, orderOption) end
+
+---`Method Public Instance`
+---@overload fun(id:System.String):(Barotrauma.LocalizedString)
+---@overload fun(id:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@param index System.Int32
+---@return Barotrauma.LocalizedString
+_G['OrderPrefab'].GetOptionName = function(index) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@return Barotrauma.Identifier
+_G['OrderPrefab'].GetDismissOrderOption = function(order) end
+
+---`Method Public Instance`
+---@param option? Barotrauma.Identifier
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['OrderPrefab'].GetTargetItems = function(option) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param option? Barotrauma.Identifier
+---@return System.Boolean
+_G['OrderPrefab'].TargetItemsMatchItem = function(item, option) end
+
+---`Method Public Static`
+---@param targetItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['OrderPrefab'].TargetItemsMatchItem = function(targetItems, item) end
+
+---`Method Public Instance Virtual`
+_G['OrderPrefab'].Dispose = function() end
+
+---`Method Public Instance`
+---@param targetType Barotrauma.OrderPrefab.OrderTargetType
+---@param orderGiver? Barotrauma.Character
+---@param isAutonomous? System.Boolean
+---@return Barotrauma.Order
+_G['OrderPrefab'].CreateInstance = function(targetType, orderGiver, isAutonomous) end
+
+---`Constructor Public Instance`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(orderElement:Barotrauma.ContentXElement, file:Barotrauma.OrdersFile):Barotrauma.OrderPrefab
+---@return Barotrauma.OrderPrefab
+_G['OrderPrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9686AA58.lua b/Meta/Types/server/_00007FFD9686AA58.lua
new file mode 100644
index 0000000..b7f2a83
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686AA58.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.OrderPrefab}, {[System.String]:Barotrauma.OrderPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*OrderPrefab*1System*Boolean)|(fun(arg1:Barotrauma.OrderPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*OrderPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*OrderPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.OrderPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.OrderPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.OrderPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.OrderPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.OrderPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab):(System.Boolean))
+---@return Barotrauma.OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.OrderPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.OrderPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*OrderPrefab*1System*Boolean)|(fun(arg1:Barotrauma.OrderPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*OrderPrefab*1System*Boolean)|(fun(arg1:Barotrauma.OrderPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*OrderPrefab)|(fun(obj:Barotrauma.OrderPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*OrderPrefab
+_G['PrefabCollection*1Barotrauma*OrderPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD9686AC90.lua b/Meta/Types/server/_00007FFD9686AC90.lua
new file mode 100644
index 0000000..66b0b90
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686AC90.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.LevelGenerationParams}, {[System.String]:Barotrauma.LevelGenerationParams}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean)|(fun(arg1:Barotrauma.LevelGenerationParams, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LevelGenerationParams)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.LevelGenerationParams
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.LevelGenerationParams-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.LevelGenerationParams-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.LevelGenerationParams-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams):(System.Boolean))
+---@return Barotrauma.LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@overload fun(onAdd:(System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean)|(fun(arg1:Barotrauma.LevelGenerationParams, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@overload fun(onAdd:(System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean)|(fun(arg1:Barotrauma.LevelGenerationParams, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LevelGenerationParams)|(fun(obj:Barotrauma.LevelGenerationParams)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LevelGenerationParams
+_G['PrefabCollection*1Barotrauma*LevelGenerationParams'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD9686AEC8.lua b/Meta/Types/server/_00007FFD9686AEC8.lua
new file mode 100644
index 0000000..3f2eab9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686AEC8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*LocationType : System.Object, {[Barotrauma.Identifier]:Barotrauma.LocationType}, {[System.String]:Barotrauma.LocationType}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*LocationType*1System*Boolean)|(fun(arg1:Barotrauma.LocationType, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LocationType)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LocationType'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.LocationType
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.LocationType
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*LocationType'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.LocationType-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.LocationType-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.LocationType-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType):(System.Boolean))
+---@return Barotrauma.LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LocationType
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LocationType
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*LocationType'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LocationType'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LocationType'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*LocationType'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*LocationType'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@overload fun(onAdd:(System.Action*1Barotrauma*LocationType*1System*Boolean)|(fun(arg1:Barotrauma.LocationType, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@overload fun(onAdd:(System.Action*1Barotrauma*LocationType*1System*Boolean)|(fun(arg1:Barotrauma.LocationType, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*LocationType)|(fun(obj:Barotrauma.LocationType)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*LocationType
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*LocationType
+_G['PrefabCollection*1Barotrauma*LocationType'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD9686B100.lua b/Meta/Types/server/_00007FFD9686B100.lua
new file mode 100644
index 0000000..9fb3e32
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686B100.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*EventPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.EventPrefab}, {[System.String]:Barotrauma.EventPrefab}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*EventPrefab*1System*Boolean)|(fun(arg1:Barotrauma.EventPrefab, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventPrefab)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventPrefab'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.EventPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.EventPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventPrefab'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.EventPrefab-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.EventPrefab-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.EventPrefab-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab):(System.Boolean))
+---@return Barotrauma.EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventPrefab
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*EventPrefab'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventPrefab'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventPrefab'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventPrefab'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*EventPrefab'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventPrefab*1System*Boolean)|(fun(arg1:Barotrauma.EventPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventPrefab*1System*Boolean)|(fun(arg1:Barotrauma.EventPrefab, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventPrefab)|(fun(obj:Barotrauma.EventPrefab)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventPrefab
+_G['PrefabCollection*1Barotrauma*EventPrefab'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD9686B338.lua b/Meta/Types/server/_00007FFD9686B338.lua
new file mode 100644
index 0000000..907e7b4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686B338.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*EventSet : System.Object, {[Barotrauma.Identifier]:Barotrauma.EventSet}, {[System.String]:Barotrauma.EventSet}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*EventSet*1System*Boolean)|(fun(arg1:Barotrauma.EventSet, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventSet)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventSet'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.EventSet
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.EventSet
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventSet'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.EventSet-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.EventSet-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.EventSet-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet):(System.Boolean))
+---@return Barotrauma.EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventSet
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventSet
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*EventSet'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventSet'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventSet'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventSet'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*EventSet'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventSet*1System*Boolean)|(fun(arg1:Barotrauma.EventSet, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventSet*1System*Boolean)|(fun(arg1:Barotrauma.EventSet, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventSet)|(fun(obj:Barotrauma.EventSet)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventSet
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventSet
+_G['PrefabCollection*1Barotrauma*EventSet'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD9686B4F0.lua b/Meta/Types/server/_00007FFD9686B4F0.lua
new file mode 100644
index 0000000..e5ae45d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686B4F0.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings : System.Object, {[Barotrauma.Identifier]:Barotrauma.EventManagerSettings}, {[System.String]:Barotrauma.EventManagerSettings}
+---`Field Private Instance`
+---@field OnAdd (System.Action*1Barotrauma*EventManagerSettings*1System*Boolean)|(fun(arg1:Barotrauma.EventManagerSettings, arg2:System.Boolean))
+---`Field Private Instance`
+---@field OnRemove (System.Action*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings))
+---`Field Private Instance`
+---@field OnSort (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnAddOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field OnRemoveOverrideFile (System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))
+---`Field Private Instance`
+---@field prefabs (System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings))
+---`Field Private Instance`
+---@field overrideFiles (System.Collections.Generic.HashSet*1Barotrauma*ContentFile)|(Barotrauma.ContentFile[])
+---`Field Private Instance`
+---@field topMostOverrideFile Barotrauma.ContentFile
+---`Field Private Instance`
+---@field implementsVariants System.Boolean
+---`Getter Public Instance`
+---@field AllPrefabs (System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventManagerSettings)|(fun():(System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings))
+---`Getter Public Instance`
+---@field Keys (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'] = {}
+
+---`Method Private Instance`
+---@param prefab Barotrauma.EventManagerSettings
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].IsPrefabOverriddenByFile = function(prefab) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.EventManagerSettings
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].IsInheritanceValid = function(prefab) end
+
+---`Method Private Instance`
+---@overload fun(prefabIdentifier:Barotrauma.Identifier)
+---@param identifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].HandleInheritance = function(identifiers) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier, result:Barotrauma.EventManagerSettings-ref):(System.Boolean)
+---@param identifier System.String
+---@param result Barotrauma.EventManagerSettings-ref
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].TryGet = function(identifier, result) end
+
+---`Method Private Instance`
+---@param identifier Barotrauma.Identifier
+---@param result Barotrauma.EventManagerSettings-ref
+---@param requireInheritanceValid System.Boolean
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].TryGet = function(identifier, result, requireInheritanceValid) end
+
+---`Method Public Instance`
+---@param predicate (System.Predicate*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings):(System.Boolean))
+---@return Barotrauma.EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].Find = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(identifier:Barotrauma.Identifier):(System.Boolean)
+---@param k System.String
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].ContainsKey = function(k) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventManagerSettings
+---@return System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].IsOverride = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventManagerSettings
+---@param isOverride System.Boolean
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].RemoveByFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].AddOverrideFile = function(file) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].RemoveOverrideFile = function(file) end
+
+---`Method Public Instance`
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].SortAll = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].GetEnumerator = function() end
+
+---`Method Private Instance`
+---@param requireInheritanceValid System.Boolean
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].GetEnumerator = function(requireInheritanceValid) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventManagerSettings*1System*Boolean)|(fun(arg1:Barotrauma.EventManagerSettings, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'] = function(onSort) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@overload fun(onAdd:(System.Action*1Barotrauma*EventManagerSettings*1System*Boolean)|(fun(arg1:Barotrauma.EventManagerSettings, arg2:System.Boolean)), onRemove:(System.Action*1Barotrauma*EventManagerSettings)|(fun(obj:Barotrauma.EventManagerSettings)), onSort:(System.Action)|(fun()), onAddOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile)), onRemoveOverrideFile:(System.Action*1Barotrauma*ContentFile)|(fun(obj:Barotrauma.ContentFile))):Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+---@param onSort (System.Action)|(fun())
+---@return Barotrauma.PrefabCollection*1Barotrauma*EventManagerSettings
+_G['PrefabCollection*1Barotrauma*EventManagerSettings'].__new = function(onSort) end
+
diff --git a/Meta/Types/server/_00007FFD9686BEA8.lua b/Meta/Types/server/_00007FFD9686BEA8.lua
new file mode 100644
index 0000000..200c1a9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686BEA8.lua
@@ -0,0 +1,97 @@
+---@meta
+---@class Barotrauma.SkillSettings : Barotrauma.Prefab
+---`Field Private Instance`
+---@field skillIncreasePerRepair System.Single
+---`Field Private Instance`
+---@field skillIncreasePerSabotage System.Single
+---`Field Private Instance`
+---@field skillIncreasePerCprRevive System.Single
+---`Field Private Instance`
+---@field skillIncreasePerRepairedStructureDamage System.Single
+---`Field Private Instance`
+---@field skillIncreasePerSecondWhenSteering System.Single
+---`Field Private Instance`
+---@field skillIncreasePerFabricatorRequiredSkill System.Single
+---`Field Private Instance`
+---@field skillIncreasePerHostileDamage System.Single
+---`Field Private Instance`
+---@field skillIncreasePerSecondWhenOperatingTurret System.Single
+---`Field Private Instance`
+---@field skillIncreasePerFriendlyHealed System.Single
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabSelector*1Barotrauma*SkillSettings)|(fun():(Barotrauma.SkillSettings))
+---`Getter Public Static`
+---@field Current Barotrauma.SkillSettings
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SingleRoundSkillGainMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerRepair System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerSabotage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerCprRevive System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerRepairedStructureDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerSecondWhenSteering System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerFabricatorRequiredSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerHostileDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerSecondWhenOperatingTurret System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreasePerFriendlyHealed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AssistantSkillIncreaseMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumSkillWithTalents System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillIncreaseExponent System.Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['SkillSettings'] = {}
+
+---`Method Private Instance`
+---@return System.Single
+_G['SkillSettings'].GetCurrentSkillGainMultiplier = function() end
+
+---`Method Public Instance Virtual`
+_G['SkillSettings'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:System.Xml.Linq.XElement, file:Barotrauma.SkillSettingsFile):Barotrauma.SkillSettings
+---@return Barotrauma.SkillSettings
+_G['SkillSettings'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9686C3F0.lua b/Meta/Types/server/_00007FFD9686C3F0.lua
new file mode 100644
index 0000000..a761199
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686C3F0.lua
@@ -0,0 +1,94 @@
+---@meta
+---@class Barotrauma.PrefabSelector*1Barotrauma*SkillSettings : System.Object
+---`Field Private Instance`
+---@field rwl System.Threading.ReaderWriterLockSlim
+---`Field Private Instance`
+---@field basePrefabInternal Barotrauma.SkillSettings
+---`Field Private Instance`
+---@field overrides (System.Collections.Generic.List*1Barotrauma*SkillSettings)|(Barotrauma.SkillSettings[])
+---`Getter Public Instance`
+---@field BasePrefab Barotrauma.SkillSettings
+---`Getter Public Instance`
+---@field ActivePrefab Barotrauma.SkillSettings
+---`Getter Public Instance`
+---@field IsEmpty System.Boolean
+---`Getter Private Instance`
+---@field activePrefabInternal Barotrauma.SkillSettings
+---`Getter Private Instance`
+---@field isEmptyInternal System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'] = {}
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+---@param isOverride System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Add = function(prefab, isOverride) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveIfContains = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Remove = function(prefab) end
+
+---`Method Public Instance`
+---@param file Barotrauma.ContentFile
+---@param callback? (System.Action*1Barotrauma*SkillSettings)|(fun(obj:Barotrauma.SkillSettings))
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveByFile = function(file, callback) end
+
+---`Method Public Instance`
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Sort = function() end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].Contains = function(prefab) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].IsOverride = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@param isOverride System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].AddInternal = function(prefab, isOverride) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveIfContainsInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].RemoveInternal = function(prefab) end
+
+---`Method Private Instance`
+_G['PrefabSelector*1Barotrauma*SkillSettings'].SortInternal = function() end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].ContainsInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Int32
+_G['PrefabSelector*1Barotrauma*SkillSettings'].IndexOfInternal = function(prefab) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.SkillSettings
+---@return System.Boolean
+_G['PrefabSelector*1Barotrauma*SkillSettings'].IsOverrideInternal = function(prefab) end
+
+---`Method Public Instance Virtual`
+---@return System.Collections.Generic.IEnumerator*1Barotrauma*SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].GetEnumerator = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PrefabSelector*1Barotrauma*SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.PrefabSelector*1Barotrauma*SkillSettings
+_G['PrefabSelector*1Barotrauma*SkillSettings'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9686C600.lua b/Meta/Types/server/_00007FFD9686C600.lua
new file mode 100644
index 0000000..74f0117
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9686C600.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.CharacterType : System.Enum
+---`Field Public Static`
+---@field Bot Barotrauma.CharacterType
+---`Field Public Static`
+---@field Player Barotrauma.CharacterType
+---`Field Public Static`
+---@field Both Barotrauma.CharacterType
+_G['CharacterType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD968F0400.lua b/Meta/Types/server/_00007FFD968F0400.lua
new file mode 100644
index 0000000..453998e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F0400.lua
@@ -0,0 +1,599 @@
+---@meta
+---@class Barotrauma.CharacterInfo : System.Object
+---`Field Private Instance`
+---@field prevSentSkill (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Public Instance`
+---@field Discarded System.Boolean
+---`Field Private Instance`
+---@field head Barotrauma.CharacterInfo.HeadInfo
+---`Field Private Instance`
+---@field maleIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field femaleIdentifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field InventoryData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field HealthData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field OrderData System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field PermanentlyDead System.Boolean
+---`Field Public Instance`
+---@field RenamingEnabled System.Boolean
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field Title Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field HumanPrefabIds System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier
+---`Field Public Instance`
+---@field Character Barotrauma.Character
+---`Field Public Instance`
+---@field Job Barotrauma.Job
+---`Field Public Instance`
+---@field Salary System.Int32
+---`Field Private Instance`
+---@field talentRefundPoints System.Int32
+---`Field Private Instance`
+---@field talentResetCount System.Int32
+---`Field Public Instance`
+---@field MinReputationToHire System.ValueTuple*1Barotrauma*Identifier*1System*Single
+---`Field Private Instance`
+---@field additionalTalentPoints System.Int32
+---`Field Private Instance`
+---@field _headSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field OmitJobInMenus System.Boolean
+---`Field Private Instance`
+---@field portrait Barotrauma.Sprite
+---`Field Public Instance`
+---@field IsDisguised System.Boolean
+---`Field Public Instance`
+---@field IsDisguisedAsAnother System.Boolean
+---`Field Private Instance`
+---@field attachmentSprites (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Public Instance`
+---@field StartItemsGiven System.Boolean
+---`Field Public Instance`
+---@field IsNewHire System.Boolean
+---`Field Public Instance`
+---@field CauseOfDeath Barotrauma.CauseOfDeath
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field ID System.UInt16
+---`Field Public Instance`
+---@field HasSpecifierTags System.Boolean
+---`Field Private Instance`
+---@field ragdoll Barotrauma.RagdollParams
+---`Field Public Instance`
+---@field HairColors (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single)|(System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single[])
+---`Field Public Instance`
+---@field FacialHairColors (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single)|(System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single[])
+---`Field Public Instance`
+---@field SkinColors (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single)|(System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single[])
+---`Field Public Instance`
+---@field MissionsCompletedSinceDeath System.Int32
+---`Field Public Instance`
+---@field LastRewardDistribution Barotrauma.Option*1System*Int32
+---`Field Private Instance`
+---@field hairs (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field beards (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field moustaches (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field faceAttachments (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field wearables (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---`Field Private Instance`
+---@field spriteTagsLoaded System.Boolean
+---`Field Public Instance`
+---@field SavedStatValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Collections*Generic*List*2Barotrauma*SavedStatValue)|({[Barotrauma.StatTypes]:((System.Collections.Generic.List*1Barotrauma*SavedStatValue)|(Barotrauma.SavedStatValue[]))})
+---`Field Public Instance`
+---@field LastResistanceMultiplierSkillLossDeath System.Single
+---`Field Public Instance`
+---@field LastResistanceMultiplierSkillLossRespawn System.Single
+---`Field Private Static`
+---@field idCounter System.UInt16
+---`Field Private Static`
+---@field skillGainStatValues (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*StatTypes)|({[Barotrauma.Identifier]:(Barotrauma.StatTypes)})
+---`Field Private Static`
+---@field disguiseName System.String
+---`Field Public Static`
+---@field MaxAdditionalTalentPoints System.Int32
+---`Field Public Static`
+---@field MaxCurrentOrders System.Int32
+---`Field Private Static`
+---@field BaseExperienceRequired System.Int32
+---`Field Private Static`
+---@field AddedExperienceRequiredPerLevel System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Head Barotrauma.CharacterInfo.HeadInfo
+---`Getter Public Instance`
+---@field IsMale System.Boolean
+---`Getter Public Instance`
+---@field IsFemale System.Boolean
+---`Getter Public Instance`
+---@field Prefab Barotrauma.CharacterInfoPrefab
+---`Getter Public Instance`
+---@field HasNickname System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OriginalName System.String
+---`Getter Public Instance`
+---@field DisplayName System.String
+---`Getter Public Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExperiencePoints System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TalentRefundPoints System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnlockedTalents (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TalentResetCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AdditionalTalentPoints System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HeadSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Portrait Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachmentSprites (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterConfigElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PersonalityTrait Barotrauma.NPCPersonalityTrait
+---`Getter Public Static`
+---@field HighestManualOrderPriority System.Int32
+---`Getter Public Instance`
+---@field CurrentOrders (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteTags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Ragdoll Barotrauma.RagdollParams
+---`Getter Public Instance`
+---@field IsAttachmentsLoaded System.Boolean
+---`Getter Public Instance`
+---@field Hairs (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field Beards (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field Moustaches (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field FaceAttachments (System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---`Getter Public Instance`
+---@field Wearables (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['CharacterInfo'] = {}
+
+---`Method Private Instance`
+---@param increase System.Single
+---@param skillIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CharacterInfo'].GetSkillSpecificGain = function(increase, skillIdentifier) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param level System.Single
+---@param forceNotification? System.Boolean
+_G['CharacterInfo'].SetSkillLevel = function(skillIdentifier, level, forceNotification) end
+
+---`Method Private Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param prevLevel System.Single
+---@param newLevel System.Single
+---@param forceNotification System.Boolean
+_G['CharacterInfo'].OnSkillChanged = function(skillIdentifier, prevLevel, newLevel, forceNotification) end
+
+---`Method Public Instance`
+---@param amount System.Int32
+_G['CharacterInfo'].GiveExperience = function(amount) end
+
+---`Method Public Instance`
+---@param newExperience System.Int32
+_G['CharacterInfo'].SetExperience = function(newExperience) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetTotalTalentPoints = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetAvailableTalentPoints = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['CharacterInfo'].GetProgressTowardsNextLevel = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetExperienceRequiredForCurrentLevel = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetExperienceRequiredToLevelUp = function() end
+
+---`Method Public Instance`
+---@param level System.Int32
+---@return System.Int32
+_G['CharacterInfo'].GetExperienceRequiredForLevel = function(level) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetCurrentLevel = function() end
+
+---`Method Private Instance`
+---@param experienceRequired System.Int32-ref
+---@return System.Int32
+_G['CharacterInfo'].GetCurrentLevel = function(experienceRequired) end
+
+---`Method Public Static`
+---@param level System.Int32
+---@return System.Int32
+_G['CharacterInfo'].ExperienceRequiredPerLevel = function(level) end
+
+---`Method Private Instance`
+---@param prevAmount System.Int32
+---@param newAmount System.Int32
+_G['CharacterInfo'].OnExperienceChanged = function(prevAmount, newAmount) end
+
+---`Method Private Instance`
+---@param statType Barotrauma.StatTypes
+_G['CharacterInfo'].OnPermanentStatChanged = function(statType) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].RefundTalents = function() end
+
+---`Method Public Instance`
+---@param newRefundPoints System.Int32
+_G['CharacterInfo'].AddRefundPoints = function(newRefundPoints) end
+
+---`Method Public Instance`
+---@param newName System.String
+_G['CharacterInfo'].Rename = function(newName) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ResetName = function() end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['CharacterInfo'].Save = function(parentElement) end
+
+---`Method Public Static`
+---@param parentElement System.Xml.Linq.XElement
+---@param ... Barotrauma.Order
+_G['CharacterInfo'].SaveOrders = function(parentElement, ...) end
+
+---`Method Public Static`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param parentElement System.Xml.Linq.XElement
+_G['CharacterInfo'].SaveOrderData = function(characterInfo, parentElement) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].SaveOrderData = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param orderData System.Xml.Linq.XElement
+_G['CharacterInfo'].ApplyOrderData = function(character, orderData) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ApplyOrderData = function() end
+
+---`Method Public Static`
+---@param ordersElement System.Xml.Linq.XElement
+---@return (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+_G['CharacterInfo'].LoadOrders = function(ordersElement) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.List*1Barotrauma*LinkedSubmarine)|(Barotrauma.LinkedSubmarine[])
+_G['CharacterInfo'].GetLinkedSubmarines = function() end
+
+---`Method Private Static`
+---@param parentSub Barotrauma.Submarine
+---@param id System.UInt16
+---@return System.UInt16
+_G['CharacterInfo'].GetOffsetId = function(parentSub, id) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param healthData System.Xml.Linq.XElement
+---@param afflictionPredicate? (System.Func*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg:Barotrauma.AfflictionPrefab):(System.Boolean))
+_G['CharacterInfo'].ApplyHealthData = function(character, healthData, afflictionPredicate) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ReloadHeadAttachments = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].ResetAttachmentIndices = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].ResetLoadedAttachments = function() end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ClearCurrentOrders = function() end
+
+---`Method Public Instance`
+_G['CharacterInfo'].Remove = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].RefreshHeadSprites = function() end
+
+---`Method Public Instance`
+---@overload fun()
+---@param statType Barotrauma.StatTypes
+_G['CharacterInfo'].ClearSavedStatValues = function(statType) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].RemoveSavedStatValuesOnDeath = function() end
+
+---`Method Public Instance`
+---@param statIdentifier Barotrauma.Identifier
+_G['CharacterInfo'].ResetSavedStatValue = function(statIdentifier) end
+
+---`Method Public Instance`
+---@overload fun(statType:Barotrauma.StatTypes):(System.Single)
+---@param statType Barotrauma.StatTypes
+---@param statIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CharacterInfo'].GetSavedStatValue = function(statType, statIdentifier) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param statIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['CharacterInfo'].GetSavedStatValueWithAll = function(statType, statIdentifier) end
+
+---`Method Public Instance`
+---@overload fun(statType:Barotrauma.StatTypes, statIdentifier:Barotrauma.Identifier):(System.Single)
+---@param statType Barotrauma.StatTypes
+---@param statIdentifier Barotrauma.Identifier
+---@param bots (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return System.Single
+_G['CharacterInfo'].GetSavedStatValueWithBotsInMp = function(statType, statIdentifier, bots) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@param value System.Single
+---@param statIdentifier Barotrauma.Identifier
+---@param removeOnDeath System.Boolean
+---@param maxValue? System.Single
+---@param setValue? System.Boolean
+_G['CharacterInfo'].ChangeSavedStatValue = function(statType, value, statIdentifier, removeOnDeath, maxValue, setValue) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].ApplyDeathEffects = function() end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['CharacterInfo'].ServerWrite = function(msg) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterInfo'].GetUnlockedTalentsInTree = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterInfo'].GetUnlockedTalentsOutsideTree = function() end
+
+---`Method Public Instance`
+---@param handleBuff System.Boolean
+---@param idCard? Barotrauma.Items.Components.IdCard
+_G['CharacterInfo'].CheckDisguiseStatus = function(handleBuff, idCard) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@return System.Int32
+_G['CharacterInfo'].GetManualOrderPriority = function(order) end
+
+---`Method Public Instance`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@param headPreset Barotrauma.CharacterInfo.HeadPreset
+---@param wearableType? System.Nullable*1Barotrauma*WearableType
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['CharacterInfo'].GetValidAttachmentElements = function(elements, headPreset, wearableType) end
+
+---`Method Public Instance`
+---@param wearableType Barotrauma.WearableType
+---@return System.Int32
+_G['CharacterInfo'].CountValidAttachmentsOfType = function(wearableType) end
+
+---`Method Private Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@param name System.String-ref
+_G['CharacterInfo'].GetName = function(randSync, name) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@param tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['CharacterInfo'].LoadTagsBackwardsCompatibility = function(element, tags) end
+
+---`Method Private Static`
+---@param element System.Xml.Linq.XElement
+---@return System.Boolean
+_G['CharacterInfo'].ElementHasSpecifierTags = function(element) end
+
+---`Method Private Instance`
+_G['CharacterInfo'].SetPersonalityTrait = function() end
+
+---`Method Public Instance`
+---@param randSync Barotrauma.Rand.RandSync
+---@return System.String
+_G['CharacterInfo'].GetRandomName = function(randSync) end
+
+---`Method Public Static`
+---@param array System.Collections.Immutable.ImmutableArray
+---@param randSync Barotrauma.Rand.RandSync
+---@return Microsoft.Xna.Framework.Color
+_G['CharacterInfo'].SelectRandomColor = function(array, randSync) end
+
+---`Method Private Instance`
+---@param randSync Barotrauma.Rand.RandSync
+_G['CharacterInfo'].SetAttachments = function(randSync) end
+
+---`Method Private Instance`
+---@param randSync Barotrauma.Rand.RandSync
+_G['CharacterInfo'].SetColors = function(randSync) end
+
+---`Method Private Instance`
+---@param clr Microsoft.Xna.Framework.Color-ref
+---@return System.Boolean
+_G['CharacterInfo'].IsColorValid = function(clr) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].CheckColors = function() end
+
+---`Method Private Instance`
+---@param npcIdentifier Barotrauma.Identifier
+_G['CharacterInfo'].TryLoadNameAndTitle = function(npcIdentifier) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetIdentifier = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].GetIdentifierUsingOriginalName = function() end
+
+---`Method Private Instance`
+---@param name System.String
+---@return System.Int32
+_G['CharacterInfo'].GetIdentifierHash = function(name) end
+
+---`Method Public Instance`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@param tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param targetType? System.Nullable*1Barotrauma*WearableType
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+_G['CharacterInfo'].FilterElements = function(elements, tags, targetType) end
+
+---`Method Public Instance`
+---@overload fun(tags:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[]), hairIndex:System.Int32, beardIndex:System.Int32, moustacheIndex:System.Int32, faceAttachmentIndex:System.Int32)
+---@param headInfo Barotrauma.CharacterInfo.HeadInfo
+_G['CharacterInfo'].RecreateHead = function(headInfo) end
+
+---`Method Public Instance`
+---@param str System.String
+---@return System.String
+_G['CharacterInfo'].ReplaceVars = function(str) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].RefreshHead = function() end
+
+---`Method Public Instance`
+_G['CharacterInfo'].VerifySpriteTagsLoaded = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].LoadHeadSprite = function() end
+
+---`Method Private Instance`
+_G['CharacterInfo'].LoadSpriteTags = function() end
+
+---`Method Private Instance`
+---@param loadHeadSprite System.Boolean
+---@param loadHeadSpriteTags System.Boolean
+_G['CharacterInfo'].LoadHeadElement = function(loadHeadSprite, loadHeadSpriteTags) end
+
+---`Method Public Instance`
+_G['CharacterInfo'].LoadHeadAttachments = function() end
+
+---`Method Public Static`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@param type Barotrauma.WearableType
+---@param commonness? System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+_G['CharacterInfo'].AddEmpty = function(elements, type, commonness) end
+
+---`Method Public Instance`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@return Barotrauma.ContentXElement
+_G['CharacterInfo'].GetRandomElement = function(elements) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@return System.Boolean
+_G['CharacterInfo'].IsWearableAllowed = function(element) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param spriteName System.String
+---@return System.Boolean
+_G['CharacterInfo'].IsAllowed = function(element, spriteName) end
+
+---`Method Public Static`
+---@param index System.Int32
+---@param list (System.Collections.Generic.List*1Barotrauma*ContentXElement)|(Barotrauma.ContentXElement[])
+---@return System.Boolean
+_G['CharacterInfo'].IsValidIndex = function(index, list) end
+
+---`Method Private Static`
+---@param elements (System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement)|(fun():(Barotrauma.ContentXElement))
+---@return (System.Collections.Generic.IEnumerable*1System*Single)|(fun():(System.Single))
+_G['CharacterInfo'].GetWeights = function(elements) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['CharacterInfo'].CalculateSalary = function() end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param baseGain System.Single
+---@param gainedFromAbility? System.Boolean
+---@param maxGain? System.Single
+---@param forceNotification? System.Boolean
+_G['CharacterInfo'].ApplySkillGain = function(skillIdentifier, baseGain, gainedFromAbility, maxGain, forceNotification) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param increase System.Single
+---@param gainedFromAbility? System.Boolean
+---@param forceNotification? System.Boolean
+_G['CharacterInfo'].IncreaseSkillLevel = function(skillIdentifier, increase, gainedFromAbility, forceNotification) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'] = function(infoElement, npcIdentifier) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'].__new = function(infoElement, npcIdentifier) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'] = function(infoElement, npcIdentifier) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterInfo
+---@overload fun(speciesName:Barotrauma.Identifier, name?:System.String, originalName?:System.String, jobOrJobPrefab?:Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab, variant?:System.Int32, randSync?:Barotrauma.Rand.RandSync, npcIdentifier?:Barotrauma.Identifier):Barotrauma.CharacterInfo
+---@param infoElement Barotrauma.ContentXElement
+---@param npcIdentifier? Barotrauma.Identifier
+---@return Barotrauma.CharacterInfo
+_G['CharacterInfo'].__new = function(infoElement, npcIdentifier) end
+
diff --git a/Meta/Types/server/_00007FFD968F0E58.lua b/Meta/Types/server/_00007FFD968F0E58.lua
new file mode 100644
index 0000000..3196d38
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F0E58.lua
@@ -0,0 +1,63 @@
+---@meta
+---@class Barotrauma.CharacterInfo.HeadInfo : System.Object
+---`Field Public Instance`
+---@field CharacterInfo Barotrauma.CharacterInfo
+---`Field Public Instance`
+---@field Preset Barotrauma.CharacterInfo.HeadPreset
+---`Field Private Instance`
+---@field hairWithHatIndex System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field BeardIndex System.Int32
+---`Field Public Instance`
+---@field MoustacheIndex System.Int32
+---`Field Public Instance`
+---@field FaceAttachmentIndex System.Int32
+---`Field Public Instance`
+---@field HairColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field FacialHairColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field SkinColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HairIndex System.Int32
+---`Getter Public Instance`
+---@field SheetIndex Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field HairElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field HairWithHatElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field BeardElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field MoustacheElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field FaceAttachment Barotrauma.ContentXElement
+_G['CharacterInfo']['HeadInfo'] = {}
+
+---`Method Public Instance`
+_G['CharacterInfo']['HeadInfo'].SetHairWithHatIndex = function() end
+
+---`Method Public Instance`
+_G['CharacterInfo']['HeadInfo'].ResetAttachmentIndices = function() end
+
+---`Constructor Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param headPreset Barotrauma.CharacterInfo.HeadPreset
+---@param hairIndex? System.Int32
+---@param beardIndex? System.Int32
+---@param moustacheIndex? System.Int32
+---@param faceAttachmentIndex? System.Int32
+---@return Barotrauma.CharacterInfo.HeadInfo
+_G['CharacterInfo']['HeadInfo'] = function(characterInfo, headPreset, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex) end
+
+---`Constructor Public Instance`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param headPreset Barotrauma.CharacterInfo.HeadPreset
+---@param hairIndex? System.Int32
+---@param beardIndex? System.Int32
+---@param moustacheIndex? System.Int32
+---@param faceAttachmentIndex? System.Int32
+---@return Barotrauma.CharacterInfo.HeadInfo
+_G['CharacterInfo']['HeadInfo'].__new = function(characterInfo, headPreset, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex) end
+
diff --git a/Meta/Types/server/_00007FFD968F1100.lua b/Meta/Types/server/_00007FFD968F1100.lua
new file mode 100644
index 0000000..5d1adcd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F1100.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.CharacterInfo.HeadPreset : System.Object
+---`Field Private Instance`
+---@field characterInfoPrefab Barotrauma.CharacterInfoPrefab
+---`Getter Public Instance`
+---@field MenuCategory Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SheetIndex Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['CharacterInfo']['HeadPreset'] = {}
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+_G['CharacterInfo']['HeadPreset'].DetermineTagsFromLegacyFormat = function(element) end
+
+---`Constructor Public Instance`
+---@param charInfoPrefab Barotrauma.CharacterInfoPrefab
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfo.HeadPreset
+_G['CharacterInfo']['HeadPreset'] = function(charInfoPrefab, element) end
+
+---`Constructor Public Instance`
+---@param charInfoPrefab Barotrauma.CharacterInfoPrefab
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfo.HeadPreset
+_G['CharacterInfo']['HeadPreset'].__new = function(charInfoPrefab, element) end
+
diff --git a/Meta/Types/server/_00007FFD968F1318.lua b/Meta/Types/server/_00007FFD968F1318.lua
new file mode 100644
index 0000000..f0807e9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F1318.lua
@@ -0,0 +1,37 @@
+---@meta
+---@class Barotrauma.CharacterInfoPrefab : System.Object
+---`Field Public Instance`
+---@field Heads (System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo*HeadPreset)|(Barotrauma.CharacterInfo.HeadPreset[])
+---`Field Public Instance`
+---@field VarTags (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier)|({[Barotrauma.Identifier]:((System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[]))})
+---`Field Public Instance`
+---@field MenuCategoryVar Barotrauma.Identifier
+---`Field Public Instance`
+---@field Pronouns Barotrauma.Identifier
+_G['CharacterInfoPrefab'] = {}
+
+---`Method Public Instance`
+---@overload fun(str:System.String, headPreset:Barotrauma.CharacterInfo.HeadPreset):(System.String)
+---@param str System.String
+---@param tagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@return System.String
+_G['CharacterInfoPrefab'].ReplaceVars = function(str, tagSet) end
+
+---`Constructor Public Instance`
+---@param characterPrefab Barotrauma.CharacterPrefab
+---@param headsElement Barotrauma.ContentXElement
+---@param varsElement System.Xml.Linq.XElement
+---@param menuCategoryElement System.Xml.Linq.XElement
+---@param pronounsElement System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfoPrefab
+_G['CharacterInfoPrefab'] = function(characterPrefab, headsElement, varsElement, menuCategoryElement, pronounsElement) end
+
+---`Constructor Public Instance`
+---@param characterPrefab Barotrauma.CharacterPrefab
+---@param headsElement Barotrauma.ContentXElement
+---@param varsElement System.Xml.Linq.XElement
+---@param menuCategoryElement System.Xml.Linq.XElement
+---@param pronounsElement System.Xml.Linq.XElement
+---@return Barotrauma.CharacterInfoPrefab
+_G['CharacterInfoPrefab'].__new = function(characterPrefab, headsElement, varsElement, menuCategoryElement, pronounsElement) end
+
diff --git a/Meta/Types/server/_00007FFD968F1CC8.lua b/Meta/Types/server/_00007FFD968F1CC8.lua
new file mode 100644
index 0000000..32a73ca
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F1CC8.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.AICharacter : Barotrauma.Character
+---`Field Private Instance`
+---@field aiController Barotrauma.AIController
+---`Getter Public Instance Virtual`
+---@field AIController Barotrauma.AIController
+_G['AICharacter'] = {}
+
+---`Method Public Instance`
+---@param aiController Barotrauma.AIController
+_G['AICharacter'].SetAI = function(aiController) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['AICharacter'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isNetworkPlayer? System.Boolean
+---@param ragdoll? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.AICharacter
+_G['AICharacter'] = function(prefab, position, seed, characterInfo, id, isNetworkPlayer, ragdoll, spawnInitialItems) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.CharacterPrefab
+---@param position Microsoft.Xna.Framework.Vector2
+---@param seed System.String
+---@param characterInfo? Barotrauma.CharacterInfo
+---@param id? System.UInt16
+---@param isNetworkPlayer? System.Boolean
+---@param ragdoll? Barotrauma.RagdollParams
+---@param spawnInitialItems? System.Boolean
+---@return Barotrauma.AICharacter
+_G['AICharacter'].__new = function(prefab, position, seed, characterInfo, id, isNetworkPlayer, ragdoll, spawnInitialItems) end
+
diff --git a/Meta/Types/server/_00007FFD968F2990.lua b/Meta/Types/server/_00007FFD968F2990.lua
new file mode 100644
index 0000000..0f1cb5b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F2990.lua
@@ -0,0 +1,417 @@
+---@meta
+---@class Barotrauma.CharacterHealth : System.Object
+---`Field NonPublic Instance`
+---@field minVitality System.Single
+---`Field Public Instance`
+---@field Unkillable System.Boolean
+---`Field Private Instance`
+---@field limbHealths (System.Collections.Generic.List*1Barotrauma*CharacterHealth*LimbHealth)|(Barotrauma.CharacterHealth.LimbHealth[])
+---`Field Private Instance`
+---@field afflictions (System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth)|({[Barotrauma.Affliction]:(Barotrauma.CharacterHealth.LimbHealth)})
+---`Field Private Instance`
+---@field irremovableAfflictions (System.Collections.Generic.HashSet*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field bloodlossAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field oxygenLowAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field pressureAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field stunAffliction Barotrauma.Affliction
+---`Field Private Instance`
+---@field vitality System.Single
+---`Field Public Instance`
+---@field ShowDamageOverlay System.Boolean
+---`Field Public Instance`
+---@field Character Barotrauma.Character
+---`Field Private Instance`
+---@field matchingAfflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field afflictionsCopy (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field allAfflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field afflictionTags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field activeAfflictions (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field limbAfflictions (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*CharacterHealth*LimbHealth*2Barotrauma*Affliction)|(System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*Affliction[])
+---`Field Public Static`
+---@field DefaultFaceTint Microsoft.Xna.Framework.Color
+---`Field Private Static`
+---@field afflictionsToRemove (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Static`
+---@field afflictionsToUpdate (System.Collections.Generic.List*1System*Collections*Generic*KeyValuePair*2Barotrauma*Affliction*2Barotrauma*CharacterHealth*LimbHealth)|(System.Collections.Generic.KeyValuePair*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth[])
+---`Field Public Static`
+---@field InsufficientOxygenThreshold System.Single
+---`Field Public Static`
+---@field LowOxygenThreshold System.Single
+---`Getter NonPublic Instance`
+---
`Setter NonPublic Instance`
+---@field UnmodifiedMaxVitality System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DoesBleed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHealthWindow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---@field BloodlossAffliction Barotrauma.Affliction
+---`Getter Public Instance`
+---@field IsUnconscious System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PressureKillDelay System.Single
+---`Getter Public Instance`
+---@field Vitality System.Single
+---`Getter Public Instance`
+---@field VitalityDisregardingDeath System.Single
+---`Getter Public Instance`
+---@field HealthPercentage System.Single
+---`Getter Public Instance`
+---@field MaxVitality System.Single
+---`Getter Public Instance`
+---@field MinVitality System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FaceTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BodyTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BloodlossAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stun System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsParalyzed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StunTimer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WasInFullHealth System.Boolean
+---`Getter Public Instance`
+---@field PressureAffliction Barotrauma.Affliction
+---`Getter Public Instance`
+---@field OxygenLowResistance System.Single
+_G['CharacterHealth'] = {}
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+_G['CharacterHealth'].ApplyAfflictionStatusEffects = function(type) end
+
+---`Method Public Instance`
+---@return System.ValueTuple*1Barotrauma*CauseOfDeathType*1Barotrauma*Affliction
+_G['CharacterHealth'].GetCauseOfDeath = function() end
+
+---`Method Private Instance`
+---@param mergeSameAfflictions System.Boolean
+---@param predicate? (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+---@return (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+_G['CharacterHealth'].GetAllAfflictions = function(mergeSameAfflictions, predicate) end
+
+---`Method Public Instance`
+---@overload fun():((System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction)))
+---@param limbHealthFilter (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].GetAllAfflictions = function(limbHealthFilter) end
+
+---`Method Public Instance`
+---@param treatmentSuitability (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---@param user Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param ignoreHiddenAfflictions? System.Boolean
+---@param predictFutureDuration? System.Single
+_G['CharacterHealth'].GetSuitableTreatments = function(treatmentSuitability, user, limb, ignoreHiddenAfflictions, predictFutureDuration) end
+
+---`Method Public Instance`
+---@param affliction Barotrauma.Affliction
+---@param otherAfflictionMultiplier? System.Single
+---@param includeSameAffliction? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetTotalAdjustedAfflictionStrength = function(affliction, otherAfflictionMultiplier, includeSameAffliction) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterHealth'].GetActiveAfflictionTags = function() end
+
+---`Method Public Instance`
+---@param affliction Barotrauma.Affliction
+---@param predictFutureDuration System.Single
+---@param limb? Barotrauma.Limb
+---@return System.Single
+_G['CharacterHealth'].GetPredictedStrength = function(affliction, predictFutureDuration, limb) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['CharacterHealth'].ServerWrite = function(msg) end
+
+---`Method Public Instance`
+_G['CharacterHealth'].Remove = function() end
+
+---`Method Public Static`
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param excludeBuffs? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].SortAfflictionsBySeverity = function(afflictions, excludeBuffs) end
+
+---`Method Public Instance`
+---@param healthElement System.Xml.Linq.XElement
+_G['CharacterHealth'].Save = function(healthElement) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param afflictionPredicate? (System.Func*1Barotrauma*AfflictionPrefab*1System*Boolean)|(fun(arg:Barotrauma.AfflictionPrefab):(System.Boolean))
+_G['CharacterHealth'].Load = function(element, afflictionPredicate) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].InitIrremovableAfflictions = function() end
+
+---`Method Private Instance`
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@return System.Single
+_G['CharacterHealth'].GetTotalDamage = function(limbHealth) end
+
+---`Method Private Instance`
+---@overload fun(limb:Barotrauma.Limb):(Barotrauma.CharacterHealth.LimbHealth)
+---@param affliction Barotrauma.Affliction
+---@return Barotrauma.CharacterHealth.LimbHealth
+_G['CharacterHealth'].GetMatchingLimbHealth = function(affliction) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, allowLimbAfflictions?:System.Boolean):(Barotrauma.Affliction)
+---@overload fun(identifier:Barotrauma.Identifier, allowLimbAfflictions?:System.Boolean):(Barotrauma.Affliction)
+---@overload fun(identifier:Barotrauma.Identifier, allowLimbAfflictions?:System.Boolean):(Barotrauma.CharacterHealth.T)
+---@param identifier Barotrauma.Identifier
+---@param limb Barotrauma.Limb
+---@return Barotrauma.Affliction
+_G['CharacterHealth'].GetAffliction = function(identifier, limb) end
+
+---`Method Private Instance`
+---@param predicate (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+---@param allowLimbAfflictions? System.Boolean
+---@return Barotrauma.Affliction
+_G['CharacterHealth'].GetAffliction = function(predicate, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param afflictionType Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return Barotrauma.Affliction
+_G['CharacterHealth'].GetAfflictionOfType = function(afflictionType, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param affliction Barotrauma.Affliction
+---@return Barotrauma.Limb
+_G['CharacterHealth'].GetAfflictionLimb = function(affliction) end
+
+---`Method Public Instance`
+---@overload fun(afflictionType:Barotrauma.Identifier, limb:Barotrauma.Limb, requireLimbSpecific:System.Boolean):(System.Single)
+---@param afflictionType Barotrauma.Identifier
+---@param afflictionidentifier Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetAfflictionStrength = function(afflictionType, afflictionidentifier, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param afflictionType Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetAfflictionStrengthByType = function(afflictionType, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param afflictionIdentifier Barotrauma.Identifier
+---@param allowLimbAfflictions? System.Boolean
+---@return System.Single
+_G['CharacterHealth'].GetAfflictionStrengthByIdentifier = function(afflictionIdentifier, allowLimbAfflictions) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param affliction Barotrauma.Affliction
+---@param allowStacking? System.Boolean
+---@param ignoreUnkillability? System.Boolean
+---@param recalculateVitality? System.Boolean
+_G['CharacterHealth'].ApplyAffliction = function(targetLimb, affliction, allowStacking, ignoreUnkillability, recalculateVitality) end
+
+---`Method Public Instance`
+---@param afflictionPrefab Barotrauma.AfflictionPrefab
+---@param limbType Barotrauma.LimbType
+---@return System.Single
+_G['CharacterHealth'].GetResistance = function(afflictionPrefab, limbType) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return System.Single
+_G['CharacterHealth'].GetStatValue = function(statType) end
+
+---`Method Public Instance`
+---@param flagType Barotrauma.AbilityFlags
+---@return System.Boolean
+_G['CharacterHealth'].HasFlag = function(flagType) end
+
+---`Method Public Instance`
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+_G['CharacterHealth'].ReduceAllAfflictionsOnAllLimbs = function(amount, treatmentAction) end
+
+---`Method Public Instance`
+---@param afflictionIdOrType Barotrauma.Identifier
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+---@param attacker? Barotrauma.Character
+_G['CharacterHealth'].ReduceAfflictionOnAllLimbs = function(afflictionIdOrType, amount, treatmentAction, attacker) end
+
+---`Method Private Instance`
+---@param targetLimb Barotrauma.Limb
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['CharacterHealth'].GetAfflictionsForLimb = function(targetLimb) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+_G['CharacterHealth'].ReduceAllAfflictionsOnLimb = function(targetLimb, amount, treatmentAction) end
+
+---`Method Public Instance`
+---@param targetLimb Barotrauma.Limb
+---@param afflictionIdOrType Barotrauma.Identifier
+---@param amount System.Single
+---@param treatmentAction? System.Nullable*1Barotrauma*ActionType
+---@param attacker? Barotrauma.Character
+_G['CharacterHealth'].ReduceAfflictionOnLimb = function(targetLimb, afflictionIdOrType, amount, treatmentAction, attacker) end
+
+---`Method Private Instance`
+---@param amount System.Single
+---@param treatmentAction System.Nullable*1Barotrauma*ActionType
+---@param attacker? Barotrauma.Character
+_G['CharacterHealth'].ReduceMatchingAfflictions = function(amount, treatmentAction, attacker) end
+
+---`Method Public Instance`
+---@param hitLimb Barotrauma.Limb
+---@param attackResult Barotrauma.AttackResult
+---@param allowStacking? System.Boolean
+---@param recalculateVitality? System.Boolean
+_G['CharacterHealth'].ApplyDamage = function(hitLimb, attackResult, allowStacking, recalculateVitality) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].KillIfOutOfVitality = function() end
+
+---`Method Public Instance`
+---@param damageAmount System.Single
+---@param bleedingDamageAmount System.Single
+---@param burnDamageAmount System.Single
+_G['CharacterHealth'].SetAllDamage = function(damageAmount, bleedingDamageAmount, burnDamageAmount) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+---@param afflictionType Barotrauma.Identifier
+---@return System.Single
+_G['CharacterHealth'].GetLimbDamage = function(limb, afflictionType) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Affliction*1System*Boolean)|(fun(arg:Barotrauma.Affliction):(System.Boolean))
+_G['CharacterHealth'].RemoveAfflictions = function(predicate) end
+
+---`Method Public Instance`
+_G['CharacterHealth'].RemoveAllAfflictions = function() end
+
+---`Method Public Instance`
+_G['CharacterHealth'].RemoveNegativeAfflictions = function() end
+
+---`Method Private Instance`
+---@overload fun(limb:Barotrauma.Limb, newAffliction:Barotrauma.Affliction, allowStacking?:System.Boolean, recalculateVitality?:System.Boolean)
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@param limb Barotrauma.Limb
+---@param newAffliction Barotrauma.Affliction
+---@param allowStacking? System.Boolean
+---@param recalculateVitality? System.Boolean
+_G['CharacterHealth'].AddLimbAffliction = function(limbHealth, limb, newAffliction, allowStacking, recalculateVitality) end
+
+---`Method Private Instance`
+---@param newAffliction Barotrauma.Affliction
+---@param allowStacking? System.Boolean
+_G['CharacterHealth'].AddAffliction = function(newAffliction, allowStacking) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+_G['CharacterHealth'].ForceUpdateVisuals = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateDamageReductions = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['CharacterHealth'].UpdateOxygen = function(deltaTime) end
+
+---`Method Public Instance`
+---@param newVitality System.Single
+_G['CharacterHealth'].SetVitality = function(newVitality) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].CalculateVitality = function() end
+
+---`Method Public Instance`
+_G['CharacterHealth'].RecalculateVitality = function() end
+
+---`Method Private Static`
+---@param affliction Barotrauma.Affliction
+---@param limbHealth Barotrauma.CharacterHealth.LimbHealth
+---@return System.Single
+_G['CharacterHealth'].GetVitalityMultiplier = function(affliction, limbHealth) end
+
+---`Method Private Instance`
+---@param affliction Barotrauma.Affliction
+---@return System.Single
+_G['CharacterHealth'].GetVitalityDecreaseWithVitalityMultipliers = function(affliction) end
+
+---`Method Private Instance`
+_G['CharacterHealth'].Kill = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'] = function(element, character, limbHealthElement) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'].__new = function(element, character, limbHealthElement) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'] = function(element, character, limbHealthElement) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth
+---@overload fun(character:Barotrauma.Character):Barotrauma.CharacterHealth
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.Character
+---@param limbHealthElement? Barotrauma.ContentXElement
+---@return Barotrauma.CharacterHealth
+_G['CharacterHealth'].__new = function(element, character, limbHealthElement) end
+
diff --git a/Meta/Types/server/_00007FFD968F35E0.lua b/Meta/Types/server/_00007FFD968F35E0.lua
new file mode 100644
index 0000000..6cd37ab
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F35E0.lua
@@ -0,0 +1,230 @@
+---@meta
+---@class Barotrauma.Affliction : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.AfflictionPrefab
+---`Field Private Instance`
+---@field fluctuationTimer System.Single
+---`Field Private Instance`
+---@field activeEffect Barotrauma.AfflictionPrefab.Effect
+---`Field Private Instance`
+---@field prevActiveEffectStrength System.Single
+---`Field NonPublic Instance`
+---@field activeEffectDirty System.Boolean
+---`Field NonPublic Instance`
+---@field _strength System.Single
+---`Field Private Instance`
+---@field _nonClampedStrength System.Single
+---`Field Public Instance`
+---@field DamagePerSecond System.Single
+---`Field Public Instance`
+---@field DamagePerSecondTimer System.Single
+---`Field Public Instance`
+---@field PreviousVitalityDecrease System.Single
+---`Field Public Instance`
+---@field StrengthDiminishMultiplier System.ValueTuple*1System*Single*1Barotrauma*Affliction
+---`Field Public Instance`
+---@field PeriodicEffectTimers (System.Collections.Generic.Dictionary*1Barotrauma*AfflictionPrefab*PeriodicEffect*1System*Single)|({[Barotrauma.AfflictionPrefab.PeriodicEffect]:(System.Single)})
+---`Field Public Instance`
+---@field AppliedAsSuccessfulTreatmentTime System.Double
+---`Field Public Instance`
+---@field AppliedAsFailedTreatmentTime System.Double
+---`Field Public Instance`
+---@field Duration System.Single
+---`Field Public Instance`
+---@field Source Barotrauma.Character
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Static`
+---@field strengthTexts (Barotrauma.LocalizedString-arr)|(Barotrauma.LocalizedString[])
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PendingGrainEffectStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrainEffectStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Strength System.Single
+---`Getter Public Instance`
+---@field NonClampedStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Probability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DivideByLimbCount System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MultiplyByMaxVitality System.Boolean
+_G['Affliction'] = {}
+
+---`Method Public Instance`
+---@param source Barotrauma.Affliction
+_G['Affliction'].CopyProperties = function(source) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Affliction'].Serialize = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Affliction'].Deserialize = function(element) end
+
+---`Method Public Instance`
+---@param multiplier System.Single
+---@param affliction Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'].CreateMultiplied = function(multiplier, affliction) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Affliction'].ToString = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.LocalizedString
+_G['Affliction'].GetStrengthText = function() end
+
+---`Method Public Static`
+---@param strength System.Single
+---@param maxStrength System.Single
+---@return Barotrauma.LocalizedString
+_G['Affliction'].GetStrengthText = function(strength, maxStrength) end
+
+---`Method Public Instance`
+---@return Barotrauma.AfflictionPrefab.Effect
+_G['Affliction'].GetActiveEffect = function() end
+
+---`Method Public Instance`
+---@overload fun(characterHealth:Barotrauma.CharacterHealth):(System.Single)
+---@param characterHealth Barotrauma.CharacterHealth
+---@param strength System.Single
+---@return System.Single
+_G['Affliction'].GetVitalityDecrease = function(characterHealth, strength) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetScreenGrainStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetScreenDistortStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetRadialDistortStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetChromaticAberrationStrength = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetAfflictionOverlayMultiplier = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Color
+_G['Affliction'].GetFaceTint = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Color
+_G['Affliction'].GetBodyTint = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetScreenBlurStrength = function() end
+
+---`Method Private Instance`
+---@param currentEffect Barotrauma.AfflictionPrefab.Effect
+---@return System.Single
+_G['Affliction'].GetScreenEffectFluctuation = function(currentEffect) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetSkillMultiplier = function() end
+
+---`Method Public Instance`
+---@param currentVitalityDecrease System.Single
+_G['Affliction'].CalculateDamagePerSecond = function(currentVitalityDecrease) end
+
+---`Method Public Instance`
+---@param afflictionId Barotrauma.Identifier
+---@param limbType Barotrauma.LimbType
+---@return System.Single
+_G['Affliction'].GetResistance = function(afflictionId, limbType) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Affliction'].GetSpeedMultiplier = function() end
+
+---`Method Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return System.Single
+_G['Affliction'].GetStatValue = function(statType) end
+
+---`Method Public Instance`
+---@param flagType Barotrauma.AbilityFlags
+---@return System.Boolean
+_G['Affliction'].HasFlag = function(flagType) end
+
+---`Method Private Instance`
+---@return Barotrauma.AfflictionPrefab.Effect
+_G['Affliction'].GetViableEffect = function() end
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['Affliction'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+_G['Affliction'].ApplyStatusEffects = function(type, deltaTime, characterHealth, targetLimb) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param statusEffect Barotrauma.StatusEffect
+---@param deltaTime System.Single
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+_G['Affliction'].ApplyStatusEffect = function(type, statusEffect, deltaTime, characterHealth, targetLimb) end
+
+---`Method Public Instance`
+---@param strength System.Single
+_G['Affliction'].SetStrength = function(strength) end
+
+---`Method Public Instance`
+---@param afflictedCharacter Barotrauma.Character
+---@return System.Boolean
+_G['Affliction'].ShouldShowIcon = function(afflictedCharacter) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.AfflictionPrefab, strength:System.Single):Barotrauma.Affliction
+---@return Barotrauma.Affliction
+_G['Affliction'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968F3A88.lua b/Meta/Types/server/_00007FFD968F3A88.lua
new file mode 100644
index 0000000..8b582b6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F3A88.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.CharacterHealth.LimbHealth : System.Object
+---`Field Public Instance`
+---@field IndicatorSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field HighlightSprite Barotrauma.Sprite
+---`Field Public Instance`
+---@field HighlightArea Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field VitalityMultipliers (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Public Instance`
+---@field VitalityTypeMultipliers (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+_G['CharacterHealth']['LimbHealth'] = {}
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth.LimbHealth
+---@param element Barotrauma.ContentXElement
+---@param characterHealth Barotrauma.CharacterHealth
+---@return Barotrauma.CharacterHealth.LimbHealth
+_G['CharacterHealth']['LimbHealth'] = function(element, characterHealth) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.CharacterHealth.LimbHealth
+---@param element Barotrauma.ContentXElement
+---@param characterHealth Barotrauma.CharacterHealth
+---@return Barotrauma.CharacterHealth.LimbHealth
+_G['CharacterHealth']['LimbHealth'].__new = function(element, characterHealth) end
+
diff --git a/Meta/Types/server/_00007FFD968F4070.lua b/Meta/Types/server/_00007FFD968F4070.lua
new file mode 100644
index 0000000..fcde930
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F4070.lua
@@ -0,0 +1,255 @@
+---@meta
+---@class Barotrauma.Inventory : System.Object
+---`Field Private Instance`
+---@field receivedItemIds (System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1System*Collections*Generic*List)|({[Barotrauma.Networking.Client]:((System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[]))})
+---`Field Public Instance`
+---@field Owner Barotrauma.Entity
+---`Field NonPublic Instance`
+---@field capacity System.Int32
+---`Field NonPublic Instance`
+---@field slots (Barotrauma.ItemSlot-arr)|(Barotrauma.Inventory.ItemSlot[])
+---`Field Public Instance`
+---@field Locked System.Boolean
+---`Field NonPublic Instance`
+---@field syncItemsDelay System.Single
+---`Field Private Instance`
+---@field extraStackSize System.Int32
+---`Field Private Instance`
+---@field allItemsList (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field AllowSwappingContainedItems System.Boolean
+---`Field Public Static`
+---@field MaxPossibleStackSize System.Int32
+---`Field Public Static`
+---@field MaxItemsPerNetworkEvent System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraStackSize System.Int32
+---`Getter Public Instance Virtual`
+---@field AllItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field AllItemsMod (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field Capacity System.Int32
+---`Getter Public Static`
+---@field IsDragAndDropGiveAllowed System.Boolean
+---`Getter Public Instance`
+---@field EmptySlotCount System.Int32
+_G['Inventory'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['Inventory'].ServerEventRead = function(msg, sender) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Inventory'].EnsureItemsInBothHands = function(character) end
+
+---`Method Public Instance`
+---@param checkForDuplicates System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Inventory'].GetAllItems = function(checkForDuplicates) end
+
+---`Method Private Instance`
+_G['Inventory'].NotifyItemComponentsOfChange = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Inventory'].Contains = function(item) end
+
+---`Method Public Instance`
+---@return Barotrauma.Item
+_G['Inventory'].FirstOrDefault = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Item
+_G['Inventory'].LastOrDefault = function() end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return Barotrauma.Item
+_G['Inventory'].GetItemAt = function(index) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Inventory'].GetItemsAt = function(index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+---@return System.Int32
+_G['Inventory'].GetItemStackSlotIndex = function(item, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Int32
+_G['Inventory'].FindIndex = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+_G['Inventory'].FindIndices = function(item) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Inventory'].ItemOwnsSelf = function(item) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param ignoreCondition? System.Boolean
+---@return System.Int32
+_G['Inventory'].FindAllowedSlot = function(item, ignoreCondition) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param condition? System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['Inventory'].CanBePut = function(itemPrefab, condition, quality) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, i:System.Int32, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition? System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['Inventory'].CanBePutInSlot = function(itemPrefab, i, condition, quality) end
+
+---`Method Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param condition? System.Nullable*1System*Single
+---@return System.Int32
+_G['Inventory'].HowManyCanBePut = function(itemPrefab, condition) end
+
+---`Method Public Instance Virtual`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param ignoreItemsInSlot? System.Boolean
+---@return System.Int32
+_G['Inventory'].HowManyCanBePut = function(itemPrefab, i, condition, ignoreItemsInSlot) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, user:Barotrauma.Character, allowedSlots?:(System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType)), createNetworkEvent?:System.Boolean, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param allowSwapping System.Boolean
+---@param allowCombine System.Boolean
+---@param user Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param ignoreCondition? System.Boolean
+---@return System.Boolean
+_G['Inventory'].TryPutItem = function(item, i, allowSwapping, allowCombine, user, createNetworkEvent, ignoreCondition) end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param user Barotrauma.Character
+---@param removeItem? System.Boolean
+---@param createNetworkEvent? System.Boolean
+_G['Inventory'].PutItem = function(item, i, user, removeItem, createNetworkEvent) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Inventory'].IsEmpty = function() end
+
+---`Method Public Instance Virtual`
+---@param takeStacksIntoAccount? System.Boolean
+---@return System.Boolean
+_G['Inventory'].IsFull = function(takeStacksIntoAccount) end
+
+---`Method NonPublic Instance`
+---@param index System.Int32
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@param createNetworkEvent System.Boolean
+---@param swapWholeStack System.Boolean
+---@return System.Boolean
+_G['Inventory'].TrySwapping = function(index, item, user, createNetworkEvent, swapWholeStack) end
+
+---`Method Public Instance`
+_G['Inventory'].CreateNetworkEvent = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param slotRange System.Range
+_G['Inventory'].CreateNetworkEvent = function(slotRange) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param recursive System.Boolean
+---@return Barotrauma.Item
+_G['Inventory'].FindItem = function(predicate, recursive) end
+
+---`Method Public Instance`
+---@param predicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param recursive? System.Boolean
+---@param list? (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Inventory'].FindAllItems = function(predicate, recursive, list) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@param recursive? System.Boolean
+---@return Barotrauma.Item
+_G['Inventory'].FindItemByTag = function(tag, recursive) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param recursive? System.Boolean
+---@return Barotrauma.Item
+_G['Inventory'].FindItemByIdentifier = function(identifier, recursive) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+_G['Inventory'].RemoveItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+_G['Inventory'].ForceToSlot = function(item, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+_G['Inventory'].ForceRemoveFromSlot = function(item, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param index System.Int32
+---@return System.Boolean
+_G['Inventory'].IsInSlot = function(item, index) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param receivedItemIds (System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[])
+---@param readyToApply System.Boolean-ref
+_G['Inventory'].SharedRead = function(msg, receivedItemIds, readyToApply) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param slotRange System.Range
+_G['Inventory'].SharedWrite = function(msg, slotRange) end
+
+---`Method Public Instance`
+_G['Inventory'].DeleteAllItems = function() end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Entity
+---@param capacity System.Int32
+---@param slotsPerRow? System.Int32
+---@return Barotrauma.Inventory
+_G['Inventory'] = function(owner, capacity, slotsPerRow) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Entity
+---@param capacity System.Int32
+---@param slotsPerRow? System.Int32
+---@return Barotrauma.Inventory
+_G['Inventory'].__new = function(owner, capacity, slotsPerRow) end
+
diff --git a/Meta/Types/server/_00007FFD968F4478.lua b/Meta/Types/server/_00007FFD968F4478.lua
new file mode 100644
index 0000000..96318c9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F4478.lua
@@ -0,0 +1,139 @@
+---@meta
+---@class Barotrauma.CharacterInventory : Barotrauma.Inventory
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field NonPublic Instance`
+---@field IsEquipped (System.Boolean-arr)|(System.Boolean[])
+---`Field Public Static`
+---@field AnySlot (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Public Static`
+---@field BagSlot (System.Collections.Generic.List*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SlotTypes (Barotrauma.InvSlotType-arr)|(Barotrauma.InvSlotType[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccessibleWhenAlive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccessibleByOwner System.Boolean
+_G['CharacterInventory'] = {}
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param inventoryData Barotrauma.Character.InventoryStateEventData
+_G['CharacterInventory'].ServerEventWrite = function(msg, c, inventoryData) end
+
+---`Method Public Static`
+---@param s Barotrauma.InvSlotType
+---@return System.Boolean
+_G['CharacterInventory'].IsHandSlotType = function(s) end
+
+---`Method Private Static`
+---@param element Barotrauma.ContentXElement
+---@return (System.String-arr)|(System.String[])
+_G['CharacterInventory'].ParseSlotTypes = function(element) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return Barotrauma.Item
+_G['CharacterInventory'].FindEquippedItemByTag = function(tag) end
+
+---`Method Public Instance`
+---@param limbSlot Barotrauma.InvSlotType
+---@return System.Int32
+_G['CharacterInventory'].FindLimbSlot = function(limbSlot) end
+
+---`Method Public Instance`
+---@param limbSlot Barotrauma.InvSlotType
+---@return Barotrauma.Item
+_G['CharacterInventory'].GetItemInLimbSlot = function(limbSlot) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param limbSlot Barotrauma.InvSlotType
+---@return System.Boolean
+_G['CharacterInventory'].IsInLimbSlot = function(item, limbSlot) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, i:System.Int32, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['CharacterInventory'].CanBePutInSlot = function(itemPrefab, i, condition, quality) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+_G['CharacterInventory'].RemoveItem = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param tryEquipFromSameStack System.Boolean
+_G['CharacterInventory'].RemoveItem = function(item, tryEquipFromSameStack) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@param allowedSlots? (System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType))
+---@param createNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['CharacterInventory'].TryPutItemWithAutoEquipCheck = function(item, user, allowedSlots, createNetworkEvent) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, user:Barotrauma.Character, allowedSlots?:(System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType)), createNetworkEvent?:System.Boolean, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param index System.Int32
+---@param allowSwapping System.Boolean
+---@param allowCombine System.Boolean
+---@param user Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param ignoreCondition? System.Boolean
+---@return System.Boolean
+_G['CharacterInventory'].TryPutItem = function(item, index, allowSwapping, allowCombine, user, createNetworkEvent, ignoreCondition) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['CharacterInventory'].IsAnySlotAvailable = function(item) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@param inWrongSlot System.Boolean
+---@return System.Int32
+_G['CharacterInventory'].GetFreeAnySlot = function(item, inWrongSlot) end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param user Barotrauma.Character
+---@param removeItem? System.Boolean
+---@param createNetworkEvent? System.Boolean
+_G['CharacterInventory'].PutItem = function(item, i, user, removeItem, createNetworkEvent) end
+
+---`Method NonPublic Instance Virtual`
+---@param slotRange System.Range
+_G['CharacterInventory'].CreateNetworkEvent = function(slotRange) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, character:Barotrauma.Character, spawnInitialItems:System.Boolean):Barotrauma.CharacterInventory
+---@return Barotrauma.CharacterInventory
+_G['CharacterInventory'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968F47C0.lua b/Meta/Types/server/_00007FFD968F47C0.lua
new file mode 100644
index 0000000..99d9d86
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F47C0.lua
@@ -0,0 +1,80 @@
+---@meta
+---@class Barotrauma.CharacterTalent : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.TalentPrefab
+---`Field Public Instance`
+---@field AddedThisRound System.Boolean
+---`Field Private Instance`
+---@field characterAbilityGroupEffectDictionary (System.Collections.Generic.Dictionary*1Barotrauma*AbilityEffectType*1System*Collections*Generic*List*2Barotrauma*Abilities*CharacterAbilityGroupEffect)|({[Barotrauma.AbilityEffectType]:((System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupEffect)|(Barotrauma.Abilities.CharacterAbilityGroupEffect[]))})
+---`Field Private Instance`
+---@field characterAbilityGroupIntervals (System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupInterval)|(Barotrauma.Abilities.CharacterAbilityGroupInterval[])
+---`Field Private Static`
+---@field checkedNonStackableTalents (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---@field DebugIdentifier System.String
+---`Getter Public Instance`
+---@field UnlockedRecipes (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field UnlockedStoreItems (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['CharacterTalent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['CharacterTalent'].UpdateTalent = function(deltaTime) end
+
+---`Method Public Static`
+---@param crew (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@param type Barotrauma.AbilityEffectType
+---@param abilityObject Barotrauma.Abilities.AbilityObject
+_G['CharacterTalent'].CheckTalentsForCrew = function(crew, type, abilityObject) end
+
+---`Method Public Instance`
+---@param abilityEffectType Barotrauma.AbilityEffectType
+---@param abilityObject Barotrauma.Abilities.AbilityObject
+_G['CharacterTalent'].CheckTalent = function(abilityEffectType, abilityObject) end
+
+---`Method Public Instance`
+---@param addingFirstTime System.Boolean
+_G['CharacterTalent'].ActivateTalent = function(addingFirstTime) end
+
+---`Method Private Instance`
+---@param abilityGroup Barotrauma.ContentXElement
+_G['CharacterTalent'].LoadAbilityGroupInterval = function(abilityGroup) end
+
+---`Method Private Instance`
+---@param abilityGroup Barotrauma.ContentXElement
+_G['CharacterTalent'].LoadAbilityGroupEffect = function(abilityGroup) end
+
+---`Method Public Instance`
+---@param characterAbilityGroup Barotrauma.Abilities.CharacterAbilityGroupEffect
+---@param abilityEffectType? Barotrauma.AbilityEffectType
+_G['CharacterTalent'].AddAbilityGroupEffect = function(characterAbilityGroup, abilityEffectType) end
+
+---`Method Public Static`
+---@param characterTalent Barotrauma.CharacterTalent
+---@param abilityEffectTypeString System.String
+---@return Barotrauma.AbilityEffectType
+_G['CharacterTalent'].ParseAbilityEffectType = function(characterTalent, abilityEffectTypeString) end
+
+---`Constructor Public Instance`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(talentPrefab:Barotrauma.TalentPrefab, character:Barotrauma.Character):Barotrauma.CharacterTalent
+---@return Barotrauma.CharacterTalent
+_G['CharacterTalent'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968F4BD8.lua b/Meta/Types/server/_00007FFD968F4BD8.lua
new file mode 100644
index 0000000..587103e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F4BD8.lua
@@ -0,0 +1,85 @@
+---@meta
+---@class Barotrauma.EditableParams : System.Object
+---`Field NonPublic Instance`
+---@field rootElement Barotrauma.ContentXElement
+---`Field NonPublic Instance`
+---@field doc System.Xml.Linq.XDocument
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsLoaded System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileName System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileNameWithoutExtension System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Folder System.String
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Path Barotrauma.ContentPath
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Doc System.Xml.Linq.XDocument
+---`Getter Public Instance Virtual`
+---@field MainElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field OriginalElement Barotrauma.ContentXElement
+_G['EditableParams'] = {}
+
+---`Method NonPublic Instance`
+---@param name System.String
+---@param ... System.Object
+---@return Barotrauma.ContentXElement
+_G['EditableParams'].CreateElement = function(name, ...) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.String
+_G['EditableParams'].GetName = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param element? System.Xml.Linq.XElement
+---@return System.Boolean
+_G['EditableParams'].Deserialize = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param element? System.Xml.Linq.XElement
+---@return System.Boolean
+_G['EditableParams'].Serialize = function(element) end
+
+---`Method NonPublic Instance Virtual`
+---@param file Barotrauma.ContentPath
+---@return System.Boolean
+_G['EditableParams'].Load = function(file) end
+
+---`Method NonPublic Instance Virtual`
+---@param fullPath Barotrauma.ContentPath
+_G['EditableParams'].UpdatePath = function(fullPath) end
+
+---`Method Public Instance Virtual`
+---@param fileNameWithoutExtension? System.String
+---@param settings? System.Xml.XmlWriterSettings
+---@return System.Boolean
+_G['EditableParams'].Save = function(fileNameWithoutExtension, settings) end
+
+---`Method Public Instance Virtual`
+---@param forceReload? System.Boolean
+---@return System.Boolean
+_G['EditableParams'].Reset = function(forceReload) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.EditableParams
+_G['EditableParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.EditableParams
+_G['EditableParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968F5B58.lua b/Meta/Types/server/_00007FFD968F5B58.lua
new file mode 100644
index 0000000..864dff5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F5B58.lua
@@ -0,0 +1,277 @@
+---@meta
+---@class Barotrauma.CharacterParams : Barotrauma.EditableParams
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field File Barotrauma.CharacterFile
+---`Field Public Instance`
+---@field SubParams (System.Collections.Generic.List*1Barotrauma*CharacterParams*SubParam)|(Barotrauma.CharacterParams.SubParam[])
+---`Field Public Instance`
+---@field Sounds (System.Collections.Generic.List*1Barotrauma*CharacterParams*SoundParams)|(Barotrauma.CharacterParams.SoundParams[])
+---`Field Public Instance`
+---@field BloodEmitters (System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams)|(Barotrauma.CharacterParams.ParticleParams[])
+---`Field Public Instance`
+---@field GibEmitters (System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams)|(Barotrauma.CharacterParams.ParticleParams[])
+---`Field Public Instance`
+---@field DamageEmitters (System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams)|(Barotrauma.CharacterParams.ParticleParams[])
+---`Field Public Instance`
+---@field Inventories (System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams)|(Barotrauma.CharacterParams.InventoryParams[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesTranslationOverride Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Group Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Humanoid System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasInfo System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanInteract System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanClimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceSlowClimbing System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Husk System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HuskedSpecies Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NonHuskedSpecies Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseHuskAppendage System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsAir System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeedsWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHumanAI System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsMachine System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanSpeak System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShowHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseBossHealthBar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Noise System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Visibility System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BloodDecal System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BleedParticleAir System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BleedParticleWater System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BleedParticleMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanEat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EatingSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsePathFinding System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PathFinderPriority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideInSonar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideInThermalGoggles System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SonarDisruption System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistantSonarRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawLast System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AITurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AISlowTurretPriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DespawnContainer Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VariantFile System.Xml.Linq.XDocument
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Health Barotrauma.CharacterParams.HealthParams
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AI Barotrauma.CharacterParams.AIParams
+---`Getter Public Instance Virtual`
+---@field MainElement Barotrauma.ContentXElement
+_G['CharacterParams'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.String
+_G['CharacterParams'].GetName = function() end
+
+---`Method Public Static`
+---@param variantXML Barotrauma.ContentXElement
+---@param baseXML Barotrauma.ContentXElement
+---@return System.Xml.Linq.XElement
+_G['CharacterParams'].CreateVariantXml = function(variantXML, baseXML) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['CharacterParams'].Load = function() end
+
+---`Method Public Instance`
+---@param fileNameWithoutExtension? System.String
+---@return System.Boolean
+_G['CharacterParams'].Save = function(fileNameWithoutExtension) end
+
+---`Method Public Instance Virtual`
+---@param forceReload? System.Boolean
+---@return System.Boolean
+_G['CharacterParams'].Reset = function(forceReload) end
+
+---`Method Public Static`
+---@param group1 Barotrauma.Identifier
+---@param group2 Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterParams'].CompareGroup = function(group1, group2) end
+
+---`Method NonPublic Instance`
+_G['CharacterParams'].CreateSubParams = function() end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@param loadDefaultValues? System.Boolean
+---@return System.Boolean
+_G['CharacterParams'].Deserialize = function(element, alsoChildren, recursive, loadDefaultValues) end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['CharacterParams'].Serialize = function(element, alsoChildren, recursive) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['CharacterParams'].AddSound = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddInventory = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddBloodEmitter = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddGibEmitter = function() end
+
+---`Method Public Instance`
+_G['CharacterParams'].AddDamageEmitter = function() end
+
+---`Method Private Instance`
+---@param type System.String
+_G['CharacterParams'].AddEmitter = function(type) end
+
+---`Method Public Instance`
+---@param soundParams Barotrauma.CharacterParams.SoundParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveSound = function(soundParams) end
+
+---`Method Public Instance`
+---@param emitter Barotrauma.CharacterParams.ParticleParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveBloodEmitter = function(emitter) end
+
+---`Method Public Instance`
+---@param emitter Barotrauma.CharacterParams.ParticleParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveGibEmitter = function(emitter) end
+
+---`Method Public Instance`
+---@param emitter Barotrauma.CharacterParams.ParticleParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveDamageEmitter = function(emitter) end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.CharacterParams.InventoryParams
+---@return System.Boolean
+_G['CharacterParams'].RemoveInventory = function(inventory) end
+
+---`Method NonPublic Instance`
+---@param subParam Barotrauma.CharacterParams.T
+---@param collection? (System.Collections.Generic.IList*1Barotrauma*CharacterParams*T)|(Barotrauma.CharacterParams.T[])
+---@return System.Boolean
+_G['CharacterParams'].RemoveSubParam = function(subParam, collection) end
+
+---`Method NonPublic Instance`
+---@param element Barotrauma.ContentXElement
+---@param constructor (System.Func*1Barotrauma*ContentXElement*1Barotrauma*CharacterParams*1Barotrauma*CharacterParams*T)|(fun(arg1:Barotrauma.ContentXElement, arg2:Barotrauma.CharacterParams):(Barotrauma.CharacterParams.T))
+---@param subParam Barotrauma.T-ref
+---@param collection? (System.Collections.Generic.IList*1Barotrauma*CharacterParams*T)|(Barotrauma.CharacterParams.T[])
+---@param filter? (System.Func*1System*Collections*Generic*IList*2Barotrauma*CharacterParams*T*1System*Boolean)|(fun(arg:(System.Collections.Generic.IList*1Barotrauma*CharacterParams*T)|(Barotrauma.CharacterParams.T[])):(System.Boolean))
+---@return System.Boolean
+_G['CharacterParams'].TryAddSubParam = function(element, constructor, subParam, collection, filter) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterParams'].HasTag = function(tag) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.CharacterFile
+---@return Barotrauma.CharacterParams
+_G['CharacterParams'] = function(file) end
+
+---`Constructor Public Instance`
+---@param file Barotrauma.CharacterFile
+---@return Barotrauma.CharacterParams
+_G['CharacterParams'].__new = function(file) end
+
diff --git a/Meta/Types/server/_00007FFD968F5E30.lua b/Meta/Types/server/_00007FFD968F5E30.lua
new file mode 100644
index 0000000..2b2ddd2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F5E30.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.CharacterParams.SubParam : System.Object
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Element Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubParams (System.Collections.Generic.List*1Barotrauma*CharacterParams*SubParam)|(Barotrauma.CharacterParams.SubParam[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Character Barotrauma.CharacterParams
+_G['CharacterParams']['SubParam'] = {}
+
+---`Method NonPublic Instance`
+---@param name System.String
+---@param ... System.Object
+---@return Barotrauma.ContentXElement
+_G['CharacterParams']['SubParam'].CreateElement = function(name, ...) end
+
+---`Method Public Instance Virtual`
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['CharacterParams']['SubParam'].Deserialize = function(recursive) end
+
+---`Method Public Instance Virtual`
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['CharacterParams']['SubParam'].Serialize = function(recursive) end
+
+---`Method Public Instance Virtual`
+_G['CharacterParams']['SubParam'].Reset = function() end
+
+---`Method NonPublic Instance`
+---@param subParam Barotrauma.CharacterParams.SubParam.T
+---@param collection? (System.Collections.Generic.IList*1Barotrauma*CharacterParams*SubParam*T)|(Barotrauma.CharacterParams.SubParam.T[])
+---@return System.Boolean
+_G['CharacterParams']['SubParam'].RemoveSubParam = function(subParam, collection) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SubParam
+_G['CharacterParams']['SubParam'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SubParam
+_G['CharacterParams']['SubParam'].__new = function(element, character) end
+
diff --git a/Meta/Types/server/_00007FFD968F6A50.lua b/Meta/Types/server/_00007FFD968F6A50.lua
new file mode 100644
index 0000000..11bb356
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F6A50.lua
@@ -0,0 +1,179 @@
+---@meta
+---@class Barotrauma.CharacterParams.AIParams : Barotrauma.CharacterParams.SubParam
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*CharacterParams*TargetParams)|(Barotrauma.CharacterParams.TargetParams[])
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CombatStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sight System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Hearing System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPerceptionDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressionHurt System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressionGreed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FleeHealthThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttackWhenProvoked System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidGunfire System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AvoidTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinFleeTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressiveBoarding System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EnforceAggressiveBehaviorForMissions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetOuterWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RandomAttack System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanOpenDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsePathFindingToGetInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KeepDoorsClosed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvoidAbyss System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StayInAbyss System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PatrolFlooded System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PatrolDry System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartAggression System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxAggression System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AggressionCumulation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WallTargetingMethod Barotrauma.WallTargetingMethod
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayDeadProbability System.Single
+---`Getter Public Instance`
+---@field Targets (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['CharacterParams']['AIParams'] = {}
+
+---`Method Private Instance`
+---@param targetElement Barotrauma.ContentXElement
+---@param target Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryAddTarget = function(targetElement, target) end
+
+---`Method Private Instance`
+---@param targetElement Barotrauma.ContentXElement
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['AIParams'].AddTarget = function(targetElement) end
+
+---`Method Public Instance`
+---@param targetParams Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryAddEmptyTarget = function(targetParams) end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String, state:Barotrauma.AIState, priority:System.Single, targetParams:Barotrauma.TargetParams-ref):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@param state Barotrauma.AIState
+---@param priority System.Single
+---@param targetParams Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryAddNewTarget = function(tag, state, priority, targetParams) end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].HasTag = function(tag) end
+
+---`Method Public Instance`
+---@param target Barotrauma.CharacterParams.TargetParams
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].RemoveTarget = function(target) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*CharacterParams*TargetParams*1System*Boolean)|(fun(arg:Barotrauma.CharacterParams.TargetParams):(System.Boolean))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['CharacterParams']['AIParams'].GetMatchingTargets = function(predicate) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier):((System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams)))
+---@param target Barotrauma.Character
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['CharacterParams']['AIParams'].GetTargets = function(target) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier):(Barotrauma.CharacterParams.TargetParams)
+---@param target Barotrauma.Character
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['AIParams'].GetHighestPriorityTarget = function(target) end
+
+---`Method Private Static`
+---@param targetParams (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['AIParams'].GetHighestPriorityTarget = function(targetParams) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier, targetParams:System.Collections.Generic.IEnumerable):(System.Boolean)
+---@param target Barotrauma.Character
+---@param targetParams System.Collections.Generic.IEnumerable
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryGetTargets = function(target, targetParams) end
+
+---`Method Public Instance`
+---@overload fun(target:Barotrauma.Identifier, targetParams:Barotrauma.TargetParams-ref):(System.Boolean)
+---@overload fun(target:Barotrauma.Character, targetParams:Barotrauma.TargetParams-ref):(System.Boolean)
+---@param tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param target Barotrauma.TargetParams-ref
+---@return System.Boolean
+_G['CharacterParams']['AIParams'].TryGetHighestPriorityTarget = function(tags, target) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.AIParams
+_G['CharacterParams']['AIParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.AIParams
+_G['CharacterParams']['AIParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/server/_00007FFD968F7050.lua b/Meta/Types/server/_00007FFD968F7050.lua
new file mode 100644
index 0000000..1a3c8ea
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F7050.lua
@@ -0,0 +1,73 @@
+---@meta
+---@class Barotrauma.CharacterParams.HealthParams : Barotrauma.CharacterParams.SubParam
+---`Field Private Instance`
+---@field _immunityIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Vitality System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DoesBleed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHealthWindow System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BleedingReduction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BurnReduction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConstantHealthRegeneration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthRegenerationWhenEating System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StunImmunity System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoisonImmunity System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoisonVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EmpVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyMovementPenalties System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DieFromBeheading System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSeveringLegs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ApplyAfflictionColors System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Immunities System.String
+---`Getter Public Instance`
+---@field ImmunityIdentifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['CharacterParams']['HealthParams'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.HealthParams
+_G['CharacterParams']['HealthParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.HealthParams
+_G['CharacterParams']['HealthParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/server/_00007FFD968F7318.lua b/Meta/Types/server/_00007FFD968F7318.lua
new file mode 100644
index 0000000..cb00c27
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F7318.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.CharacterParams.InventoryParams : Barotrauma.CharacterParams.SubParam
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Slots System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccessibleWhenAlive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Commonness System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Items (System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams*InventoryItem)|(Barotrauma.CharacterParams.InventoryParams.InventoryItem[])
+_G['CharacterParams']['InventoryParams'] = {}
+
+---`Method Public Instance`
+---@param identifier? System.String
+_G['CharacterParams']['InventoryParams'].AddItem = function(identifier) end
+
+---`Method Public Instance`
+---@param item Barotrauma.CharacterParams.InventoryParams.InventoryItem
+---@return System.Boolean
+_G['CharacterParams']['InventoryParams'].RemoveItem = function(item) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.InventoryParams
+_G['CharacterParams']['InventoryParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.InventoryParams
+_G['CharacterParams']['InventoryParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/server/_00007FFD968F77C0.lua b/Meta/Types/server/_00007FFD968F77C0.lua
new file mode 100644
index 0000000..f2affa3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F77C0.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.CharacterParams.ParticleParams : Barotrauma.CharacterParams.SubParam
+---`Field Private Instance`
+---@field name System.String
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Particle System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngleMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AngleMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VelocityMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EmitInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticlesPerSecond System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ParticleAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HighQualityCollisionDetection System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CopyEntityAngle System.Boolean
+_G['CharacterParams']['ParticleParams'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.ParticleParams
+_G['CharacterParams']['ParticleParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.ParticleParams
+_G['CharacterParams']['ParticleParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/server/_00007FFD968F7A88.lua b/Meta/Types/server/_00007FFD968F7A88.lua
new file mode 100644
index 0000000..409a818
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F7A88.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.CharacterParams.SoundParams : Barotrauma.CharacterParams.SubParam
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field File System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Volume System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['CharacterParams']['SoundParams'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SoundParams
+_G['CharacterParams']['SoundParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.SoundParams
+_G['CharacterParams']['SoundParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/server/_00007FFD968F84C8.lua b/Meta/Types/server/_00007FFD968F84C8.lua
new file mode 100644
index 0000000..0893d9b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F84C8.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.AIState : System.Enum
+---`Field Public Static`
+---@field Idle Barotrauma.AIState
+---`Field Public Static`
+---@field Attack Barotrauma.AIState
+---`Field Public Static`
+---@field Escape Barotrauma.AIState
+---`Field Public Static`
+---@field Eat Barotrauma.AIState
+---`Field Public Static`
+---@field Flee Barotrauma.AIState
+---`Field Public Static`
+---@field Avoid Barotrauma.AIState
+---`Field Public Static`
+---@field Aggressive Barotrauma.AIState
+---`Field Public Static`
+---@field PassiveAggressive Barotrauma.AIState
+---`Field Public Static`
+---@field Protect Barotrauma.AIState
+---`Field Public Static`
+---@field Observe Barotrauma.AIState
+---`Field Public Static`
+---@field Freeze Barotrauma.AIState
+---`Field Public Static`
+---@field Follow Barotrauma.AIState
+---`Field Public Static`
+---@field FleeTo Barotrauma.AIState
+---`Field Public Static`
+---@field Patrol Barotrauma.AIState
+---`Field Public Static`
+---@field PlayDead Barotrauma.AIState
+---`Field Public Static`
+---@field HideTo Barotrauma.AIState
+---`Field Public Static`
+---@field Hiding Barotrauma.AIState
+_G['AIState'] = {}
+
diff --git a/Meta/Types/server/_00007FFD968F8618.lua b/Meta/Types/server/_00007FFD968F8618.lua
new file mode 100644
index 0000000..806ac39
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F8618.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.AttackPattern : System.Enum
+---`Field Public Static`
+---@field Straight Barotrauma.AttackPattern
+---`Field Public Static`
+---@field Sweep Barotrauma.AttackPattern
+---`Field Public Static`
+---@field Circle Barotrauma.AttackPattern
+_G['AttackPattern'] = {}
+
diff --git a/Meta/Types/server/_00007FFD968F8790.lua b/Meta/Types/server/_00007FFD968F8790.lua
new file mode 100644
index 0000000..4d6b9c5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F8790.lua
@@ -0,0 +1,125 @@
+---@meta
+---@class Barotrauma.CharacterParams.TargetParams : Barotrauma.CharacterParams.SubParam
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tag Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field State Barotrauma.AIState
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Priority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReactDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttackDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Timer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreContained System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreTargetInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreTargetOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreIfNotInSameSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreIncapacitated System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Threshold System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ThresholdMin System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ThresholdMax System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PerceptionDistanceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxPerceptionDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttackPattern Barotrauma.AttackPattern
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PrioritizeSubCenter System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SweepDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SweepStrength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SweepSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleStartDistance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreTargetSize System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleRotationSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DynamicCircleRotationSpeed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleRandomRotationFactor System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleStrikeDistanceMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CircleMaxRandomOffset System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Conditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+_G['CharacterParams']['TargetParams'] = {}
+
+---`Method Public Static`
+---@overload fun(character:Barotrauma.CharacterParams, tag:Barotrauma.Identifier, state:Barotrauma.AIState, priority:System.Single):(Barotrauma.ContentXElement)
+---@param character Barotrauma.CharacterParams
+---@param tag System.String
+---@param state Barotrauma.AIState
+---@param priority System.Single
+---@return Barotrauma.ContentXElement
+_G['CharacterParams']['TargetParams'].CreateNewElement = function(character, tag, state, priority) end
+
+---`Constructor Public Instance`
+---@overload fun(tag:System.String, state:Barotrauma.AIState, priority:System.Single, character:Barotrauma.CharacterParams):Barotrauma.CharacterParams.TargetParams
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['TargetParams'] = function(element, character) end
+
+---`Constructor Public Instance`
+---@overload fun(tag:System.String, state:Barotrauma.AIState, priority:System.Single, character:Barotrauma.CharacterParams):Barotrauma.CharacterParams.TargetParams
+---@param element Barotrauma.ContentXElement
+---@param character Barotrauma.CharacterParams
+---@return Barotrauma.CharacterParams.TargetParams
+_G['CharacterParams']['TargetParams'].__new = function(element, character) end
+
diff --git a/Meta/Types/server/_00007FFD968F8B20.lua b/Meta/Types/server/_00007FFD968F8B20.lua
new file mode 100644
index 0000000..39657b2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F8B20.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.CreatureMetrics : System.Object
+---`Field Private Static`
+---@field vanillaCharacters (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterFile)|(fun():(Barotrauma.CharacterFile))
+---`Field Private Static`
+---@field path System.String
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field RecentlyEncountered (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Encountered (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Unlocked (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Killed (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field IsInitialized System.Boolean
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field UnlockAll System.Boolean
+_G['CreatureMetrics'] = {}
+
+---`Method Public Static`
+_G['CreatureMetrics'].Init = function() end
+
+---`Method Private Static`
+_G['CreatureMetrics'].Load = function() end
+
+---`Method Public Static`
+_G['CreatureMetrics'].Save = function() end
+
+---`Method Public Static`
+---@param species Barotrauma.Identifier
+_G['CreatureMetrics'].RecordKill = function(species) end
+
+---`Method Public Static`
+---@param species Barotrauma.Identifier
+_G['CreatureMetrics'].AddEncounter = function(species) end
+
+---`Method Public Static`
+---@param species Barotrauma.Identifier
+_G['CreatureMetrics'].UnlockInEditor = function(species) end
+
+---`Method Private Static`
+_G['CreatureMetrics'].SyncSets = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.CreatureMetrics
+_G['CreatureMetrics'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.CreatureMetrics
+_G['CreatureMetrics'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968F9A98.lua b/Meta/Types/server/_00007FFD968F9A98.lua
new file mode 100644
index 0000000..1016930
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968F9A98.lua
@@ -0,0 +1,384 @@
+---@meta
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior : System.Object
+---`Field Private Instance`
+---@field damageUpdateTimer System.Single
+---`Field Public Instance`
+---@field debugSearchLines (System.Collections.Generic.List*1System*Tuple*2Microsoft*Xna*Framework*Vector2*2Microsoft*Xna*Framework*Vector2)|(System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field availablePower System.Single
+---`Field Private Instance`
+---@field anger System.Single
+---`Field Public Instance`
+---@field Offset Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ClaimedTargets (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field ClaimedJunctionBoxes (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerTransfer)|(Barotrauma.Items.Components.PowerTransfer[])
+---`Field Public Instance`
+---@field ClaimedBatteries (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerContainer)|(Barotrauma.Items.Components.PowerContainer[])
+---`Field Public Instance`
+---@field IgnoredTargets (System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32)|({[Barotrauma.Item]:(System.Int32)})
+---`Field Private Instance`
+---@field tempClaimedTargets (System.Collections.Generic.List*1System*Tuple*2System*UInt16*2System*Int32)|(System.Tuple*1System*UInt16*1System*Int32[])
+---`Field Private Instance`
+---@field flowerVariants System.Int32
+---`Field Private Instance`
+---@field leafVariants System.Int32
+---`Field Public Instance`
+---@field Targets (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior*AITarget)|(Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AITarget[])
+---`Field Public Instance`
+---@field PowerConsumptionTimer System.Single
+---`Field Private Instance`
+---@field defenseCooldown System.Single
+---`Field Private Instance`
+---@field toxinsCooldown System.Single
+---`Field Private Instance`
+---@field fireCheckCooldown System.Single
+---`Field Private Instance`
+---@field selfDamageTimer System.Single
+---`Field Private Instance`
+---@field toxinsTimer System.Single
+---`Field Private Instance`
+---@field toxinsSpawnTimer System.Single
+---`Field Private Instance`
+---@field branchesVulnerableToFire (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|(Barotrauma.MapCreatures.Behavior.BallastFloraBranch[])
+---`Field Public Instance`
+---@field Branches (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|(Barotrauma.MapCreatures.Behavior.BallastFloraBranch[])
+---`Field Private Instance`
+---@field root Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Field Private Instance`
+---@field bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field isDead System.Boolean
+---`Field Public Instance`
+---@field StateMachine Barotrauma.MapCreatures.Behavior.BallastFloraStateMachine
+---`Field Public Instance`
+---@field GrowthWarps System.Int32
+---`Field Private Instance`
+---@field toBeRemoved (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|(Barotrauma.MapCreatures.Behavior.BallastFloraBranch[])
+---`Field Private Static`
+---@field _entityList (System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior)|(Barotrauma.MapCreatures.Behavior.BallastFloraBehavior[])
+---`Field Private Static`
+---@field DamageUpdateInterval System.Single
+---`Getter Public Static`
+---@field EntityList (System.Collections.Generic.IEnumerable*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior)|(fun():(Barotrauma.MapCreatures.Behavior.BallastFloraBehavior))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseBranchScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseFlowerScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseLeafScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowerProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LeafProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseInflateSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseDeflateSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BreakthroughPoint System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HasBrokenThrough System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Sight System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BranchHealth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RootHealth System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthRegenPerBranch System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxBranchHealthRegenDistance System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RootColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumptionMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumptionMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumptionDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerRequirement System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxAnger System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPowerCapacity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttackItemPrefab Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExplosionResistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubmergedWaterResistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BranchDepth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BurstSound System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvailablePower System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Anger System.Single
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Parent Barotrauma.Hull
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Prefab Barotrauma.BallastFloraPrefab
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['BallastFloraBehavior'] = {}
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].UpdatePowerDrain = function(deltaTime) end
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].UpdateFireSources = function() end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@return System.Boolean
+_G['BallastFloraBehavior'].IsInWater = function(branch) end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].SetHull = function(branch) end
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].GenerateRoot = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@return System.Single
+_G['BallastFloraBehavior'].GetGrowthSpeed = function(deltaTime) end
+
+---`Method Public Instance`
+---@param parent Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param side Barotrauma.Items.Components.TileSide
+---@param result System.Collections.Generic.List
+---@param isRootGrowth? System.Boolean
+---@param forcePosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return System.Boolean
+_G['BallastFloraBehavior'].TryGrowBranch = function(parent, side, result, isRootGrowth, forcePosition) end
+
+---`Method Private Instance`
+---@return System.Int32
+_G['BallastFloraBehavior'].GetDesiredRootGrowthAmount = function() end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param target Barotrauma.Item
+---@return System.Boolean
+_G['BallastFloraBehavior'].BranchContainsTarget = function(branch, target) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Item
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param load? System.Boolean
+_G['BallastFloraBehavior'].ClaimTarget = function(target, branch, load) end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param parent? Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].UpdateConnections = function(branch, parent) end
+
+---`Method Private Instance`
+---@param newBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].OnBranchGrowthSuccess = function(newBranch) end
+
+---`Method Private Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].CreateBody = function(branch) end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param amount System.Single
+---@param type Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AttackType
+---@param attacker? Barotrauma.Character
+_G['BallastFloraBehavior'].DamageBranch = function(branch, amount, type, attacker) end
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].CheckDisconnectedFromRoot = function() end
+
+---`Method Public Instance`
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].RemoveBranch = function(branch) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['BallastFloraBehavior'].RemoveClaim = function(item) end
+
+---`Method Public Instance`
+_G['BallastFloraBehavior'].Kill = function() end
+
+---`Method Public Instance`
+_G['BallastFloraBehavior'].Remove = function() end
+
+---`Method Private Instance`
+_G['BallastFloraBehavior'].BreakThrough = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['BallastFloraBehavior'].CanGrowMore = function() end
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param checkOtherBranches? System.Boolean
+---@return System.Boolean
+_G['BallastFloraBehavior'].CollidesWithWorld = function(rect, checkOtherBranches) end
+
+---`Method Private Static`
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['BallastFloraBehavior'].LineCollides = function(point1, point2) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param eventData Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.IEventData
+_G['BallastFloraBehavior'].ServerWrite = function(msg, eventData) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['BallastFloraBehavior'].ServerWriteSpawn = function(msg) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param parentId? System.Int32
+_G['BallastFloraBehavior'].ServerWriteBranchGrowth = function(msg, branch, parentId) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].ServerWriteBranchDamage = function(msg, branch) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param itemID System.UInt16
+---@param infect Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.InfectEventData.InfectState
+---@param infector? Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].ServerWriteInfect = function(msg, itemID, infect, infector) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param branch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBehavior'].ServerWriteBranchRemove = function(msg, branch) end
+
+---`Method Public Instance`
+---@param extraData Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.IEventData
+_G['BallastFloraBehavior'].CreateNetworkMessage = function(extraData) end
+
+---`Method Public Instance`
+_G['BallastFloraBehavior'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+---@return System.Int32
+_G['BallastFloraBehavior'].CreateID = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['BallastFloraBehavior'].GetWorldPosition = function() end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['BallastFloraBehavior'].LoadPrefab = function(element) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['BallastFloraBehavior'].LoadTargets = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['BallastFloraBehavior'].Save = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param idRemap Barotrauma.IdRemap
+_G['BallastFloraBehavior'].LoadSave = function(element, idRemap) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].UpdateDamage = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['BallastFloraBehavior'].UpdateSelfDamage = function(deltaTime) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'] = function(parent, prefab, offset, firstGrowth) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'].__new = function(parent, prefab, offset, firstGrowth) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'] = function(parent, prefab, offset, firstGrowth) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parent Barotrauma.Hull
+---@param prefab Barotrauma.BallastFloraPrefab
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param firstGrowth? System.Boolean
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['BallastFloraBehavior'].__new = function(parent, prefab, offset, firstGrowth) end
+
diff --git a/Meta/Types/server/_00007FFD968FA1E8.lua b/Meta/Types/server/_00007FFD968FA1E8.lua
new file mode 100644
index 0000000..43c265b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FA1E8.lua
@@ -0,0 +1,95 @@
+---@meta
+---@class Barotrauma.Items.Components.VineTile : System.Object
+---`Field Public Instance`
+---@field Sides Barotrauma.Items.Components.TileSide
+---`Field Public Instance`
+---@field BlockedSides Barotrauma.Items.Components.TileSide
+---`Field Public Instance`
+---@field FlowerConfig Barotrauma.Items.Components.FoliageConfig
+---`Field Public Instance`
+---@field LeafConfig Barotrauma.Items.Components.FoliageConfig
+---`Field Public Instance`
+---@field FailedGrowthAttempts System.Int32
+---`Field Public Instance`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field diameter System.Single
+---`Field Public Instance`
+---@field offset Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Type Barotrauma.Items.Components.VineTileType
+---`Field Public Instance`
+---@field AdjacentPositions (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Microsoft*Xna*Framework*Vector2)|({[Barotrauma.Items.Components.TileSide]:(Microsoft.Xna.Framework.Vector2)})
+---`Field Public Instance`
+---@field VineStep System.Single
+---`Field Public Instance`
+---@field FlowerStep System.Single
+---`Field Private Instance`
+---@field growthStep System.Single
+---`Field Public Instance`
+---@field HealthColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field DecayDelay System.Single
+---`Field Private Instance`
+---@field Parent Barotrauma.Items.Components.Growable
+---`Field Public Static`
+---@field Size System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrowthStep System.Single
+_G['Components']['VineTile'] = {}
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Components']['VineTile'].UpdateScale = function(deltaTime) end
+
+---`Method Public Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slotOffset Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['VineTile'].GetWorldPosition = function(planter, slotOffset) end
+
+---`Method Public Instance`
+_G['Components']['VineTile'].UpdateType = function() end
+
+---`Method Public Instance`
+---@param random? System.Random
+---@return Barotrauma.Items.Components.TileSide
+_G['Components']['VineTile'].GetRandomFreeSide = function(random) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['VineTile'].CanGrowMore = function() end
+
+---`Method Public Instance`
+---@param side Barotrauma.Items.Components.TileSide
+---@return System.Boolean
+_G['Components']['VineTile'].IsSideBlocked = function(side) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Components']['VineTile'].CreatePlantRect = function(pos) end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(parent:Barotrauma.Items.Components.Growable, position:Microsoft.Xna.Framework.Vector2, type:Barotrauma.Items.Components.VineTileType, flowerConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, leafConfig?:System.Nullable*1Barotrauma*Items*Components*FoliageConfig, rect?:System.Nullable*1Microsoft*Xna*Framework*Rectangle):Barotrauma.Items.Components.VineTile
+---@return Barotrauma.Items.Components.VineTile
+_G['Components']['VineTile'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD968FA4E0.lua b/Meta/Types/server/_00007FFD968FA4E0.lua
new file mode 100644
index 0000000..461a339
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FA4E0.lua
@@ -0,0 +1,87 @@
+---@meta
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBranch : Barotrauma.Items.Components.VineTile
+---`Field Public Instance`
+---@field ParentBallastFlora Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---`Field Public Instance`
+---@field ID System.Int32
+---`Field Public Instance`
+---@field ClaimedItem Barotrauma.Item
+---`Field Public Instance`
+---@field ClaimedItemId System.Int32
+---`Field Public Instance`
+---@field MaxHealth System.Single
+---`Field Private Instance`
+---@field health System.Single
+---`Field Public Instance`
+---@field RemoveTimer System.Single
+---`Field Public Instance`
+---@field SpawningItem System.Boolean
+---`Field Public Instance`
+---@field AttackItem Barotrauma.Item
+---`Field Public Instance`
+---@field IsRoot System.Boolean
+---`Field Public Instance`
+---@field IsRootGrowth System.Boolean
+---`Field Public Instance`
+---@field Removed System.Boolean
+---`Field Public Instance`
+---@field DisconnectedFromRoot System.Boolean
+---`Field Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Field Public Instance`
+---@field Pulse System.Single
+---`Field Private Instance`
+---@field inflate System.Boolean
+---`Field Private Instance`
+---@field pulseDelay System.Single
+---`Field Private Instance`
+---@field parentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Field Public Instance`
+---@field AccumulatedDamage System.Single
+---`Field Public Instance`
+---@field DamageVisualizationTimer System.Single
+---`Field Public Instance`
+---@field Connections (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch)|({[Barotrauma.Items.Components.TileSide]:(Barotrauma.MapCreatures.Behavior.BallastFloraBranch)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ParentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BranchDepth System.Int32
+_G['BallastFloraBranch'] = {}
+
+---`Method Public Instance`
+_G['BallastFloraBranch'].UpdateHealth = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param inflateSpeed System.Single
+---@param deflateSpeed System.Single
+---@param delay System.Single
+_G['BallastFloraBranch'].UpdatePulse = function(deltaTime, inflateSpeed, deflateSpeed, delay) end
+
+---`Constructor Public Instance`
+---@param parent Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param position Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.Items.Components.VineTileType
+---@param flowerConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param leafConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param rect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBranch'] = function(parent, parentBranch, position, type, flowerConfig, leafConfig, rect) end
+
+---`Constructor Public Instance`
+---@param parent Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+---@param parentBranch Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---@param position Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.Items.Components.VineTileType
+---@param flowerConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param leafConfig? System.Nullable*1Barotrauma*Items*Components*FoliageConfig
+---@param rect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+_G['BallastFloraBranch'].__new = function(parent, parentBranch, position, type, flowerConfig, leafConfig, rect) end
+
diff --git a/Meta/Types/server/_00007FFD968FAB50.lua b/Meta/Types/server/_00007FFD968FAB50.lua
new file mode 100644
index 0000000..f9273f7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FAB50.lua
@@ -0,0 +1,111 @@
+---@meta
+---@class Barotrauma.PetBehavior : System.Object
+---`Field Private Instance`
+---@field hunger System.Single
+---`Field Private Instance`
+---@field happiness System.Single
+---`Field Private Instance`
+---@field itemsToProduce (System.Collections.Generic.List*1Barotrauma*PetBehavior*ItemProduction)|(Barotrauma.PetBehavior.ItemProduction[])
+---`Field Private Instance`
+---@field foods (System.Collections.Generic.List*1Barotrauma*PetBehavior*Food)|(Barotrauma.PetBehavior.Food[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hunger System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Happiness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UnhappyThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HappyThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHappiness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideStatusIndicators System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HungryThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHunger System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HappinessDecreaseRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HungerIncreaseRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayCooldown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ToggleOwner System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field UnstunY System.Nullable*1System*Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AIController Barotrauma.EnemyAIController
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Owner Barotrauma.Character
+_G['PetBehavior'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.PetBehavior.StatusIndicatorType
+_G['PetBehavior'].GetCurrentStatusIndicatorType = function() end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@overload fun(character:Barotrauma.Character):(System.Boolean)
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['PetBehavior'].OnEat = function(tag) end
+
+---`Method Private Instance`
+---@param tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['PetBehavior'].OnEat = function(tags) end
+
+---`Method Public Instance`
+---@param player Barotrauma.Character
+_G['PetBehavior'].Play = function(player) end
+
+---`Method Public Instance`
+---@return System.String
+_G['PetBehavior'].GetTagName = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['PetBehavior'].Update = function(deltaTime) end
+
+---`Method Public Static`
+---@param petsElement System.Xml.Linq.XElement
+_G['PetBehavior'].SavePets = function(petsElement) end
+
+---`Method Public Static`
+---@param petsElement System.Xml.Linq.XElement
+_G['PetBehavior'].LoadPets = function(petsElement) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param aiController Barotrauma.EnemyAIController
+---@return Barotrauma.PetBehavior
+_G['PetBehavior'] = function(element, aiController) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param aiController Barotrauma.EnemyAIController
+---@return Barotrauma.PetBehavior
+_G['PetBehavior'].__new = function(element, aiController) end
+
diff --git a/Meta/Types/server/_00007FFD968FAE30.lua b/Meta/Types/server/_00007FFD968FAE30.lua
new file mode 100644
index 0000000..cd27b66
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FAE30.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.SwarmBehavior : System.Object
+---`Field Private Instance`
+---@field minDistFromClosest System.Single
+---`Field Private Instance`
+---@field maxDistFromCenter System.Single
+---`Field Private Instance`
+---@field cohesion System.Single
+---`Field Private Instance`
+---@field ai Barotrauma.EnemyAIController
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Members (System.Collections.Generic.List*1Barotrauma*AICharacter)|(Barotrauma.AICharacter[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ActiveMembers (System.Collections.Generic.HashSet*1Barotrauma*AICharacter)|(Barotrauma.AICharacter[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---@field IsEnoughMembers System.Boolean
+_G['SwarmBehavior'] = {}
+
+---`Method Public Static`
+---@param swarm (System.Collections.Generic.IEnumerable*1Barotrauma*AICharacter)|(fun():(Barotrauma.AICharacter))
+_G['SwarmBehavior'].CreateSwarm = function(swarm) end
+
+---`Method Public Instance`
+_G['SwarmBehavior'].Refresh = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['SwarmBehavior'].UpdateSteering = function(deltaTime) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param ai Barotrauma.EnemyAIController
+---@return Barotrauma.SwarmBehavior
+_G['SwarmBehavior'] = function(element, ai) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param ai Barotrauma.EnemyAIController
+---@return Barotrauma.SwarmBehavior
+_G['SwarmBehavior'].__new = function(element, ai) end
+
diff --git a/Meta/Types/server/_00007FFD968FB388.lua b/Meta/Types/server/_00007FFD968FB388.lua
new file mode 100644
index 0000000..b70ea2e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FB388.lua
@@ -0,0 +1,115 @@
+---@meta
+---@class Barotrauma.LatchOntoAI : System.Object
+---`Field Private Instance`
+---@field raycastTimer System.Single
+---`Field Private Instance`
+---@field targetBody FarseerPhysics.Dynamics.Body
+---`Field Private Instance`
+---@field attachSurfaceNormal Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field minDeattachSpeed System.Single
+---`Field Private Instance`
+---@field maxDeattachSpeed System.Single
+---`Field Private Instance`
+---@field maxAttachDuration System.Single
+---`Field Private Instance`
+---@field coolDown System.Single
+---`Field Private Instance`
+---@field damageOnDetach System.Single
+---`Field Private Instance`
+---@field detachStun System.Single
+---`Field Private Instance`
+---@field weld System.Boolean
+---`Field Private Instance`
+---@field deattachCheckTimer System.Single
+---`Field Private Instance`
+---@field _attachPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field attachCooldown System.Single
+---`Field Private Instance`
+---@field attachLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field localAttachPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field attachLimbRotation System.Single
+---`Field Private Instance`
+---@field jointDir System.Single
+---`Field Private Instance`
+---@field latchedDuration System.Single
+---`Field Private Instance`
+---@field freezeWhenLatched System.Boolean
+---`Field Private Static`
+---@field RaycastInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachToSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachToWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachToCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetSubmarine Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetWall Barotrauma.Structure
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetCharacter Barotrauma.Character
+---`Getter Public Instance`
+---@field AttachJoints (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttachPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---@field IsAttached System.Boolean
+---`Getter Public Instance`
+---@field IsAttachedToSub System.Boolean
+_G['LatchOntoAI'] = {}
+
+---`Method Public Instance`
+---@overload fun(wall:Barotrauma.Structure, attachPos:Microsoft.Xna.Framework.Vector2, attachSurfaceNormal:Microsoft.Xna.Framework.Vector2)
+---@overload fun(target:Barotrauma.Character)
+---@param levelWall Voronoi2.VoronoiCell
+_G['LatchOntoAI'].SetAttachTarget = function(levelWall) end
+
+---`Method Public Instance`
+---@param enemyAI Barotrauma.EnemyAIController
+---@param deltaTime System.Single
+_G['LatchOntoAI'].Update = function(enemyAI, deltaTime) end
+
+---`Method Public Instance`
+---@param attachPos Microsoft.Xna.Framework.Vector2
+---@param forceAttachSurfaceNormal? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param forceColliderSimPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['LatchOntoAI'].AttachToBody = function(attachPos, forceAttachSurfaceNormal, forceColliderSimPosition) end
+
+---`Method Public Instance`
+---@param reset System.Boolean
+---@param cooldown? System.Single
+_G['LatchOntoAI'].DeattachFromBody = function(reset, cooldown) end
+
+---`Method Private Instance`
+_G['LatchOntoAI'].Reset = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param causeOfDeath Barotrauma.CauseOfDeath
+_G['LatchOntoAI'].OnCharacterDeath = function(character, causeOfDeath) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param enemyAI Barotrauma.EnemyAIController
+---@return Barotrauma.LatchOntoAI
+_G['LatchOntoAI'] = function(element, enemyAI) end
+
+---`Constructor Public Instance`
+---@param element System.Xml.Linq.XElement
+---@param enemyAI Barotrauma.EnemyAIController
+---@return Barotrauma.LatchOntoAI
+_G['LatchOntoAI'].__new = function(element, enemyAI) end
+
diff --git a/Meta/Types/server/_00007FFD968FBFC8.lua b/Meta/Types/server/_00007FFD968FBFC8.lua
new file mode 100644
index 0000000..7f50552
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FBFC8.lua
@@ -0,0 +1,337 @@
+---@meta
+---@class Barotrauma.Order : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.OrderPrefab
+---`Field Public Instance`
+---@field Option Barotrauma.Identifier
+---`Field Public Instance`
+---@field ManualPriority System.Int32
+---`Field Public Instance`
+---@field Type Barotrauma.Order.OrderType
+---`Field Public Instance`
+---@field Objective Barotrauma.AIObjective
+---`Field Public Instance`
+---@field TargetEntity Barotrauma.Entity
+---`Field Public Instance`
+---@field TargetItemComponent Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field ConnectedController Barotrauma.Items.Components.Controller
+---`Field Public Instance`
+---@field OrderGiver Barotrauma.Character
+---`Field Public Instance`
+---@field TargetPosition Barotrauma.OrderTarget
+---`Field Private Instance`
+---@field targetSpatialEntity Barotrauma.ISpatialEntity
+---`Field Public Instance`
+---@field TargetType Barotrauma.Order.OrderTargetType
+---`Field Public Instance`
+---@field WallSectionIndex System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field UseController System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentOrder System.Boolean
+---`Getter Public Instance`
+---@field IsDismissal System.Boolean
+---`Getter Public Instance`
+---@field TargetSpatialEntity Barotrauma.ISpatialEntity
+---`Getter Public Instance`
+---@field TargetHull Barotrauma.Hull
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field ContextualName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field ItemComponentType System.Type
+---`Getter Public Instance`
+---@field CanTypeBeSubclass System.Boolean
+---`Getter Public Instance`
+---@field ControllerTags System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field TargetItems System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field RequireItems System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field Options System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field HiddenOptions System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field AllOptions System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field SymbolSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field TargetAllCharacters System.Boolean
+---`Getter Public Instance`
+---@field AppropriateJobs System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field FadeOutTime System.Single
+---`Getter Public Instance`
+---@field MustSetTarget System.Boolean
+---`Getter Public Instance`
+---@field AppropriateSkill Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Category System.Nullable*1Barotrauma*OrderCategory
+---`Getter Public Instance`
+---@field MustManuallyAssign System.Boolean
+---`Getter Public Instance`
+---@field IsIgnoreOrder System.Boolean
+---`Getter Public Instance`
+---@field IsDeconstructOrder System.Boolean
+---`Getter Public Instance`
+---@field DrawIconWhenContained System.Boolean
+---`Getter Public Instance`
+---@field Hidden System.Boolean
+---`Getter Public Instance`
+---@field IgnoreAtOutpost System.Boolean
+---`Getter Public Instance`
+---@field IsReport System.Boolean
+---`Getter Public Instance`
+---@field AutoDismiss System.Boolean
+---`Getter Public Instance`
+---@field AssignmentPriority System.Int32
+---`Getter Public Instance`
+---@field ColoredWhenControllingGiver System.Boolean
+---`Getter Public Instance`
+---@field DisplayGiverInTooltip System.Boolean
+_G['Order'] = {}
+
+---`Method Public Instance`
+---@param option Barotrauma.Identifier
+---@return Barotrauma.Order
+_G['Order'].WithOption = function(option) end
+
+---`Method Public Instance`
+---@param newPriority System.Int32
+---@return Barotrauma.Order
+_G['Order'].WithManualPriority = function(newPriority) end
+
+---`Method Public Instance`
+---@param orderGiver Barotrauma.Character
+---@return Barotrauma.Order
+_G['Order'].WithOrderGiver = function(orderGiver) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@return Barotrauma.Order
+_G['Order'].WithObjective = function(objective) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return Barotrauma.Order
+_G['Order'].WithTargetEntity = function(entity) end
+
+---`Method Public Instance`
+---@param spatialEntity Barotrauma.ISpatialEntity
+---@return Barotrauma.Order
+_G['Order'].WithTargetSpatialEntity = function(spatialEntity) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param component? Barotrauma.Items.Components.ItemComponent
+---@return Barotrauma.Order
+_G['Order'].WithItemComponent = function(item, component) end
+
+---`Method Public Instance`
+---@param wall Barotrauma.Structure
+---@param sectionIndex System.Nullable*1System*Int32
+---@return Barotrauma.Order
+_G['Order'].WithWallSection = function(wall, sectionIndex) end
+
+---`Method Public Instance`
+---@param type Barotrauma.Order.OrderType
+---@return Barotrauma.Order
+_G['Order'].WithType = function(type) end
+
+---`Method Public Instance`
+---@param targetPosition Barotrauma.OrderTarget
+---@return Barotrauma.Order
+_G['Order'].WithTargetPosition = function(targetPosition) end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['Order'].Clone = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['Order'].GetDismissal = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Order'].HasAppropriateJob = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Order'].HasPreferredJob = function(character) end
+
+---`Method Public Instance`
+---@param targetCharacterName System.String
+---@param targetRoomName System.String
+---@param givingOrderToSelf System.Boolean
+---@param orderOption? Barotrauma.Identifier
+---@param isNewOrder? System.Boolean
+---@return System.String
+_G['Order'].GetChatMessage = function(targetCharacterName, targetRoomName, givingOrderToSelf, orderOption, isNewOrder) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.ItemComponent
+_G['Order'].GetTargetItemComponent = function(item) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param firstMatchingComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return System.Boolean
+_G['Order'].TryGetTargetItemComponent = function(item, firstMatchingComponent) end
+
+---`Method Public Instance`
+---@overload fun(submarine:Barotrauma.Submarine, mustBelongToPlayerSub:System.Boolean, requiredTeam?:System.Nullable*1Barotrauma*CharacterTeamType, interactableFor?:Barotrauma.Character):((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))
+---@param mustBelongToPlayerSub System.Boolean
+---@param interactableFor? Barotrauma.Character
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Order'].GetMatchingItems = function(mustBelongToPlayerSub, interactableFor) end
+
+---`Method Public Instance`
+---@overload fun(id:System.String):(Barotrauma.LocalizedString)
+---@overload fun(id:Barotrauma.Identifier):(Barotrauma.LocalizedString)
+---@param index System.Int32
+---@return Barotrauma.LocalizedString
+_G['Order'].GetOptionName = function(index) end
+
+---`Method Public Static`
+---@param order Barotrauma.Order
+---@return Barotrauma.Identifier
+_G['Order'].GetDismissOrderOption = function(order) end
+
+---`Method Public Instance`
+---@overload fun(orderIdentifier:Barotrauma.Identifier, orderOption:Barotrauma.Identifier):(System.Boolean)
+---@param order Barotrauma.Order
+---@return System.Boolean
+_G['Order'].MatchesOrder = function(order) end
+
+---`Method Public Instance`
+---@param dismissOrderOption Barotrauma.Identifier
+---@return System.Boolean
+_G['Order'].MatchesDismissedOrder = function(dismissOrderOption) end
+
+---`Method Public Instance`
+---@param option? Barotrauma.Identifier
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['Order'].GetTargetItems = function(option) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Order'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'] = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'].__new = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
+---`Constructor Private Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'] = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
+---`Constructor Private Instance`
+---@overload fun(prefab:Barotrauma.OrderPrefab, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, targetEntity:Barotrauma.Entity, targetItem:Barotrauma.Items.Components.ItemComponent, orderGiver?:Barotrauma.Character, isAutonomous?:System.Boolean):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, target:Barotrauma.OrderTarget, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@overload fun(prefab:Barotrauma.OrderPrefab, option:Barotrauma.Identifier, manualPriority:System.Int32, orderType:Barotrauma.Order.OrderType, aiObjective:Barotrauma.AIObjective, wall:Barotrauma.Structure, sectionIndex:System.Nullable*1System*Int32, orderGiver?:Barotrauma.Character):Barotrauma.Order
+---@param other Barotrauma.Order
+---@param prefab? Barotrauma.OrderPrefab
+---@param option? Barotrauma.Identifier
+---@param manualPriority? System.Nullable*1System*Int32
+---@param type? System.Nullable*1Barotrauma*Order*OrderType
+---@param objective? Barotrauma.AIObjective
+---@param targetEntity? Barotrauma.Entity
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param connectedController? Barotrauma.Items.Components.Controller
+---@param orderGiver? Barotrauma.Character
+---@param targetPosition? Barotrauma.OrderTarget
+---@param targetType? System.Nullable*1Barotrauma*Order*OrderTargetType
+---@param wallSectionIndex? System.Nullable*1System*Int32
+---@param useController? System.Nullable*1System*Boolean
+---@return Barotrauma.Order
+_G['Order'].__new = function(other, prefab, option, manualPriority, type, objective, targetEntity, targetItemComponent, connectedController, orderGiver, targetPosition, targetType, wallSectionIndex, useController) end
+
diff --git a/Meta/Types/server/_00007FFD968FC1B0.lua b/Meta/Types/server/_00007FFD968FC1B0.lua
new file mode 100644
index 0000000..54f79af
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FC1B0.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.OrderTarget : System.Object
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Hull Barotrauma.Hull
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+_G['OrderTarget'] = {}
+
+---`Constructor Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param creatingFromExistingData? System.Boolean
+---@return Barotrauma.OrderTarget
+_G['OrderTarget'] = function(position, hull, creatingFromExistingData) end
+
+---`Constructor Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param creatingFromExistingData? System.Boolean
+---@return Barotrauma.OrderTarget
+_G['OrderTarget'].__new = function(position, hull, creatingFromExistingData) end
+
diff --git a/Meta/Types/server/_00007FFD968FC950.lua b/Meta/Types/server/_00007FFD968FC950.lua
new file mode 100644
index 0000000..3d90885
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FC950.lua
@@ -0,0 +1,209 @@
+---@meta
+---@class Barotrauma.AIController : System.Object
+---`Field Public Instance`
+---@field Enabled System.Boolean
+---`Field Public Instance`
+---@field Character Barotrauma.Character
+---`Field NonPublic Instance`
+---@field _lastAiTarget Barotrauma.AITarget
+---`Field NonPublic Instance`
+---@field _previousAiTarget Barotrauma.AITarget
+---`Field NonPublic Instance`
+---@field _selectedAiTarget Barotrauma.AITarget
+---`Field NonPublic Instance`
+---@field steeringManager Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field visibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---`Field Private Instance`
+---@field hullVisibilityTimer System.Single
+---`Field NonPublic Instance`
+---@field colliderWidth System.Single
+---`Field NonPublic Instance`
+---@field minGapSize System.Single
+---`Field NonPublic Instance`
+---@field colliderLength System.Single
+---`Field NonPublic Instance`
+---@field avoidLookAheadDistance System.Single
+---`Field Private Instance`
+---@field unequippedItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field escapeTargetSeekInterval System.Single
+---`Field Private Instance`
+---@field escapeTimer System.Single
+---`Field NonPublic Instance`
+---@field allGapsSearched System.Boolean
+---`Field NonPublic Instance`
+---@field unreachableGaps (System.Collections.Generic.HashSet*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Private Static`
+---@field hullVisibilityInterval System.Single
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field SelectedAiTarget Barotrauma.AITarget
+---`Getter Public Instance`
+---@field SteeringManager Barotrauma.SteeringManager
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Steering Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Velocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance Virtual`
+---@field CanFlip System.Boolean
+---`Getter Public Instance Virtual`
+---@field IsMentallyUnstable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VisibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---`Getter Public Instance`
+---@field IsCurrentPathNullOrUnreachable System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentPathUnreachable System.Boolean
+---`Getter Public Instance`
+---@field IsCurrentPathFinished System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsSteeringThroughGap System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsTryingToSteerThroughGap System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EscapeTarget Barotrauma.Gap
+_G['AIController'] = {}
+
+---`Method Public Instance`
+---@param requireNonDirty? System.Boolean
+---@param requireUnfinished? System.Boolean
+---@param nodePredicate? (System.Func*1Barotrauma*WayPoint*1System*Boolean)|(fun(arg:Barotrauma.WayPoint):(System.Boolean))
+---@return System.Boolean
+_G['AIController'].HasValidPath = function(requireNonDirty, requireUnfinished, nodePredicate) end
+
+---`Method Public Instance Virtual`
+---@param healer Barotrauma.Character
+---@param healAmount System.Single
+_G['AIController'].OnHealed = function(healer, healAmount) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['AIController'].OnAttacked = function(attacker, attackResult) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.AITarget
+_G['AIController'].SelectTarget = function(target) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIController'].Update = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIController'].Reset = function() end
+
+---`Method NonPublic Instance`
+_G['AIController'].ResetAITarget = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+_G['AIController'].FaceTarget = function(target) end
+
+---`Method Public Instance Virtual`
+---@overload fun(wall:Barotrauma.Structure, section:Barotrauma.WallSection, targetWorldPos:Microsoft.Xna.Framework.Vector2, deltaTime:System.Single):(System.Boolean)
+---@param gap Barotrauma.Gap
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param maxDistance? System.Single
+---@return System.Boolean
+_G['AIController'].SteerThroughGap = function(gap, targetWorldPos, deltaTime, maxDistance) end
+
+---`Method Public Instance`
+---@param wall Barotrauma.Structure
+---@param sectionIndex System.Int32
+---@param requiredHoleCount System.Int32
+---@return System.Boolean
+_G['AIController'].CanPassThroughHole = function(wall, sectionIndex, requiredHoleCount) end
+
+---`Method NonPublic Instance`
+---@param wall Barotrauma.Structure
+---@return System.Boolean
+_G['AIController'].IsWallDisabled = function(wall) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param targetInventory Barotrauma.CharacterInventory
+---@param equip System.Boolean
+---@param wear? System.Boolean
+---@param dropOtherIfCannotMove? System.Boolean
+---@param allowSwapping? System.Boolean
+---@param storeUnequipped? System.Boolean
+---@param targetTags? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['AIController'].TakeItem = function(item, targetInventory, equip, wear, dropOtherIfCannotMove, allowSwapping, storeUnequipped, targetTags) end
+
+---`Method Public Instance`
+---@param parentItem Barotrauma.Item
+---@param avoidDroppingInSea? System.Boolean
+_G['AIController'].UnequipEmptyItems = function(parentItem, avoidDroppingInSea) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param parentItem Barotrauma.Item
+---@param avoidDroppingInSea? System.Boolean
+_G['AIController'].UnequipEmptyItems = function(character, parentItem, avoidDroppingInSea) end
+
+---`Method Public Instance`
+---@param parentItem Barotrauma.Item
+---@param predicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param avoidDroppingInSea? System.Boolean
+---@param unequipMax? System.Nullable*1System*Int32
+_G['AIController'].UnequipContainedItems = function(parentItem, predicate, avoidDroppingInSea, unequipMax) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param parentItem Barotrauma.Item
+---@param predicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@param avoidDroppingInSea? System.Boolean
+---@param unequipMax? System.Nullable*1System*Int32
+_G['AIController'].UnequipContainedItems = function(character, parentItem, predicate, avoidDroppingInSea, unequipMax) end
+
+---`Method Public Instance`
+_G['AIController'].ReequipUnequipped = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['AIController'].Escape = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+---@param canAttackDoors System.Boolean
+---@return System.Boolean
+_G['AIController'].UpdateEscape = function(deltaTime, canAttackDoors) end
+
+---`Method Public Instance`
+_G['AIController'].ResetEscape = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param from Barotrauma.AIState
+---@param to Barotrauma.AIState
+_G['AIController'].OnStateChanged = function(from, to) end
+
+---`Method NonPublic Instance Virtual`
+---@param previousTarget Barotrauma.AITarget
+---@param newTarget Barotrauma.AITarget
+_G['AIController'].OnTargetChanged = function(previousTarget, newTarget) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@return Barotrauma.AIController
+_G['AIController'] = function(c) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@return Barotrauma.AIController
+_G['AIController'].__new = function(c) end
+
diff --git a/Meta/Types/server/_00007FFD968FDF48.lua b/Meta/Types/server/_00007FFD968FDF48.lua
new file mode 100644
index 0000000..ae53a45
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FDF48.lua
@@ -0,0 +1,586 @@
+---@meta
+---@class Barotrauma.EnemyAIController : Barotrauma.AIController
+---`Field Private Instance`
+---@field previousTargetingRestrictions Barotrauma.EnemyTargetingRestrictions
+---`Field Private Instance`
+---@field _state Barotrauma.AIState
+---`Field Public Instance`
+---@field TargetOutposts System.Boolean
+---`Field Private Instance`
+---@field updateTargetsInterval System.Single
+---`Field Private Instance`
+---@field updateMemoriesInverval System.Single
+---`Field Private Instance`
+---@field attackLimbSelectionInterval System.Single
+---`Field Private Instance`
+---@field outsideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field insideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field updateTargetsTimer System.Single
+---`Field Private Instance`
+---@field updateMemoriesTimer System.Single
+---`Field Private Instance`
+---@field attackLimbSelectionTimer System.Single
+---`Field Private Instance`
+---@field _attackLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field _previousAttackLimb Barotrauma.Limb
+---`Field Private Instance`
+---@field lastAttackUpdateTime System.Double
+---`Field Private Instance`
+---@field _activeAttack Barotrauma.Attack
+---`Field Private Instance`
+---@field currentTargetMemory Barotrauma.AITargetMemory
+---`Field Private Instance`
+---@field targetValue System.Single
+---`Field Private Instance`
+---@field currentTargetingParams Barotrauma.CharacterParams.TargetParams
+---`Field Private Instance`
+---@field targetMemories (System.Collections.Generic.Dictionary*1Barotrauma*AITarget*1Barotrauma*AITargetMemory)|({[Barotrauma.AITarget]:(Barotrauma.AITargetMemory)})
+---`Field Private Instance`
+---@field requiredHoleCount System.Int32
+---`Field Private Instance`
+---@field canAttackWalls System.Boolean
+---`Field Private Instance`
+---@field canAttackDoors System.Boolean
+---`Field Private Instance`
+---@field canAttackItems System.Boolean
+---`Field Private Instance`
+---@field canAttackCharacters System.Boolean
+---`Field Private Instance`
+---@field priorityFearIncreasement System.Single
+---`Field Private Instance`
+---@field memoryFadeTime System.Single
+---`Field Private Instance`
+---@field avoidTimer System.Single
+---`Field Private Instance`
+---@field observeTimer System.Single
+---`Field Private Instance`
+---@field sweepTimer System.Single
+---`Field Private Instance`
+---@field circleRotation System.Single
+---`Field Private Instance`
+---@field circleDir System.Single
+---`Field Private Instance`
+---@field inverseDir System.Boolean
+---`Field Private Instance`
+---@field breakCircling System.Boolean
+---`Field Private Instance`
+---@field circleRotationSpeed System.Single
+---`Field Private Instance`
+---@field circleOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field circleFallbackDistance System.Single
+---`Field Private Instance`
+---@field strikeTimer System.Single
+---`Field Private Instance`
+---@field aggressionIntensity System.Single
+---`Field Private Instance`
+---@field CirclePhase Barotrauma.CirclePhase
+---`Field Private Instance`
+---@field currentAttackIntensity System.Single
+---`Field Private Instance`
+---@field playDeadTimer System.Single
+---`Field Private Instance`
+---@field disableTailCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field myBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field reverse System.Boolean
+---`Field Private Instance`
+---@field maxSteeringBuffer System.Single
+---`Field Private Instance`
+---@field minSteeringBuffer System.Single
+---`Field Private Instance`
+---@field steeringBufferIncreaseSpeed System.Single
+---`Field Private Instance`
+---@field steeringBuffer System.Single
+---`Field Private Instance`
+---@field _aiParams Barotrauma.CharacterParams.AIParams
+---`Field Private Instance`
+---@field _targetingTags (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field movementMargin System.Single
+---`Field Private Instance`
+---@field targetHulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field hullWeights (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Private Instance`
+---@field patrolTarget Barotrauma.Hull
+---`Field Private Instance`
+---@field newPatrolTargetTimer System.Single
+---`Field Private Instance`
+---@field patrolTimerMargin System.Single
+---`Field Private Instance`
+---@field newPatrolTargetIntervalMin System.Single
+---`Field Private Instance`
+---@field newPatrolTargetIntervalMax System.Single
+---`Field Private Instance`
+---@field searchingNewHull System.Boolean
+---`Field Private Instance`
+---@field attackWorldPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field attackSimPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field reachTimer System.Single
+---`Field Private Instance`
+---@field attackLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field weights (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Private Instance`
+---@field aimTimer System.Single
+---`Field Private Instance`
+---@field visibilityCheckTimer System.Single
+---`Field Private Instance`
+---@field canSeeTarget System.Boolean
+---`Field Private Instance`
+---@field sinTime System.Single
+---`Field Private Instance`
+---@field blockCheckInterval System.Single
+---`Field Private Instance`
+---@field blockCheckTimer System.Single
+---`Field Private Instance`
+---@field isBlocked System.Boolean
+---`Field Private Instance`
+---@field attackVector System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field wallTarget Barotrauma.EnemyAIController.WallTarget
+---`Field Private Instance`
+---@field wallHits (System.Collections.Generic.List*1System*ValueTuple*2FarseerPhysics*Dynamics*Body*2System*Int32*2Microsoft*Xna*Framework*Vector2)|(System.ValueTuple*1FarseerPhysics*Dynamics*Body*1System*Int32*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field removals (System.Collections.Generic.List*1Barotrauma*AITarget)|(Barotrauma.AITarget[])
+---`Field Private Instance`
+---@field targetIgnoreTime System.Single
+---`Field Private Instance`
+---@field targetIgnoreTimer System.Single
+---`Field Private Instance`
+---@field ignoredTargets (System.Collections.Generic.HashSet*1Barotrauma*AITarget)|(Barotrauma.AITarget[])
+---`Field Private Instance`
+---@field stateResetCooldown System.Single
+---`Field Private Instance`
+---@field stateResetTimer System.Single
+---`Field Private Instance`
+---@field isStateChanged System.Boolean
+---`Field Private Instance`
+---@field activeTriggers (System.Collections.Generic.Dictionary*1Barotrauma*StatusEffect*AITrigger*1Barotrauma*CharacterParams*TargetParams)|({[Barotrauma.StatusEffect.AITrigger]:(Barotrauma.CharacterParams.TargetParams)})
+---`Field Private Instance`
+---@field inactiveTriggers (System.Collections.Generic.HashSet*1Barotrauma*StatusEffect*AITrigger)|(Barotrauma.StatusEffect.AITrigger[])
+---`Field Private Instance`
+---@field modifiedParams (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*IEnumerable*2Barotrauma*CharacterParams*TargetParams)|({[Barotrauma.Identifier]:((System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams)))})
+---`Field Private Instance`
+---@field tempParams (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*CharacterParams*TargetParams)|({[Barotrauma.Identifier]:(Barotrauma.CharacterParams.TargetParams)})
+---`Field Private Instance`
+---@field tempParamsList (System.Collections.Generic.List*1Barotrauma*CharacterParams*TargetParams)|(Barotrauma.CharacterParams.TargetParams[])
+---`Field Private Instance`
+---@field returnDir Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field returnTimer System.Single
+---`Field Private Instance`
+---@field targetLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Public Static`
+---@field DisableEnemyAI System.Boolean
+---`Field Public Static`
+---@field TargetingRestrictions Barotrauma.EnemyTargetingRestrictions
+---`Field Private Static`
+---@field minPriority System.Single
+---`Field Private Static`
+---@field PlayDeadCoolDown System.Single
+---`Field Private Static`
+---@field reachTimeOut System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field State Barotrauma.AIState
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PreviousState Barotrauma.AIState
+---`Getter Private Instance`
+---@field PathSteering Barotrauma.IndoorsSteeringManager
+---`Getter Private Instance`
+---@field IsAttackRunning System.Boolean
+---`Getter Private Instance`
+---@field IsCoolDownRunning System.Boolean
+---`Getter Public Instance`
+---@field CombatStrength System.Single
+---`Getter Private Instance`
+---@field Sight System.Single
+---`Getter Private Instance`
+---@field Hearing System.Single
+---`Getter Private Instance`
+---@field FleeHealthThreshold System.Single
+---`Getter Private Instance`
+---@field IsAggressiveBoarder System.Boolean
+---`Getter Private Instance`
+---@field FishAnimController Barotrauma.FishAnimController
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttackLimb Barotrauma.Limb
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ActiveAttack Barotrauma.Attack
+---`Getter Public Instance`
+---@field CurrentTargetMemory Barotrauma.AITargetMemory
+---`Getter Public Instance`
+---@field CanAttackDoors System.Boolean
+---`Getter Public Instance`
+---@field PriorityFearIncrement System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LatchOntoAI Barotrauma.LatchOntoAI
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SwarmBehavior Barotrauma.SwarmBehavior
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PetBehavior Barotrauma.PetBehavior
+---`Getter Public Instance`
+---@field CurrentTargetingParams Barotrauma.CharacterParams.TargetParams
+---`Getter Public Instance`
+---@field AttackHumans System.Boolean
+---`Getter Public Instance`
+---@field AttackRooms System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance Virtual`
+---@field CanFlip System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnattackableSubmarines (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Getter Private Instance`
+---@field IsBeingChased System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Reverse System.Boolean
+---`Getter Public Instance`
+---@field AIParams Barotrauma.CharacterParams.AIParams
+---`Getter Private Instance`
+---@field IsLatchedOnSub System.Boolean
+_G['EnemyAIController'] = {}
+
+---`Method Private Instance`
+---@overload fun(tag:Barotrauma.Identifier, state:Barotrauma.AIState, priority?:System.Nullable*1System*Single)
+---@param target Barotrauma.Character
+---@param state Barotrauma.AIState
+---@param priority? System.Nullable*1System*Single
+_G['EnemyAIController'].ChangeTargetState = function(target, state, priority) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].ResetOriginalState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param previousTarget Barotrauma.AITarget
+---@param newTarget Barotrauma.AITarget
+_G['EnemyAIController'].OnTargetChanged = function(previousTarget, newTarget) end
+
+---`Method NonPublic Instance Virtual`
+---@param from Barotrauma.AIState
+---@param to Barotrauma.AIState
+_G['EnemyAIController'].OnStateChanged = function(from, to) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].SetStateResetTimer = function() end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@return System.Single
+_G['EnemyAIController'].GetPerceivingRange = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@param dist? System.Single
+---@param distSquared? System.Single
+---@param checkVisibility? System.Boolean
+---@return System.Boolean
+_G['EnemyAIController'].CanPerceive = function(target, dist, distSquared, checkVisibility) end
+
+---`Method Public Instance`
+_G['EnemyAIController'].ReevaluateAttacks = function() end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param targetDir Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['EnemyAIController'].IsPositionInsideAllowedZone = function(pos, targetDir) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].SteerInsideLevel = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@overload fun(wall:Barotrauma.Structure, section:Barotrauma.WallSection, targetWorldPos:Microsoft.Xna.Framework.Vector2, deltaTime:System.Single):(System.Boolean)
+---@param gap Barotrauma.Gap
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param maxDistance? System.Single
+---@return System.Boolean
+_G['EnemyAIController'].SteerThroughGap = function(gap, targetWorldPos, deltaTime, maxDistance) end
+
+---`Method Public Instance`
+---@param wall Barotrauma.Structure
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['EnemyAIController'].CanPassThroughHole = function(wall, sectionIndex) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['EnemyAIController'].Escape = function(deltaTime) end
+
+---`Method Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param target Barotrauma.Character
+---@param targetLimbType? Barotrauma.LimbType
+---@return Barotrauma.Limb
+_G['EnemyAIController'].GetTargetLimb = function(attackLimb, target, targetLimbType) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Character
+_G['EnemyAIController'].GetOwner = function(item) end
+
+---`Method Private Instance`
+---@param range System.Single
+---@return System.Single
+_G['EnemyAIController'].GetPerceptionRange = function(range) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsTargetBeingChasedBy = function(target, character) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsBeingChasedBy = function(c) end
+
+---`Method Private Static`
+---@param target Barotrauma.AITarget
+---@return System.Boolean
+_G['EnemyAIController'].IsTargetInPlayerTeam = function(target) end
+
+---`Method Private Instance`
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsAttackingOwner = function(other) end
+
+---`Method Private Instance`
+---@overload fun(targetTag:Barotrauma.Identifier):((System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams)))
+---@param targetingTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))
+_G['EnemyAIController'].GetTargetParams = function(targetingTags) end
+
+---`Method Private Instance`
+---@param aiTarget Barotrauma.AITarget
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['EnemyAIController'].GetTargetingTags = function(aiTarget) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.AITarget
+_G['EnemyAIController'].SelectTarget = function(target) end
+
+---`Method Public Instance`
+---@param target Barotrauma.AITarget
+---@param priority System.Single
+_G['EnemyAIController'].SelectTarget = function(target, priority) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].ReleaseDragTargets = function() end
+
+---`Method Public Instance`
+---@param probability? System.Nullable*1System*Single
+_G['EnemyAIController'].EvaluatePlayDeadProbability = function(probability) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['EnemyAIController'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param followLastTarget? System.Boolean
+_G['EnemyAIController'].UpdateIdle = function(deltaTime, followLastTarget) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param followLastTarget? System.Boolean
+_G['EnemyAIController'].UpdatePatrol = function(deltaTime, followLastTarget) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].FindTargetHulls = function() end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@param otherTarget Barotrauma.AITarget
+---@return System.Boolean
+_G['EnemyAIController'].IsSameTarget = function(target, otherTarget) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateAttack = function(deltaTime) end
+
+---`Method Public Instance`
+---@param attack Barotrauma.Attack
+---@param targetEntity Barotrauma.ISpatialEntity
+_G['EnemyAIController'].AimRangedAttack = function(attack, targetEntity) end
+
+---`Method Private Instance`
+---@param attackingLimb Barotrauma.Limb
+---@param currentContexts (System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext)|(fun():(Barotrauma.AttackContext))
+---@param target Barotrauma.Entity
+---@return System.Boolean
+_G['EnemyAIController'].IsValidAttack = function(attackingLimb, currentContexts, target) end
+
+---`Method Private Instance`
+---@param attackWorldPos Microsoft.Xna.Framework.Vector2
+---@param ignoredLimb? Barotrauma.Limb
+---@return Barotrauma.Limb
+_G['EnemyAIController'].GetAttackLimb = function(attackWorldPos, ignoredLimb) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['EnemyAIController'].OnAttacked = function(attacker, attackResult) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@return Barotrauma.Item
+_G['EnemyAIController'].GetEquippedItem = function(limb) end
+
+---`Method Private Static`
+---@param dmg System.Single
+---@param vitality System.Single
+---@return System.Single
+_G['EnemyAIController'].GetRelativeDamage = function(dmg, vitality) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param attackSimPos Microsoft.Xna.Framework.Vector2
+---@param damageTarget Barotrauma.IDamageable
+---@param distance? System.Single
+---@param targetLimb? Barotrauma.Limb
+---@return System.Boolean
+_G['EnemyAIController'].UpdateLimbAttack = function(deltaTime, attackSimPos, damageTarget, distance, targetLimb) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param target Barotrauma.ISpatialEntity
+---@param weapon Barotrauma.Item
+---@return System.Boolean
+_G['EnemyAIController'].Aim = function(deltaTime, target, weapon) end
+
+---`Method Private Instance`
+---@param timer? System.Single
+_G['EnemyAIController'].SetAimTimer = function(timer) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param steerPos Microsoft.Xna.Framework.Vector2
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@return System.Boolean
+_G['EnemyAIController'].IsBlocked = function(deltaTime, steerPos, collisionCategory) end
+
+---`Method Private Instance`
+---@param attackWorldPos Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param followThrough System.Boolean
+---@param checkBlocking? System.Boolean
+---@param avoidObstacles? System.Boolean
+---@return System.Boolean
+_G['EnemyAIController'].UpdateFallBack = function(attackWorldPos, deltaTime, followThrough, checkBlocking, avoidObstacles) end
+
+---`Method Private Instance`
+---@param attack Barotrauma.Attack
+---@return Barotrauma.Limb
+_G['EnemyAIController'].GetLimbToRotate = function(attack) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateEating = function(deltaTime) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].ReleaseEatingTarget = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateFollow = function(deltaTime) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsLatchedTo = function(target, character) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['EnemyAIController'].IsLatchedToSomeoneElse = function(target, character) end
+
+---`Method Public Instance`
+_G['EnemyAIController'].UpdateTargets = function() end
+
+---`Method Private Instance`
+---@param requiredHoleCount System.Int32
+_G['EnemyAIController'].UpdateWallTarget = function(requiredHoleCount) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['EnemyAIController'].TrySteerThroughGaps = function(deltaTime) end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+---@param addIfNotFound? System.Boolean
+---@param keepAlive? System.Boolean
+---@return Barotrauma.AITargetMemory
+_G['EnemyAIController'].GetTargetMemory = function(target, addIfNotFound, keepAlive) end
+
+---`Method Private Instance`
+_G['EnemyAIController'].UpdateCurrentMemoryLocation = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].FadeMemories = function(deltaTime) end
+
+---`Method Public Instance`
+---@param target Barotrauma.AITarget
+_G['EnemyAIController'].IgnoreTarget = function(target) end
+
+---`Method Public Instance`
+---@param trigger Barotrauma.StatusEffect.AITrigger
+_G['EnemyAIController'].LaunchTrigger = function(trigger) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['EnemyAIController'].UpdateTriggers = function(deltaTime) end
+
+---`Method Private Instance`
+---@param tag Barotrauma.Identifier
+---@return System.Boolean
+_G['EnemyAIController'].TryResetOriginalState = function(tag) end
+
+---`Method Private Instance`
+---@overload fun(targetParams:Barotrauma.CharacterParams.TargetParams, state:Barotrauma.AIState, priority?:System.Nullable*1System*Single)
+---@param tag Barotrauma.Identifier
+---@param state Barotrauma.AIState
+---@param priority? System.Nullable*1System*Single
+---@param onlyExisting? System.Boolean
+---@param ignoreAttacksIfNotInSameSub? System.Boolean
+_G['EnemyAIController'].ChangeParams = function(tag, state, priority, onlyExisting, ignoreAttacksIfNotInSameSub) end
+
+---`Method Private Instance`
+---@param targetParams Barotrauma.CharacterParams.TargetParams
+_G['EnemyAIController'].ResetParams = function(targetParams) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@param seed System.String
+---@return Barotrauma.EnemyAIController
+_G['EnemyAIController'] = function(c, seed) end
+
+---`Constructor Public Instance`
+---@param c Barotrauma.Character
+---@param seed System.String
+---@return Barotrauma.EnemyAIController
+_G['EnemyAIController'].__new = function(c, seed) end
+
diff --git a/Meta/Types/server/_00007FFD968FEE90.lua b/Meta/Types/server/_00007FFD968FEE90.lua
new file mode 100644
index 0000000..32c0412
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FEE90.lua
@@ -0,0 +1,524 @@
+---@meta
+---@class Barotrauma.HumanAIController : Barotrauma.AIController
+---`Field Private Instance`
+---@field objectiveManager Barotrauma.AIObjectiveManager
+---`Field Private Instance`
+---@field crouchRaycastTimer System.Single
+---`Field Private Instance`
+---@field reactTimer System.Single
+---`Field Private Instance`
+---@field unreachableClearTimer System.Single
+---`Field Private Instance`
+---@field shouldCrouch System.Boolean
+---`Field Public Instance`
+---@field AutoFaceMovement System.Boolean
+---`Field Private Instance`
+---@field flipTimer System.Single
+---`Field Public Instance`
+---@field UnreachableHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Public Instance`
+---@field UnsafeHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Public Instance`
+---@field IgnoredItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field dirtyHullSafetyCalculations (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field respondToAttackTimer System.Single
+---`Field Private Instance`
+---@field wasConscious System.Boolean
+---`Field Private Instance`
+---@field freezeAI System.Boolean
+---`Field Private Instance`
+---@field maxSteeringBuffer System.Single
+---`Field Private Instance`
+---@field minSteeringBuffer System.Single
+---`Field Private Instance`
+---@field steeringBufferIncreaseSpeed System.Single
+---`Field Private Instance`
+---@field steeringBuffer System.Single
+---`Field Private Instance`
+---@field obstacleRaycastIntervalShort System.Single
+---`Field Private Instance`
+---@field obstacleRaycastIntervalLong System.Single
+---`Field Private Instance`
+---@field obstacleRaycastTimer System.Single
+---`Field Private Instance`
+---@field isBlocked System.Boolean
+---`Field Private Instance`
+---@field enemyCheckInterval System.Single
+---`Field Private Instance`
+---@field enemySpotDistanceOutside System.Single
+---`Field Private Instance`
+---@field enemySpotDistanceInside System.Single
+---`Field Private Instance`
+---@field enemyCheckTimer System.Single
+---`Field Private Instance`
+---@field reportProblemsInterval System.Single
+---`Field Private Instance`
+---@field reportProblemsTimer System.Single
+---`Field Private Instance`
+---@field _aimSpeed System.Single
+---`Field Private Instance`
+---@field _aimAccuracy System.Single
+---`Field Private Instance`
+---@field previousAttackResults (System.Collections.Generic.Dictionary*1Barotrauma*Character*1Barotrauma*AttackResult)|({[Barotrauma.Character]:(Barotrauma.AttackResult)})
+---`Field Private Instance`
+---@field previousHealAmounts (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single)|({[Barotrauma.Character]:(System.Single)})
+---`Field Private Instance`
+---@field outsideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field insideSteering Barotrauma.SteeringManager
+---`Field Private Instance`
+---@field structureDamageAccumulator (System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single)|({[Barotrauma.Character]:(System.Single)})
+---`Field Private Instance`
+---@field knownHulls (System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Barotrauma*HumanAIController*HullSafety)|({[Barotrauma.Hull]:(Barotrauma.HumanAIController.HullSafety)})
+---`Field Private Instance`
+---@field itemsToRelocate (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field findItemState Barotrauma.HumanAIController.FindItemState
+---`Field Private Instance`
+---@field itemIndex System.Int32
+---`Field Private Instance`
+---@field draggedTimer System.Single
+---`Field Private Instance`
+---@field refuseDraggingTimer System.Single
+---`Field Public Static`
+---@field DebugAI System.Boolean
+---`Field Public Static`
+---@field DisableCrewAI System.Boolean
+---`Field Private Static`
+---@field characterWaitOnSwitch System.Single
+---`Field Private Static`
+---@field matchingItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field reactionTime System.Single
+---`Field Private Static`
+---@field crouchRaycastInterval System.Single
+---`Field Private Static`
+---@field sortObjectiveInterval System.Single
+---`Field Private Static`
+---@field clearUnreachableInterval System.Single
+---`Field Private Static`
+---@field FlipInterval System.Single
+---`Field Public Static`
+---@field HULL_SAFETY_THRESHOLD System.Single
+---`Field Public Static`
+---@field HULL_LOW_OXYGEN_PERCENTAGE System.Single
+---`Field Private Static`
+---@field RespondToAttackInterval System.Single
+---`Field Private Static`
+---@field RefuseDraggingThresholdHigh System.Single
+---`Field Private Static`
+---@field RefuseDraggingThresholdLow System.Single
+---`Field Private Static`
+---@field RefuseDraggingDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SortTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hearing System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReportRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FindWeaponsRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimAccuracy System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseOutsideWaypoints System.Boolean
+---`Getter Public Instance`
+---@field PathSteering Barotrauma.IndoorsSteeringManager
+---`Getter Public Instance`
+---@field AnimController Barotrauma.HumanoidAnimController
+---`Getter Public Instance`
+---@field ObjectiveManager Barotrauma.AIObjectiveManager
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentHullSafety System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MentalStateManager Barotrauma.MentalStateManager
+---`Getter Public Instance Virtual`
+---@field IsMentallyUnstable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ShipCommandManager Barotrauma.ShipCommandManager
+_G['HumanAIController'] = {}
+
+---`Method Public Instance`
+---@param predicate? (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Int32
+_G['HumanAIController'].CountBotsInTheCrew = function(predicate) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param predicate? (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Int32
+_G['HumanAIController'].CountBotsInTheCrew = function(character, predicate) end
+
+---`Method Public Instance`
+_G['HumanAIController'].InitMentalStateManager = function() end
+
+---`Method Public Instance`
+_G['HumanAIController'].InitShipCommandManager = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['HumanAIController'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['HumanAIController'].CheckEnemies = function() end
+
+---`Method Private Instance`
+_G['HumanAIController'].UnequipUnnecessaryItems = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+_G['HumanAIController'].HandleRelocation = function(item) end
+
+---`Method Public Instance`
+---@param containableItem Barotrauma.Item
+---@param suitableContainer Barotrauma.Item-ref
+---@return System.Boolean
+_G['HumanAIController'].FindSuitableContainer = function(containableItem, suitableContainer) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param containableItem Barotrauma.Item
+---@param ignoredItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---@param itemIndex System.Int32-ref
+---@param suitableContainer Barotrauma.Item-ref
+---@return System.Boolean
+_G['HumanAIController'].FindSuitableContainer = function(character, containableItem, ignoredItems, itemIndex, suitableContainer) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['HumanAIController'].UpdateDragged = function(deltaTime) end
+
+---`Method NonPublic Instance`
+_G['HumanAIController'].ReportProblems = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param hull Barotrauma.Hull
+---@return System.Boolean
+_G['HumanAIController'].IsBallastFloraNoticeable = function(character, hull) end
+
+---`Method Public Static`
+---@param reporter Barotrauma.Character
+---@param order Barotrauma.Order
+---@param targetHull? Barotrauma.Hull
+_G['HumanAIController'].ReportProblem = function(reporter, order, targetHull) end
+
+---`Method Private Instance`
+_G['HumanAIController'].SpeakAboutIssues = function() end
+
+---`Method Public Instance Virtual`
+---@param healer Barotrauma.Character
+---@param healAmount System.Single
+_G['HumanAIController'].OnHealed = function(healer, healAmount) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['HumanAIController'].OnAttacked = function(attacker, attackResult) end
+
+---`Method Private Instance`
+---@param attacker Barotrauma.Character
+---@param attackResult Barotrauma.AttackResult
+_G['HumanAIController'].RespondToAttack = function(attacker, attackResult) end
+
+---`Method Public Instance`
+---@param mode Barotrauma.AIObjectiveCombat.CombatMode
+---@param target Barotrauma.Character
+---@param delay? System.Single
+---@param abortCondition? (System.Func*1Barotrauma*AIObjective*1System*Boolean)|(fun(arg:Barotrauma.AIObjective):(System.Boolean))
+---@param onAbort? (System.Action)|(fun())
+---@param onCompleted? (System.Action)|(fun())
+---@param allowHoldFire? System.Boolean
+---@param speakWarnings? System.Boolean
+_G['HumanAIController'].AddCombatObjective = function(mode, target, delay, abortCondition, onAbort, onCompleted, allowHoldFire, speakWarnings) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param speak? System.Boolean
+_G['HumanAIController'].SetOrder = function(order, speak) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@return Barotrauma.AIObjective
+_G['HumanAIController'].SetForcedOrder = function(order) end
+
+---`Method Public Instance`
+_G['HumanAIController'].ClearForcedOrder = function() end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.AITarget
+_G['HumanAIController'].SelectTarget = function(target) end
+
+---`Method Public Instance Virtual`
+_G['HumanAIController'].Reset = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['HumanAIController'].Escape = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['HumanAIController'].CheckCrouching = function(deltaTime) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['HumanAIController'].AllowCampaignInteraction = function() end
+
+---`Method Public Instance`
+---@param hull Barotrauma.Hull
+---@param needsSuit System.Boolean-ref
+---@return System.Boolean
+_G['HumanAIController'].NeedsDivingGear = function(hull, needsSuit) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param conditionPercentage? System.Single
+---@param requireOxygenTank? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].HasDivingGear = function(character, conditionPercentage, requireOxygenTank) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param conditionPercentage? System.Single
+---@param requireOxygenTank? System.Boolean
+---@param requireSuitablePressureProtection? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].HasDivingSuit = function(character, conditionPercentage, requireOxygenTank, requireSuitablePressureProtection) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param conditionPercentage? System.Single
+---@param requireOxygenTank? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].HasDivingMask = function(character, conditionPercentage, requireOxygenTank) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param tagOrIdentifier Barotrauma.Identifier
+---@param items System.Collections.Generic.IEnumerable
+---@param containedTag? Barotrauma.Identifier
+---@param conditionPercentage? System.Single
+---@param requireEquipped? System.Boolean
+---@param recursive? System.Boolean
+---@param predicate? (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].HasItem = function(character, tagOrIdentifier, items, containedTag, conditionPercentage, requireEquipped, recursive, predicate) end
+
+---`Method Public Static`
+---@param structure Barotrauma.Structure
+---@param damageAmount System.Single
+---@param character Barotrauma.Character
+_G['HumanAIController'].StructureDamaged = function(structure, damageAmount, character) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param thief Barotrauma.Character
+_G['HumanAIController'].ItemTaken = function(item, thief) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+_G['HumanAIController'].ApplyStealingReputationLoss = function(item) end
+
+---`Method Private Static`
+---@return System.Single
+_G['HumanAIController'].GetReactionTime = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].PropagateHullSafety = function(character, hull) end
+
+---`Method Public Instance`
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].AskToRecalculateHullSafety = function(hull) end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].RefreshHullSafety = function(hull) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param order Barotrauma.Order
+---@param hull Barotrauma.Hull
+_G['HumanAIController'].RefreshTargets = function(character, order, hull) end
+
+---`Method Private Static`
+---@param caller Barotrauma.Character
+---@param target Barotrauma.HumanAIController.T2
+---@return System.Boolean
+_G['HumanAIController'].AddTargets = function(caller, target) end
+
+---`Method Public Static`
+---@param caller Barotrauma.Character
+---@param target Barotrauma.HumanAIController.T2
+_G['HumanAIController'].RemoveTargets = function(caller, target) end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+---@param safety Barotrauma.HumanAIController.HullSafety
+_G['HumanAIController'].StoreHullSafety = function(hull, safety) end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+---@param character Barotrauma.Character
+---@param visibleHulls? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@return System.Single
+_G['HumanAIController'].CalculateHullSafety = function(hull, character, visibleHulls) end
+
+---`Method Private Static`
+---@param hull Barotrauma.Hull
+---@param visibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@param character Barotrauma.Character
+---@param ignoreWater? System.Boolean
+---@param ignoreOxygen? System.Boolean
+---@param ignoreFire? System.Boolean
+---@param ignoreEnemies? System.Boolean
+---@return System.Single
+_G['HumanAIController'].CalculateHullSafety = function(hull, visibleHulls, character, ignoreWater, ignoreOxygen, ignoreFire, ignoreEnemies) end
+
+---`Method Public Instance`
+---@param hull Barotrauma.Hull
+---@param character Barotrauma.Character
+---@param visibleHulls? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@return System.Single
+_G['HumanAIController'].GetHullSafety = function(hull, character, visibleHulls) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@param visibleHulls (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@param character Barotrauma.Character
+---@param ignoreWater? System.Boolean
+---@param ignoreOxygen? System.Boolean
+---@param ignoreFire? System.Boolean
+---@param ignoreEnemies? System.Boolean
+---@return System.Single
+_G['HumanAIController'].GetHullSafety = function(hull, visibleHulls, character, ignoreWater, ignoreOxygen, ignoreFire, ignoreEnemies) end
+
+---`Method Public Static`
+---@param me Barotrauma.Character
+---@param other Barotrauma.Character
+---@param onlySameTeam? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].IsFriendly = function(me, other, onlySameTeam) end
+
+---`Method Public Instance`
+---@param other Barotrauma.Character
+---@param onlySameTeam? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].IsFriendly = function(other, onlySameTeam) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['HumanAIController'].IsInHostileFaction = function() end
+
+---`Method Public Static`
+---@param c Barotrauma.Character
+---@return System.Boolean
+_G['HumanAIController'].IsActive = function(c) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAllBotsInTheCrew = function(character, predicate) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAllBotsInTheCrew = function(predicate) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAnyBotInTheCrew = function(character, predicate) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*HumanAIController*1System*Boolean)|(fun(arg:Barotrauma.HumanAIController):(System.Boolean))
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAnyBotInTheCrew = function(predicate) end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Character*1System*Boolean)|(fun(arg:Barotrauma.Character):(System.Boolean))
+---@param onlyActive? System.Boolean
+---@param onlyConnectedSubs? System.Boolean
+---@return System.Boolean
+_G['HumanAIController'].IsTrueForAnyCrewMember = function(predicate, onlyActive, onlyConnectedSubs) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param action (System.Action*1Barotrauma*HumanAIController)|(fun(obj:Barotrauma.HumanAIController))
+---@param range? System.Single
+_G['HumanAIController'].DoForEachBot = function(character, action, range) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param target Barotrauma.Character
+---@param range System.Single
+---@return System.Boolean
+_G['HumanAIController'].CheckReportRange = function(character, target, range) end
+
+---`Method Private Static`
+---@param self Barotrauma.Character
+---@param other Barotrauma.Character
+---@return System.Boolean
+_G['HumanAIController'].IsBotInTheCrew = function(self, other) end
+
+---`Method Public Static`
+---@param target Barotrauma.Items.Components.ItemComponent
+---@param team Barotrauma.CharacterTeamType
+---@param operatingCharacter Barotrauma.Character-ref
+---@return System.Boolean
+_G['HumanAIController'].IsItemTargetedBySomeone = function(target, team, operatingCharacter) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Items.Components.ItemComponent
+---@param other Barotrauma.Character-ref
+---@return System.Boolean
+_G['HumanAIController'].IsItemOperatedByAnother = function(target, other) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Item
+---@param other Barotrauma.Character-ref
+---@return System.Boolean
+_G['HumanAIController'].IsItemRepairedByAnother = function(target, other) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'] = function(c) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'].__new = function(c) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'] = function(c) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.HumanAIController
+---@param c Barotrauma.Character
+---@return Barotrauma.HumanAIController
+_G['HumanAIController'].__new = function(c) end
+
diff --git a/Meta/Types/server/_00007FFD968FF870.lua b/Meta/Types/server/_00007FFD968FF870.lua
new file mode 100644
index 0000000..5ef9ce8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD968FF870.lua
@@ -0,0 +1,270 @@
+---@meta
+---@class Barotrauma.AIObjective : System.Object
+---`Field Public Instance`
+---@field SourceEventAction Barotrauma.EventAction
+---`Field Public Instance`
+---@field SourceObjective Barotrauma.AIObjective
+---`Field NonPublic Instance`
+---@field subObjectives (System.Collections.Generic.List*1Barotrauma*AIObjective)|(Barotrauma.AIObjective[])
+---`Field Private Instance`
+---@field _cumulatedDevotion System.Single
+---`Field Private Instance`
+---@field resetPriorityTimer System.Single
+---`Field Private Instance`
+---@field resetPriorityTime System.Single
+---`Field Private Instance`
+---@field _forceHighestPriority System.Boolean
+---`Field Public Instance`
+---@field character Barotrauma.Character
+---`Field Public Instance`
+---@field objectiveManager Barotrauma.AIObjectiveManager
+---`Field Public Instance`
+---@field Option Barotrauma.Identifier
+---`Field Private Instance`
+---@field _abandon System.Boolean
+---`Field Private Instance`
+---@field all (System.Collections.Generic.List*1Barotrauma*AIObjective)|(Barotrauma.AIObjective[])
+---`Field Public Instance`
+---@field AbortCondition (System.Func*1Barotrauma*AIObjective*1System*Boolean)|(fun(arg:Barotrauma.AIObjective):(System.Boolean))
+---`Field Private Instance`
+---@field Completed (System.Action)|(fun())
+---`Field Private Instance`
+---@field Abandoned (System.Action)|(fun())
+---`Field Private Instance`
+---@field Selected (System.Action)|(fun())
+---`Field Private Instance`
+---@field Deselected (System.Action)|(fun())
+---`Field Private Instance`
+---@field isCompleted System.Boolean
+---`Field Private Instance`
+---@field hasBeenChecked System.Boolean
+---`Getter Public Instance Virtual`
+---@field Devotion System.Single
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowSubObjectiveSorting System.Boolean
+---`Getter Public Instance Virtual`
+---@field PrioritizeIfSubObjectivesActive System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOnAlsoWhenInactive System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AbandonIfDisallowed System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field MaxDevotion System.Single
+---`Getter NonPublic Instance`
+---
`Setter NonPublic Instance`
+---@field CumulatedDevotion System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Priority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BasePriority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PriorityModifier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceHighestPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceWalk System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreAtOutpost System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Abandon System.Boolean
+---`Getter Public Instance`
+---@field SubObjectives (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective)|(fun():(Barotrauma.AIObjective))
+---`Getter Public Instance`
+---@field CurrentSubObjective Barotrauma.AIObjective
+---`Getter NonPublic Instance`
+---@field HumanAIController Barotrauma.HumanAIController
+---`Getter NonPublic Instance`
+---@field PathSteering Barotrauma.IndoorsSteeringManager
+---`Getter NonPublic Instance`
+---@field SteeringManager Barotrauma.SteeringManager
+---`Getter Public Instance`
+---@field IsAllowed System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field IsCompleted System.Boolean
+_G['AIObjective'] = {}
+
+---`Method Public Instance`
+---@param includingSelf? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective)|(fun():(Barotrauma.AIObjective))
+_G['AIObjective'].GetSubObjectivesRecursive = function(includingSelf) end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjective'].GetActiveObjective = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjective'].TryComplete = function(deltaTime) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@param addFirst? System.Boolean
+_G['AIObjective'].AddSubObjective = function(objective, addFirst) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.T-ref
+_G['AIObjective'].RemoveSubObjective = function(objective) end
+
+---`Method Public Instance`
+_G['AIObjective'].SortSubObjectives = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjective'].IsIgnoredAtOutpost = function() end
+
+---`Method NonPublic Instance`
+_G['AIObjective'].HandleDisallowed = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjective'].GetPriority = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['AIObjective'].CalculatePriority = function() end
+
+---`Method Public Static`
+---@param selfPos Microsoft.Xna.Framework.Vector2
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param factorAtMaxDistance System.Single
+---@param verticalDistanceMultiplier? System.Single
+---@param maxDistance? System.Single
+---@param factorAtMinDistance? System.Single
+---@return System.Single
+_G['AIObjective'].GetDistanceFactor = function(selfPos, targetWorldPos, factorAtMaxDistance, verticalDistanceMultiplier, maxDistance, factorAtMinDistance) end
+
+---`Method NonPublic Instance`
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param factorAtMaxDistance System.Single
+---@param verticalDistanceMultiplier? System.Single
+---@param maxDistance? System.Single
+---@param factorAtMinDistance? System.Single
+---@return System.Single
+_G['AIObjective'].GetDistanceFactor = function(targetWorldPos, factorAtMaxDistance, verticalDistanceMultiplier, maxDistance, factorAtMinDistance) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjective'].UpdateDevotion = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param otherObjective Barotrauma.AIObjective.T
+---@return System.Boolean
+_G['AIObjective'].IsDuplicate = function(otherObjective) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjective'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param dictionary (System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*T1*1Barotrauma*AIObjective*T2)|({[Barotrauma.AIObjective.T1]:(Barotrauma.AIObjective.T2)})
+---@param collection (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective*T1)|(fun():(Barotrauma.AIObjective.T1))
+_G['AIObjective'].SyncRemovedObjectives = function(dictionary, collection) end
+
+---`Method NonPublic Instance`
+---@param objective Barotrauma.T-ref
+---@param constructor (System.Func*1Barotrauma*AIObjective*T)|(fun():(Barotrauma.AIObjective.T))
+---@param onCompleted? (System.Action)|(fun())
+---@param onAbandon? (System.Action)|(fun())
+---@return System.Boolean
+_G['AIObjective'].TryAddSubObjective = function(objective, constructor, onCompleted, onAbandon) end
+
+---`Method Public Instance Virtual`
+_G['AIObjective'].OnSelected = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjective'].OnDeselected = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjective'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjective'].OnAbandon = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjective'].Reset = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param deltaTime System.Single
+_G['AIObjective'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjective'].Check = function() end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@return System.Boolean
+_G['AIObjective'].CheckObjectiveState = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjective'].CheckState = function() end
+
+---`Method Private Instance`
+_G['AIObjective'].CheckSubObjectives = function() end
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@param allowWearing System.Boolean
+---@return System.Boolean
+_G['AIObjective'].CanPutInInventory = function(character, item, allowWearing) end
+
+---`Method NonPublic Instance`
+---@param item Barotrauma.Item
+---@param allowWearing System.Boolean
+---@return System.Boolean
+_G['AIObjective'].CanEquip = function(item, allowWearing) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier System.Single
+---@param option? Barotrauma.Identifier
+---@return Barotrauma.AIObjective
+_G['AIObjective'] = function(character, objectiveManager, priorityModifier, option) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier System.Single
+---@param option? Barotrauma.Identifier
+---@return Barotrauma.AIObjective
+_G['AIObjective'].__new = function(character, objectiveManager, priorityModifier, option) end
+
diff --git a/Meta/Types/server/_00007FFD969010E8.lua b/Meta/Types/server/_00007FFD969010E8.lua
new file mode 100644
index 0000000..b9ec4a2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969010E8.lua
@@ -0,0 +1,141 @@
+---@meta
+---@class Barotrauma.AITarget : System.Object
+---`Field Private Instance`
+---@field entity Barotrauma.Entity
+---`Field Private Instance`
+---@field soundRange System.Single
+---`Field Private Instance`
+---@field sightRange System.Single
+---`Field Private Instance`
+---@field sectorRad System.Single
+---`Field Private Instance`
+---@field sectorDir Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field SonarLabel Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field SonarIconIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field inDetectable System.Boolean
+---`Field Public Instance`
+---@field InDetectableSetTime System.Double
+---`Field Public Instance`
+---@field MinSoundRange System.Single
+---`Field Public Instance`
+---@field MinSightRange System.Single
+---`Field Public Instance`
+---@field MaxSoundRange System.Single
+---`Field Public Instance`
+---@field MaxSightRange System.Single
+---`Field Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*AITarget)|(Barotrauma.AITarget[])
+---`Getter Public Instance`
+---@field Entity Barotrauma.Entity
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FadeOutTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Static System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StaticSound System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StaticSight System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SightRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SectorDegrees System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SectorDir Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SonarDisruption System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InDetectable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NeedsUpdate System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Type Barotrauma.AITarget.TargetType
+---`Getter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+_G['AITarget'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AITarget'].ShouldBeIgnored = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AITarget'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].IncreaseSoundRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].IncreaseSightRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].DecreaseSoundRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param speed? System.Single
+_G['AITarget'].DecreaseSightRange = function(deltaTime, speed) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AITarget'].HasSector = function() end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['AITarget'].IsWithinSector = function(worldPosition) end
+
+---`Method Public Instance`
+_G['AITarget'].Remove = function() end
+
+---`Method Public Instance`
+_G['AITarget'].Reset = function() end
+
+---`Constructor Public Instance`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(e:Barotrauma.Entity, element:System.Xml.Linq.XElement):Barotrauma.AITarget
+---@overload fun(e:Barotrauma.Entity):Barotrauma.AITarget
+---@return Barotrauma.AITarget
+_G['AITarget'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969012B8.lua b/Meta/Types/server/_00007FFD969012B8.lua
new file mode 100644
index 0000000..a83e487
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969012B8.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.AITargetMemory : System.Object
+---`Field Public Instance`
+---@field Target Barotrauma.AITarget
+---`Field Private Instance`
+---@field priority System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Location Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Priority System.Single
+_G['AITargetMemory'] = {}
+
+---`Constructor Public Instance`
+---@param target Barotrauma.AITarget
+---@param priority System.Single
+---@return Barotrauma.AITargetMemory
+_G['AITargetMemory'] = function(target, priority) end
+
+---`Constructor Public Instance`
+---@param target Barotrauma.AITarget
+---@param priority System.Single
+---@return Barotrauma.AITargetMemory
+_G['AITargetMemory'].__new = function(target, priority) end
+
diff --git a/Meta/Types/server/_00007FFD96901440.lua b/Meta/Types/server/_00007FFD96901440.lua
new file mode 100644
index 0000000..6d2ff98
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96901440.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Networking.ChatMessageType : System.Enum
+---`Field Public Static`
+---@field Default Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Error Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Dead Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Server Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Radio Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Private Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Console Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field MessageBox Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Order Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field ServerLog Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field ServerMessageBox Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field ServerMessageBoxInGame Barotrauma.Networking.ChatMessageType
+---`Field Public Static`
+---@field Team Barotrauma.Networking.ChatMessageType
+_G['ChatMessageType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96901798.lua b/Meta/Types/server/_00007FFD96901798.lua
new file mode 100644
index 0000000..18802d2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96901798.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.AIChatMessage : System.Object
+---`Field Public Instance`
+---@field Message System.String
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Public Instance`
+---@field MessageType System.Nullable*1Barotrauma*Networking*ChatMessageType
+---`Field Public Instance`
+---@field SendDelay System.Single
+---`Field Public Instance`
+---@field SendTime System.Double
+_G['AIChatMessage'] = {}
+
+---`Constructor Public Instance`
+---@param message System.String
+---@param type System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param identifier? Barotrauma.Identifier
+---@param delay? System.Single
+---@return Barotrauma.AIChatMessage
+_G['AIChatMessage'] = function(message, type, identifier, delay) end
+
+---`Constructor Public Instance`
+---@param message System.String
+---@param type System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param identifier? Barotrauma.Identifier
+---@param delay? System.Single
+---@return Barotrauma.AIChatMessage
+_G['AIChatMessage'].__new = function(message, type, identifier, delay) end
+
diff --git a/Meta/Types/server/_00007FFD96901EE8.lua b/Meta/Types/server/_00007FFD96901EE8.lua
new file mode 100644
index 0000000..1a360d6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96901EE8.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.AIObjectiveManager : System.Object
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field _waitTimer System.Single
+---`Field Private Instance`
+---@field currentOrder Barotrauma.AIObjective
+---`Field Public Instance`
+---@field FailedToFindDivingGearForDepth System.Boolean
+---`Field Public Static`
+---@field MaxObjectivePriority System.Single
+---`Field Public Static`
+---@field EmergencyObjectivePriority System.Single
+---`Field Public Static`
+---@field HighestOrderPriority System.Single
+---`Field Public Static`
+---@field LowestOrderPriority System.Single
+---`Field Public Static`
+---@field RunPriority System.Single
+---`Field Public Static`
+---@field baseDevotion System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Objectives (System.Collections.Generic.List*1Barotrauma*AIObjective)|(Barotrauma.AIObjective[])
+---`Getter Public Instance`
+---@field HumanAIController Barotrauma.HumanAIController
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaitTimer System.Single
+---`Getter Public Instance`
+---@field CurrentOrders (System.Collections.Generic.List*1Barotrauma*Order)|(Barotrauma.Order[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentOrder Barotrauma.AIObjective
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForcedOrder Barotrauma.AIObjective
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentObjective Barotrauma.AIObjective
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DelayedObjectives (System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*1Barotrauma*CoroutineHandle)|({[Barotrauma.AIObjective]:(Barotrauma.CoroutineHandle)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FailedAutonomousObjectives System.Boolean
+_G['AIObjectiveManager'] = {}
+
+---`Method Public Instance`
+---@overload fun(objective:Barotrauma.AIObjective)
+---@overload fun(objective:Barotrauma.AIObjectiveManager.T)
+---@param objective Barotrauma.AIObjectiveManager.T
+---@param delay System.Single
+---@param callback? (System.Action)|(fun())
+_G['AIObjectiveManager'].AddObjective = function(objective, delay, callback) end
+
+---`Method Private Instance`
+_G['AIObjectiveManager'].ClearIgnored = function() end
+
+---`Method Public Instance`
+_G['AIObjectiveManager'].CreateAutonomousObjectives = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjectiveManager.T
+_G['AIObjectiveManager'].GetObjective = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjectiveManager'].GetCurrentObjective = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['AIObjectiveManager'].GetCurrentPriority = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveManager'].UpdateObjectives = function(deltaTime) end
+
+---`Method Public Instance`
+_G['AIObjectiveManager'].SortObjectives = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveManager'].DoCurrentObjective = function(deltaTime) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+_G['AIObjectiveManager'].SetForcedOrder = function(objective) end
+
+---`Method Public Instance`
+_G['AIObjectiveManager'].ClearForcedOrder = function() end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param speak System.Boolean
+_G['AIObjectiveManager'].SetOrder = function(order, speak) end
+
+---`Method Public Instance`
+---@param order Barotrauma.Order
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjective
+_G['AIObjectiveManager'].CreateObjective = function(order, priorityModifier) end
+
+---`Method Private Instance`
+---@param order Barotrauma.Order
+_G['AIObjectiveManager'].DismissSelf = function(order) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].IsAllowedToWait = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].IsCurrentOrder = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].IsCurrentObjective = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].HasObjectiveOrOrder = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjectiveManager'].GetActiveObjective = function() end
+
+---`Method Public Instance`
+---@overload fun():(Barotrauma.AIObjectiveManager.T)
+---@param objective Barotrauma.AIObjective
+---@return Barotrauma.Order
+_G['AIObjectiveManager'].GetOrder = function(objective) end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjectiveManager.T
+_G['AIObjectiveManager'].GetLastActiveObjective = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.AIObjectiveManager.T
+_G['AIObjectiveManager'].GetFirstActiveObjective = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AIObjectiveManager*T)|(fun():(Barotrauma.AIObjectiveManager.T))
+_G['AIObjectiveManager'].GetActiveObjectives = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].HasActiveObjective = function() end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@return System.Boolean
+_G['AIObjectiveManager'].IsOrder = function(objective) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AIObjectiveManager'].HasOrders = function() end
+
+---`Method Public Instance`
+---@param predicate? (System.Func*1Barotrauma*AIObjectiveManager*T*1System*Boolean)|(fun(arg:Barotrauma.AIObjectiveManager.T):(System.Boolean))
+---@return System.Boolean
+_G['AIObjectiveManager'].HasOrder = function(predicate) end
+
+---`Method Public Instance`
+---@param objective Barotrauma.AIObjective
+---@return System.Single
+_G['AIObjectiveManager'].GetOrderPriority = function(objective) end
+
+---`Method Public Instance`
+---@return Barotrauma.Order
+_G['AIObjectiveManager'].GetCurrentOrderInfo = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.AIObjectiveManager
+_G['AIObjectiveManager'] = function(character) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.AIObjectiveManager
+_G['AIObjectiveManager'].__new = function(character) end
+
diff --git a/Meta/Types/server/_00007FFD969027C8.lua b/Meta/Types/server/_00007FFD969027C8.lua
new file mode 100644
index 0000000..b679b8d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969027C8.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.AIObjectiveChargeBatteries : Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*PowerContainer
+---`Field Private Instance`
+---@field batteryList (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer)|(fun():(Barotrauma.Items.Components.PowerContainer))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+_G['AIObjectiveChargeBatteries'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param battery Barotrauma.Items.Components.PowerContainer
+---@return System.Boolean
+_G['AIObjectiveChargeBatteries'].IsValidTarget = function(battery) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveChargeBatteries'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer)|(fun():(Barotrauma.Items.Components.PowerContainer))
+_G['AIObjectiveChargeBatteries'].GetList = function() end
+
+---`Method Private Instance`
+---@param battery Barotrauma.Items.Components.PowerContainer
+---@return System.Boolean
+_G['AIObjectiveChargeBatteries'].IsReady = function(battery) end
+
+---`Method NonPublic Instance Virtual`
+---@param battery Barotrauma.Items.Components.PowerContainer
+---@return Barotrauma.AIObjective
+_G['AIObjectiveChargeBatteries'].ObjectiveConstructor = function(battery) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Items.Components.PowerContainer
+_G['AIObjectiveChargeBatteries'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier System.Single
+---@return Barotrauma.AIObjectiveChargeBatteries
+_G['AIObjectiveChargeBatteries'] = function(character, objectiveManager, option, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier System.Single
+---@return Barotrauma.AIObjectiveChargeBatteries
+_G['AIObjectiveChargeBatteries'].__new = function(character, objectiveManager, option, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96902DC8.lua b/Meta/Types/server/_00007FFD96902DC8.lua
new file mode 100644
index 0000000..f47d8f8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96902DC8.lua
@@ -0,0 +1,142 @@
+---@meta
+---@class Barotrauma.Items.Components.Powered : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field currPowerConsumption System.Single
+---`Field Private Instance`
+---@field voltage System.Single
+---`Field Private Instance`
+---@field minVoltage System.Single
+---`Field NonPublic Instance`
+---@field powerConsumption System.Single
+---`Field NonPublic Instance`
+---@field powerIn Barotrauma.Items.Components.Connection
+---`Field NonPublic Instance`
+---@field powerOut Barotrauma.Items.Components.Connection
+---`Field Private Static`
+---@field poweredList (System.Collections.Generic.List*1Barotrauma*Items*Components*Powered)|(Barotrauma.Items.Components.Powered[])
+---`Field Public Static`
+---@field ChangedConnections (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Public Static`
+---@field Grids (System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*GridInfo)|({[System.Int32]:(Barotrauma.Items.Components.GridInfo)})
+---`Field NonPublic Static`
+---@field UpdateInterval System.Single
+---`Field NonPublic Static`
+---@field MaxOverVoltageFactor System.Single
+---`Getter Public Static`
+---@field PoweredList (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Powered)|(fun():(Barotrauma.Items.Components.Powered))
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinVoltage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerConsumption System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrPowerConsumption System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Voltage System.Single
+---`Getter Public Instance`
+---@field RelativeVoltage System.Single
+---`Getter Public Instance Virtual`
+---@field HasPower System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PoweredByTinkering System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VulnerableToEMP System.Boolean
+_G['Components']['Powered'] = {}
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['Components']['Powered'].UpdateOnActiveEffects = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Powered'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Powered'].OnItemLoaded = function() end
+
+---`Method Public Static`
+---@param useCache? System.Boolean
+_G['Components']['Powered'].UpdateGrids = function(useCache) end
+
+---`Method Private Static`
+---@overload fun(conn:Barotrauma.Items.Components.Connection):(Barotrauma.Items.Components.GridInfo)
+---@param conn Barotrauma.Items.Components.Connection
+---@param gridID System.Int32
+---@return Barotrauma.Items.Components.GridInfo
+_G['Components']['Powered'].PropagateGrid = function(conn, gridID) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['Components']['Powered'].UpdatePower = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Powered'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param load? System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['Powered'].MinMaxPowerOut = function(conn, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['Powered'].GetConnectionPowerOut = function(conn, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['Powered'].GridResolved = function(conn) end
+
+---`Method Public Static`
+---@param conn1 Barotrauma.Items.Components.Connection
+---@param conn2 Barotrauma.Items.Components.Connection
+---@return System.Boolean
+_G['Components']['Powered'].ValidPowerConnection = function(conn1, conn2) end
+
+---`Method NonPublic Instance`
+---@return System.Single
+_G['Components']['Powered'].GetAvailableInstantaneousBatteryPower = function() end
+
+---`Method NonPublic Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer)|(fun():(Barotrauma.Items.Components.PowerContainer))
+_G['Components']['Powered'].GetDirectlyConnectedBatteries = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Powered'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Powered
+---@return Barotrauma.Items.Components.Powered
+_G['Components']['Powered'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969034A8.lua b/Meta/Types/server/_00007FFD969034A8.lua
new file mode 100644
index 0000000..965fd32
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969034A8.lua
@@ -0,0 +1,154 @@
+---@meta
+---@class Barotrauma.Items.Components.PowerContainer : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field capacity System.Single
+---`Field Private Instance`
+---@field adjustedCapacity System.Single
+---`Field Private Instance`
+---@field charge System.Single
+---`Field Private Instance`
+---@field prevCharge System.Single
+---`Field Private Instance`
+---@field maxRechargeSpeed System.Single
+---`Field Private Instance`
+---@field rechargeSpeed System.Single
+---`Field Private Instance`
+---@field lastSentCharge System.Single
+---`Field NonPublic Instance`
+---@field indicatorPosition Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field indicatorSize Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field isHorizontal System.Boolean
+---`Field Private Instance`
+---@field currPowerOutput System.Single
+---`Field Private Instance`
+---@field efficiency System.Single
+---`Field Private Instance`
+---@field flipIndicator System.Boolean
+---`Field Private Instance`
+---@field isRunning System.Boolean
+---`Field Public Static`
+---@field aiRechargeTargetRatio System.Single
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrPowerOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IndicatorPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IndicatorSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutPut System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Capacity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Charge System.Single
+---`Getter Public Instance`
+---@field ChargePercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxRechargeSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RechargeSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExponentialRechargeSpeed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Efficiency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlipIndicator System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OutputDisabled System.Boolean
+---`Getter Public Instance`
+---@field RechargeRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasBeenTuned System.Boolean
+_G['Components']['PowerContainer'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['PowerContainer'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['PowerContainer'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['PowerContainer'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerContainer'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['PowerContainer'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param load? System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['PowerContainer'].MinMaxPowerOut = function(connection, load) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['PowerContainer'].GetConnectionPowerOut = function(connection, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['PowerContainer'].GridResolved = function(conn) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['PowerContainer'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['PowerContainer'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Components']['PowerContainer'].GetCapacity = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.PowerContainer
+_G['Components']['PowerContainer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.PowerContainer
+_G['Components']['PowerContainer'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969039E0.lua b/Meta/Types/server/_00007FFD969039E0.lua
new file mode 100644
index 0000000..10794e1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969039E0.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.AIObjectiveCleanupItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field item Barotrauma.Item
+---`Field Private Instance`
+---@field ignoredContainers (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field decontainObjective Barotrauma.AIObjectiveDecontainItem
+---`Field Private Instance`
+---@field itemIndex System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsPriority System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+_G['AIObjectiveCleanupItem'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveCleanupItem'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveCleanupItem'].Act = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveCleanupItem'].CheckObjectiveState = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCleanupItem'].Reset = function() end
+
+---`Method Public Instance`
+_G['AIObjectiveCleanupItem'].DropTarget = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItem
+_G['AIObjectiveCleanupItem'] = function(item, character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItem
+_G['AIObjectiveCleanupItem'].__new = function(item, character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96903DC0.lua b/Meta/Types/server/_00007FFD96903DC0.lua
new file mode 100644
index 0000000..96079a6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96903DC0.lua
@@ -0,0 +1,83 @@
+---@meta
+---@class Barotrauma.AIObjectiveCleanupItems : Barotrauma.AIObjectiveLoop*1Barotrauma*Item
+---`Field Public Instance`
+---@field prioritizedItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ForceOrderPriority System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field MaxTargets System.Int32
+_G['AIObjectiveCleanupItems'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveCleanupItems'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsValidTarget = function(target) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param checkInventory System.Boolean
+---@param allowUnloading? System.Boolean
+---@param requireValidContainer? System.Boolean
+---@param ignoreItemsMarkedForDeconstruction? System.Boolean
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsValidTarget = function(item, character, checkInventory, allowUnloading, requireValidContainer, ignoreItemsMarkedForDeconstruction) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AIObjectiveCleanupItems'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@return Barotrauma.AIObjective
+_G['AIObjectiveCleanupItems'].ObjectiveConstructor = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Item
+_G['AIObjectiveCleanupItems'].OnObjectiveCompleted = function(objective, target) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsItemInsideValidSubmarine = function(item, character) end
+
+---`Method Public Static`
+---@param container Barotrauma.Item
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveCleanupItems'].IsValidContainer = function(container, character) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCleanupItems'].OnDeselected = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, prioritizedItem?:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectiveCleanupItems
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param prioritizedItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItems
+_G['AIObjectiveCleanupItems'] = function(character, objectiveManager, prioritizedItems, priorityModifier) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, prioritizedItem?:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectiveCleanupItems
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param prioritizedItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveCleanupItems
+_G['AIObjectiveCleanupItems'].__new = function(character, objectiveManager, prioritizedItems, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96907A80.lua b/Meta/Types/server/_00007FFD96907A80.lua
new file mode 100644
index 0000000..20356e4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96907A80.lua
@@ -0,0 +1,1000 @@
+---@meta
+---@class Barotrauma.Item : Barotrauma.MapEntity
+---`Field Private Instance`
+---@field logPropertyChangeCoroutine Barotrauma.CoroutineHandle
+---`Field Public Instance`
+---@field PreviousParentInventory Barotrauma.Inventory
+---`Field Private Instance`
+---@field campaignInteractionTypePerClient (System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1Barotrauma*CampaignMode*InteractionType)|({[Barotrauma.Networking.Client]:(Barotrauma.CampaignMode.InteractionType)})
+---`Field Private Instance`
+---@field tags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field isWire System.Boolean
+---`Field Private Instance`
+---@field isLogic System.Boolean
+---`Field Private Instance`
+---@field currentHull Barotrauma.Hull
+---`Field Private Instance`
+---@field campaignInteractionType Barotrauma.CampaignMode.InteractionType
+---`Field Public Instance`
+---@field Visible System.Boolean
+---`Field Private Instance`
+---@field componentsByType (System.Collections.Generic.Dictionary*1System*Type*1Barotrauma*Items*Components*ItemComponent)|({[System.Type]:(Barotrauma.Items.Components.ItemComponent)})
+---`Field Private Instance`
+---@field components (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field updateableComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field drawableComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*IDrawableComponent)|(Barotrauma.Items.Components.IDrawableComponent[])
+---`Field Private Instance`
+---@field hasComponentsToDraw System.Boolean
+---`Field Public Instance`
+---@field body Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field originalWaterDragCoefficient System.Single
+---`Field Private Instance`
+---@field overrideWaterDragCoefficient System.Nullable*1System*Single
+---`Field Public Instance`
+---@field StaticBodyConfig System.Xml.Linq.XElement
+---`Field Public Instance`
+---@field StaticFixtures (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+---`Field Private Instance`
+---@field transformDirty System.Boolean
+---`Field Private Instance`
+---@field lastSentCondition System.Single
+---`Field Private Instance`
+---@field sendConditionUpdateTimer System.Single
+---`Field Private Instance`
+---@field prevCondition System.Single
+---`Field Private Instance`
+---@field condition System.Single
+---`Field Private Instance`
+---@field inWater System.Boolean
+---`Field Private Instance`
+---@field hasInWaterStatusEffects System.Boolean
+---`Field Private Instance`
+---@field hasNotInWaterStatusEffects System.Boolean
+---`Field Private Instance`
+---@field parentInventory Barotrauma.Inventory
+---`Field Private Instance`
+---@field ownInventory Barotrauma.ItemInventory
+---`Field Private Instance`
+---@field defaultRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field connections (System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Items*Components*Connection)|({[System.String]:(Barotrauma.Items.Components.Connection)})
+---`Field Private Instance`
+---@field repairables (System.Collections.Generic.List*1Barotrauma*Items*Components*Repairable)|(Barotrauma.Items.Components.Repairable[])
+---`Field Private Instance`
+---@field qualityComponent Barotrauma.Items.Components.Quality
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Concurrent.ConcurrentQueue*1System*Single)|(fun():(System.Single))
+---`Field Private Instance`
+---@field hasStatusEffectsOfType (System.Boolean-arr)|(System.Boolean[])
+---`Field Private Instance`
+---@field statusEffectLists (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field conditionMultiplierCampaign System.Single
+---`Field Public Instance`
+---@field OnInteract (System.Action)|(fun())
+---`Field Private Instance`
+---@field hasInGameEditableProperties System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field Equipper Barotrauma.Character
+---`Field Private Instance`
+---@field rootContainer Barotrauma.Item
+---`Field Private Instance`
+---@field inWaterProofContainer System.Boolean
+---`Field Private Instance`
+---@field container Barotrauma.Item
+---`Field Private Instance`
+---@field description System.String
+---`Field Private Instance`
+---@field descriptionTag System.String
+---`Field Private Instance`
+---@field scale System.Single
+---`Field NonPublic Instance`
+---@field spriteColor Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field HighlightColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Instance`
+---@field offsetOnSelectedMultiplier System.Single
+---`Field Private Instance`
+---@field healthMultiplier System.Single
+---`Field Private Instance`
+---@field maxRepairConditionMultiplier System.Single
+---`Field Private Instance`
+---@field indestructible System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field StolenDuringRound System.Boolean
+---`Field Private Instance`
+---@field spawnedInCurrentOutpost System.Boolean
+---`Field Private Instance`
+---@field allowStealing System.Boolean
+---`Field Public Instance`
+---@field IsSalvageMissionItem System.Boolean
+---`Field Private Instance`
+---@field originalOutpost System.String
+---`Field Private Instance`
+---@field waterProof System.Boolean
+---`Field Private Instance`
+---@field allowedSlots (System.Collections.Generic.HashSet*1Barotrauma*InvSlotType)|(Barotrauma.InvSlotType[])
+---`Field Public Instance`
+---@field OwnInventories (System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemInventory)|(Barotrauma.ItemInventory[])
+---`Field Public Instance`
+---@field AvailableSwaps (System.Collections.Generic.HashSet*1Barotrauma*ItemPrefab)|(Barotrauma.ItemPrefab[])
+---`Field Private Instance`
+---@field allPropertyObjects (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field statManager Barotrauma.ItemStatManager
+---`Field Public Instance`
+---@field OnDeselect (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field isActive System.Boolean
+---`Field Private Instance`
+---@field delayedSignals (System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Items*Components*Signal*2Barotrauma*Items*Components*Connection)|(System.ValueTuple*1Barotrauma*Items*Components*Signal*1Barotrauma*Items*Components*Connection[])
+---`Field Private Instance`
+---@field droppedStack (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field isDroppedStackOwner System.Boolean
+---`Field Public Static`
+---@field ItemList (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field dangerousItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field repairableItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field cleanableItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field deconstructItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field sonarVisibleItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Static`
+---@field ShowLinks System.Boolean
+---`Field Private Static`
+---@field itemsWithPendingConditionUpdates (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Static`
+---@field connectionPairs (System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Static`
+---@field DangerousItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Static`
+---@field RepairableItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Static`
+---@field CleanableItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Static`
+---@field DeconstructItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Getter Public Static`
+---@field SonarVisibleItems (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field Prefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Getter Public Instance`
+---@field HullOxygenPercentage System.Single
+---`Getter Public Instance`
+---@field CampaignInteractionType Barotrauma.CampaignMode.InteractionType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FullyInitialized System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterDragCoefficient System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyType FarseerPhysics.BodyType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DefaultRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Private Instance`
+---@field HasInGameEditableProperties System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EditableWhenEquipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ParentInventory Barotrauma.Inventory
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootContainer Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Container Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Description System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DescriptionTag System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonInteractable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonPlayerTeamInteractable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSwapping System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PurchasedNewSwap System.Boolean
+---`Getter Public Instance`
+---@field IsPlayerTeamInteractable System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationRad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---@field InteractDistance System.Single
+---`Getter Public Instance`
+---@field InteractPriority System.Single
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field InteractionRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PositionUpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field InventoryIconColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ContainerColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field ContainerIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field IsContained System.Boolean
+---`Getter Public Instance`
+---@field Speed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SonarLabel System.String
+---`Getter Public Instance`
+---@field PhysicsBodyActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SoundRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SightRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsShootable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAimToUse System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAimToSecondaryUse System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DontCleanUp System.Boolean
+---`Getter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsFullCondition System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxCondition System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConditionPercentage System.Single
+---`Getter Public Instance`
+---@field ConditionPercentageRelativeToDefaultMaxCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OffsetOnSelectedMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealthMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxRepairConditionMultiplier System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field HasBeenInstantiatedOnce System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Condition System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ConditionLastUpdated System.Double
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field LastConditionChange System.Single
+---`Getter Public Instance`
+---@field ConditionIncreasedRecently System.Boolean
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Indestructible System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDeconstruct System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InvulnerableToDamage System.Boolean
+---`Getter Public Instance`
+---@field Illegitimate System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnedInCurrentOutpost System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowStealing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OriginalOutpost System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tags System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FireProof System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WaterProof System.Boolean
+---`Getter Public Instance`
+---@field UseInHealthInterface System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Quality System.Int32
+---`Getter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastSentSignalRecipients (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---@field ConfigFilePath Barotrauma.ContentPath
+---`Getter Public Instance`
+---@field AllowedSlots (System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType))
+---`Getter Public Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---@field ContainedItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---@field OwnInventory Barotrauma.ItemInventory
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplaySideBySideWhenLinked System.Boolean
+---`Getter Public Instance`
+---@field Repairables (System.Collections.Generic.List*1Barotrauma*Items*Components*Repairable)|(Barotrauma.Items.Components.Repairable[])
+---`Getter Public Instance`
+---@field Components (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Getter Public Instance Virtual`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---@field WorldPositionX System.Single
+---`Getter Public Instance`
+---@field WorldPositionY System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PositionX System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PositionY System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Infector Barotrauma.MapCreatures.Behavior.BallastFloraBranch
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PendingItemSwap Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field AllPropertyObjects (System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field OrderedToBeIgnored System.Boolean
+---`Getter Public Instance`
+---@field HasBallastFloraInHull System.Boolean
+---`Getter Public Instance`
+---@field IsClaimedByBallastFlora System.Boolean
+---`Getter Public Instance`
+---@field InPlayerSubmarine System.Boolean
+---`Getter Public Instance`
+---@field InBeaconStation System.Boolean
+---`Getter Public Instance`
+---@field IsLadder System.Boolean
+---`Getter Public Instance`
+---@field IsSecondaryItem System.Boolean
+---`Getter Public Instance`
+---@field StatManager Barotrauma.ItemStatManager
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastEatenTime System.Single
+---`Getter Public Instance`
+---@field DroppedStack (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Item'] = {}
+
+---`Method Public Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param allowClientExecute System.Boolean
+_G['Item'].CreateDroppedStack = function(items, allowClientExecute) end
+
+---`Method Private Instance`
+---@param allowClientExecute System.Boolean
+_G['Item'].RemoveFromDroppedStack = function(allowClientExecute) end
+
+---`Method Private Instance`
+_G['Item'].SetDroppedStackItemStates = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Item'].GetStackedItems = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Item'].Equip = function(character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Item'].Unequip = function(character) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*ValueTuple*2System*Object*2Barotrauma*SerializableProperty)|(System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty[])
+_G['Item'].GetProperties = function() end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData Barotrauma.Item.ChangePropertyEventData
+---@param inGameEditableOnly System.Boolean
+_G['Item'].WritePropertyChange = function(msg, extraData, inGameEditableOnly) end
+
+---`Method Private Instance`
+---@param ignoreConditions? System.Boolean
+---@return (System.Collections.Generic.List*1System*ValueTuple*2System*Object*2Barotrauma*SerializableProperty)|(System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty[])
+_G['Item'].GetInGameEditableProperties = function(ignoreConditions) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param inGameEditableOnly System.Boolean
+---@param sender? Barotrauma.Networking.Client
+_G['Item'].ReadPropertyChange = function(msg, inGameEditableOnly, sender) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Item'].UpdateNetPosition = function(deltaTime) end
+
+---`Method Public Static`
+---@overload fun(element:Barotrauma.ContentXElement, submarine:Barotrauma.Submarine, idRemap:Barotrauma.IdRemap):(Barotrauma.Item)
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param createNetworkEvent System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Item
+_G['Item'].Load = function(element, submarine, createNetworkEvent, idRemap) end
+
+---`Method Private Instance`
+---@param replacement Barotrauma.ItemPrefab
+---@param newId System.UInt16
+_G['Item'].ReplaceFromNetwork = function(replacement, newId) end
+
+---`Method Public Instance`
+---@param replacement Barotrauma.ItemPrefab
+_G['Item'].ReplaceWithLinkedItems = function(replacement) end
+
+---`Method Private Instance`
+---@param replacement Barotrauma.ItemPrefab
+---@param newId Barotrauma.Option*1System*UInt16
+---@param createEntityEvent System.Boolean
+_G['Item'].Replace = function(replacement, newId, createEntityEvent) end
+
+---`Method Public Instance`
+---@param swappingTo Barotrauma.SwappableItem
+---@return (System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*ItemPrefab)|({[Barotrauma.Item]:(Barotrauma.ItemPrefab)})
+_G['Item'].GetConnectedItemsToSwap = function(swappingTo) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Item'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['Item'].Reset = function() end
+
+---`Method Public Instance Virtual`
+_G['Item'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Item'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Item'].Remove = function() end
+
+---`Method Private Instance`
+_G['Item'].RemoveFromLists = function() end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+_G['Item'].RemoveByPrefab = function(prefab) end
+
+---`Method Public Instance`
+---@param component System.String
+---@return System.Object
+_G['Item'].GetComponentString = function(component) end
+
+---`Method Public Instance`
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param isPreferencesDefined System.Boolean-ref
+---@param isSecondary System.Boolean-ref
+---@param requireConditionRestriction? System.Boolean
+---@return System.Boolean
+_G['Item'].IsContainerPreferred = function(container, isPreferencesDefined, isSecondary, requireConditionRestriction) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Item'].Clone = function() end
+
+---`Method Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+_G['Item'].AddComponent = function(component) end
+
+---`Method Public Instance`
+---@param drawable Barotrauma.Items.Components.IDrawableComponent
+_G['Item'].EnableDrawableComponent = function(drawable) end
+
+---`Method Public Instance`
+---@param drawable Barotrauma.Items.Components.IDrawableComponent
+_G['Item'].DisableDrawableComponent = function(drawable) end
+
+---`Method Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+---@return System.Int32
+_G['Item'].GetComponentIndex = function(component) end
+
+---`Method Public Instance`
+---@return Barotrauma.Item.T
+_G['Item'].GetComponent = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item*T)|(fun():(Barotrauma.Item.T))
+_G['Item'].GetComponents = function() end
+
+---`Method Public Instance`
+---@param statType Barotrauma.Items.Components.Quality.StatType
+---@return System.Single
+_G['Item'].GetQualityModifier = function(statType) end
+
+---`Method Public Instance`
+---@param contained Barotrauma.Item
+_G['Item'].RemoveContained = function(contained) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param findNewHull? System.Boolean
+---@param setPrevTransform? System.Boolean
+_G['Item'].SetTransform = function(simPosition, rotation, findNewHull, setPrevTransform) end
+
+---`Method Public Instance`
+---@param otherItem Barotrauma.Item
+---@return System.Boolean
+_G['Item'].AllowDroppingOnSwapWith = function(otherItem) end
+
+---`Method Public Instance`
+_G['Item'].SetActiveSprite = function() end
+
+---`Method Public Instance`
+_G['Item'].CheckCleanable = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Item'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance`
+---@param trigger Microsoft.Xna.Framework.Rectangle
+---@param world? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Item'].TransformTrigger = function(trigger, world) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Quad2D
+_G['Item'].GetTransformedQuad = function() end
+
+---`Method Public Static`
+_G['Item'].UpdateHulls = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Hull
+_G['Item'].FindHull = function() end
+
+---`Method Private Instance`
+_G['Item'].RefreshRootContainer = function() end
+
+---`Method Private Instance`
+_G['Item'].RefreshInWaterProofContainer = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Item'].HasAccess = function(character) end
+
+---`Method Public Instance`
+---@param entity Barotrauma.Entity
+---@return System.Boolean
+_G['Item'].IsOwnedBy = function(entity) end
+
+---`Method Public Instance`
+---@return Barotrauma.Entity
+_G['Item'].GetRootInventoryOwner = function() end
+
+---`Method Public Instance`
+---@param predicate (System.Func*1Barotrauma*Inventory*1System*Boolean)|(fun(arg:Barotrauma.Inventory):(System.Boolean))
+---@return Barotrauma.Inventory
+_G['Item'].FindParentInventory = function(predicate) end
+
+---`Method Public Instance`
+_G['Item'].SetContainedItemPositions = function() end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String)
+---@param tag Barotrauma.Identifier
+_G['Item'].AddTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.Identifier
+_G['Item'].RemoveTag = function(tag) end
+
+---`Method Public Instance`
+---@overload fun(tag:Barotrauma.Identifier):(System.Boolean)
+---@param allowedTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['Item'].HasTag = function(allowedTags) end
+
+---`Method Public Instance`
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return System.Boolean
+_G['Item'].HasIdentifierOrTags = function(identifiersOrTags) end
+
+---`Method Public Instance`
+---@overload fun(tag:System.String, newTag:System.String)
+---@param tag Barotrauma.Identifier
+---@param newTag Barotrauma.Identifier
+_G['Item'].ReplaceTag = function(tag, newTag) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['Item'].GetTags = function() end
+
+---`Method Public Instance`
+---@overload fun(conditional:Barotrauma.PropertyConditional):(System.Boolean)
+---@param conditional Barotrauma.PropertyConditional
+---@param checkContainer System.Boolean
+---@return System.Boolean
+_G['Item'].ConditionalMatches = function(conditional, checkContainer) end
+
+---`Method Public Instance`
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param isNetworkEvent? System.Boolean
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Item'].ApplyStatusEffects = function(type, deltaTime, character, limb, useTarget, isNetworkEvent, worldPosition) end
+
+---`Method Public Instance`
+---@param effect Barotrauma.StatusEffect
+---@param type Barotrauma.ActionType
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param isNetworkEvent? System.Boolean
+---@param checkCondition? System.Boolean
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Item'].ApplyStatusEffect = function(effect, type, deltaTime, character, limb, useTarget, isNetworkEvent, checkCondition, worldPosition) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Item'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Private Instance`
+---@param value System.Single
+---@param isNetworkEvent System.Boolean
+---@param executeEffects? System.Boolean
+_G['Item'].SetCondition = function(value, isNetworkEvent, executeEffects) end
+
+---`Method Public Instance`
+_G['Item'].RecalculateConditionValues = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Item'].IsInWater = function() end
+
+---`Method Public Instance`
+_G['Item'].SendPendingNetworkUpdates = function() end
+
+---`Method Private Instance`
+_G['Item'].SendPendingNetworkUpdatesInternal = function() end
+
+---`Method Public Instance`
+---@param loadingRound System.Boolean
+_G['Item'].CreateStatusEvent = function(loadingRound) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+_G['Item'].UpdatePendingConditionUpdates = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Item'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+_G['Item'].UpdateTransform = function() end
+
+---`Method Private Instance`
+_G['Item'].ApplyWaterForces = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Item'].OnCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param impact System.Single
+_G['Item'].HandleCollision = function(impact) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Item'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Item'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance`
+---@param connectionFilter? (System.Func*1Barotrauma*Items*Components*Connection*1System*Boolean)|(fun(arg:Barotrauma.Items.Components.Connection):(System.Boolean))
+---@return Barotrauma.Item.T
+_G['Item'].GetDirectlyConnectedComponent = function(connectionFilter) end
+
+---`Method Public Instance`
+---@param recursive? System.Boolean
+---@param allowTraversingBackwards? System.Boolean
+---@param connectionFilter? (System.Func*1Barotrauma*Items*Components*Connection*1System*Boolean)|(fun(arg:Barotrauma.Items.Components.Connection):(System.Boolean))
+---@return (System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[])
+_G['Item'].GetConnectedComponents = function(recursive, allowTraversingBackwards, connectionFilter) end
+
+---`Method Private Instance`
+---@overload fun(alreadySearched:(System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[]), connectedComponents:(System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[]), ignoreInactiveRelays?:System.Boolean, allowTraversingBackwards?:System.Boolean)
+---@param c Barotrauma.Items.Components.Connection
+---@param alreadySearched (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---@param connectedComponents (System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[])
+---@param ignoreInactiveRelays System.Boolean
+---@param allowTraversingBackwards? System.Boolean
+_G['Item'].GetConnectedComponentsRecursive = function(c, alreadySearched, connectedComponents, ignoreInactiveRelays, allowTraversingBackwards) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Items.Components.Connection
+---@param ignoreInactiveRelays? System.Boolean
+---@param allowTraversingBackwards? System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Item*T)|(Barotrauma.Item.T[])
+_G['Item'].GetConnectedComponentsRecursive = function(c, ignoreInactiveRelays, allowTraversingBackwards) end
+
+---`Method Public Instance`
+---@param tags? System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier
+---@return Barotrauma.Items.Components.Controller
+_G['Item'].FindController = function(tags) end
+
+---`Method Public Instance`
+---@param controller Barotrauma.Items.Components.Controller-ref
+---@param tags? System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier
+---@return System.Boolean
+_G['Item'].TryFindController = function(controller, tags) end
+
+---`Method Public Instance`
+---@overload fun(signal:System.String, connectionName:System.String)
+---@overload fun(signal:Barotrauma.Items.Components.Signal, connectionName:System.String)
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Item'].SendSignal = function(signal, connection) end
+
+---`Method Private Instance`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Item'].DelaySignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@overload fun(worldPosition:Microsoft.Xna.Framework.Vector2):(System.Boolean)
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param transformedTrigger Microsoft.Xna.Framework.Rectangle-ref
+---@return System.Boolean
+_G['Item'].IsInsideTrigger = function(worldPosition, transformedTrigger) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Networking.Client
+---@return System.Boolean
+_G['Item'].CanClientAccess = function(c) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param ignoreRequiredItems? System.Boolean
+---@param forceSelectKey? System.Boolean
+---@param forceUseKey? System.Boolean
+---@return System.Boolean
+_G['Item'].TryInteract = function(user, ignoreRequiredItems, forceSelectKey, forceUseKey) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Item'].GetContainedItemConditionPercentage = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param user? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param userForOnUsedEvent? Barotrauma.Character
+_G['Item'].Use = function(deltaTime, user, targetLimb, useTarget, userForOnUsedEvent) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+_G['Item'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param character Barotrauma.Character
+---@param targetLimb Barotrauma.Limb
+_G['Item'].ApplyTreatment = function(user, character, targetLimb) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Item'].Combine = function(item, user) end
+
+---`Method Public Instance`
+---@param dropper Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param setTransform? System.Boolean
+_G['Item'].Drop = function(dropper, createNetworkEvent, setTransform) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Item'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Item'].IgnoreByAI = function(character) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Item'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Item'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param entityID System.UInt16
+---@param originalInventoryID System.UInt16
+---@param originalItemContainerIndex System.Byte
+---@param originalSlotIndex System.Int32
+_G['Item'].WriteSpawnData = function(msg, entityID, originalInventoryID, originalItemContainerIndex, originalSlotIndex) end
+
+---`Method Public Instance`
+---@param recipient Barotrauma.Networking.Client
+---@return System.Single
+_G['Item'].GetPositionUpdateInterval = function(recipient) end
+
+---`Method Public Instance Virtual`
+---@param tempBuffer Barotrauma.Networking.ReadWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['Item'].ServerWritePosition = function(tempBuffer, c) end
+
+---`Method Public Instance`
+---@overload fun(ic:Barotrauma.Item.T)
+---@param ic Barotrauma.Item.T
+---@param extraData Barotrauma.Items.Components.ItemComponent.IEventData
+_G['Item'].CreateServerEvent = function(ic, extraData) end
+
+---`Method Public Instance`
+_G['Item'].TryCreateServerEventSpam = function() end
+
+---`Method Public Instance`
+---@overload fun(component:System.String):(System.Object)
+---@param component System.String
+---@param extraData (System.Object-arr)|(System.Object[])
+---@return System.Object
+_G['Item'].CreateServerEventString = function(component, extraData) end
+
+---`Method Public Instance`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@param targetClients? (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['Item'].AssignCampaignInteractionType = function(interactionType, targetClients) end
+
+---`Method Private Instance`
+---@param interactionType Barotrauma.CampaignMode.InteractionType
+---@param targetClients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['Item'].AssignCampaignInteractionTypeProjSpecific = function(interactionType, targetClients) end
+
+---`Method Public Instance`
+_G['Item'].ResetWaterDragCoefficient = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Item'].IsInteractable = function(character) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'] = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'].__new = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'] = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Item
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, position:Microsoft.Xna.Framework.Vector2, submarine:Barotrauma.Submarine, id?:System.UInt16, callOnItemLoaded?:System.Boolean):Barotrauma.Item
+---@param newRect Microsoft.Xna.Framework.Rectangle
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param submarine Barotrauma.Submarine
+---@param callOnItemLoaded? System.Boolean
+---@param id? System.UInt16
+---@return Barotrauma.Item
+_G['Item'].__new = function(newRect, itemPrefab, submarine, callOnItemLoaded, id) end
+
diff --git a/Meta/Types/server/_00007FFD96907FB8.lua b/Meta/Types/server/_00007FFD96907FB8.lua
new file mode 100644
index 0000000..d3a03a7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96907FB8.lua
@@ -0,0 +1,78 @@
+---@meta
+---@class Barotrauma.ItemInventory : Barotrauma.Inventory
+---`Field Private Instance`
+---@field container Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field Container Barotrauma.Items.Components.ItemContainer
+_G['ItemInventory'] = {}
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param inventoryData Barotrauma.Item.InventoryStateEventData
+_G['ItemInventory'].ServerEventWrite = function(msg, c, inventoryData) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param ignoreCondition? System.Boolean
+---@return System.Int32
+_G['ItemInventory'].FindAllowedSlot = function(item, ignoreCondition) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, i:System.Int32, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param quality? System.Nullable*1System*Int32
+---@return System.Boolean
+_G['ItemInventory'].CanBePutInSlot = function(itemPrefab, i, condition, quality) end
+
+---`Method Public Instance Virtual`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param i System.Int32
+---@param condition System.Nullable*1System*Single
+---@param ignoreItemsInSlot? System.Boolean
+---@return System.Int32
+_G['ItemInventory'].HowManyCanBePut = function(itemPrefab, i, condition, ignoreItemsInSlot) end
+
+---`Method Public Instance Virtual`
+---@param takeStacksIntoAccount? System.Boolean
+---@return System.Boolean
+_G['ItemInventory'].IsFull = function(takeStacksIntoAccount) end
+
+---`Method Public Instance Virtual`
+---@overload fun(item:Barotrauma.Item, user:Barotrauma.Character, allowedSlots?:(System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType)|(fun():(Barotrauma.InvSlotType)), createNetworkEvent?:System.Boolean, ignoreCondition?:System.Boolean):(System.Boolean)
+---@param item Barotrauma.Item
+---@param i System.Int32
+---@param allowSwapping System.Boolean
+---@param allowCombine System.Boolean
+---@param user Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param ignoreCondition? System.Boolean
+---@return System.Boolean
+_G['ItemInventory'].TryPutItem = function(item, i, allowSwapping, allowCombine, user, createNetworkEvent, ignoreCondition) end
+
+---`Method NonPublic Instance Virtual`
+---@param slotRange System.Range
+_G['ItemInventory'].CreateNetworkEvent = function(slotRange) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+_G['ItemInventory'].RemoveItem = function(item) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Item
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param capacity System.Int32
+---@param slotsPerRow? System.Int32
+---@return Barotrauma.ItemInventory
+_G['ItemInventory'] = function(owner, container, capacity, slotsPerRow) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Item
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param capacity System.Int32
+---@param slotsPerRow? System.Int32
+---@return Barotrauma.ItemInventory
+_G['ItemInventory'].__new = function(owner, container, capacity, slotsPerRow) end
+
diff --git a/Meta/Types/server/_00007FFD96909A00.lua b/Meta/Types/server/_00007FFD96909A00.lua
new file mode 100644
index 0000000..23012be
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96909A00.lua
@@ -0,0 +1,15 @@
+---@meta
+---@class Barotrauma.AIObjectiveCombat.CombatMode : System.Enum
+---`Field Public Static`
+---@field Defensive Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field Offensive Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field Arrest Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field Retreat Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Public Static`
+---@field None Barotrauma.AIObjectiveCombat.CombatMode
+_G['AIObjectiveCombat']['CombatMode'] = {}
+_G['CombatMode'] = _G['AIObjectiveCombat']['CombatMode']
+
diff --git a/Meta/Types/server/_00007FFD96909B88.lua b/Meta/Types/server/_00007FFD96909B88.lua
new file mode 100644
index 0000000..cb95da8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96909B88.lua
@@ -0,0 +1,336 @@
+---@meta
+---@class Barotrauma.AIObjectiveCombat : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field initialMode Barotrauma.AIObjectiveCombat.CombatMode
+---`Field Private Instance`
+---@field checkWeaponsTimer System.Single
+---`Field Private Instance`
+---@field ignoreWeaponTimer System.Single
+---`Field Private Instance`
+---@field holdFireTimer System.Single
+---`Field Private Instance`
+---@field hasAimed System.Boolean
+---`Field Private Instance`
+---@field isLethalWeapon System.Boolean
+---`Field Private Instance`
+---@field allowCooldown System.Boolean
+---`Field Private Instance`
+---@field _weapon Barotrauma.Item
+---`Field Private Instance`
+---@field _weaponComponent Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field findSafety Barotrauma.AIObjectiveFindSafety
+---`Field Private Instance`
+---@field weapons (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+---`Field Private Instance`
+---@field ignoredWeapons (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field seekAmmunitionObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field retreatObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field followTargetObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field seekWeaponObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field retreatTarget Barotrauma.Hull
+---`Field Private Instance`
+---@field coolDownTimer System.Single
+---`Field Private Instance`
+---@field pathBackTimer System.Single
+---`Field Private Instance`
+---@field myBodies (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---`Field Private Instance`
+---@field aimTimer System.Single
+---`Field Private Instance`
+---@field reloadTimer System.Single
+---`Field Private Instance`
+---@field spreadTimer System.Single
+---`Field Private Instance`
+---@field canSeeTarget System.Boolean
+---`Field Private Instance`
+---@field visibilityCheckTimer System.Single
+---`Field Private Instance`
+---@field sqrDistance System.Single
+---`Field Private Instance`
+---@field distanceTimer System.Single
+---`Field Public Instance`
+---@field AllowHoldFire System.Boolean
+---`Field Public Instance`
+---@field SpeakWarnings System.Boolean
+---`Field Private Instance`
+---@field firstWarningTriggered System.Boolean
+---`Field Private Instance`
+---@field lastWarningTriggered System.Boolean
+---`Field Private Instance`
+---@field arrestingRegistered System.Boolean
+---`Field Public Instance`
+---@field holdFireCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Field Private Instance`
+---@field findHullTimer System.Single
+---`Field Private Static`
+---@field CheckWeaponsInterval System.Single
+---`Field Private Static`
+---@field IgnoredWeaponsClearTime System.Single
+---`Field Private Static`
+---@field GoodWeaponPriority System.Single
+---`Field Private Static`
+---@field DefaultCoolDown System.Single
+---`Field Private Static`
+---@field PathBackCheckTime System.Single
+---`Field Private Static`
+---@field VisibilityCheckInterval System.Single
+---`Field Private Static`
+---@field MaxDistance System.Single
+---`Field Private Static`
+---@field DistanceCheckInterval System.Single
+---`Field Private Static`
+---@field CloseDistanceThreshold System.Single
+---`Field Private Static`
+---@field FloorHeightApproximate System.Single
+---`Field Private Static`
+---@field ArrestTargetDistance System.Single
+---`Field Private Static`
+---@field findHullInterval System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Private Instance`
+---@field AllowCoolDown System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Enemy Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldPosition System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Weapon Barotrauma.Item
+---`Getter Private Instance`
+---@field WeaponComponent Barotrauma.Items.Components.ItemComponent
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ArrestHoldFireTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Mode Barotrauma.AIObjectiveCombat.CombatMode
+---`Getter Private Instance`
+---@field IsOffensiveOrArrest System.Boolean
+---`Getter Private Instance`
+---@field TargetEliminated System.Boolean
+---`Getter Private Instance`
+---@field IsEnemyDisabled System.Boolean
+---`Getter Private Instance`
+---@field AimSpeed System.Single
+---`Getter Private Instance`
+---@field AimAccuracy System.Single
+---`Getter Private Instance`
+---@field ShouldUnequipWeapon System.Boolean
+_G['AIObjectiveCombat'] = {}
+
+---`Method Private Instance`
+---@param margin System.Single
+---@return System.Boolean
+_G['AIObjectiveCombat'].IsEnemyClose = function(margin) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveCombat'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveCombat'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Move = function(deltaTime) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveCombat'].TryArm = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].OperateWeapon = function(deltaTime) end
+
+---`Method Private Instance`
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return Barotrauma.Item
+_G['AIObjectiveCombat'].FindWeapon = function(weaponComponent) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@return Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveCombat'].GetWeaponComponent = function(item) end
+
+---`Method Private Instance`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@param prioritizeMelee System.Boolean
+---@param canSeekAmmo System.Boolean
+---@param lethalDmg System.Single-ref
+---@return System.Single
+_G['AIObjectiveCombat'].GetWeaponPriority = function(weapon, prioritizeMelee, canSeekAmmo, lethalDmg) end
+
+---`Method Private Instance`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@param attack Barotrauma.Attack
+---@return System.Single
+_G['AIObjectiveCombat'].ApproximateStunDamage = function(weapon, attack) end
+
+---`Method Private Static`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@return System.Boolean
+_G['AIObjectiveCombat'].CanMeleeStunnerStun = function(weapon) end
+
+---`Method Private Instance`
+---@param weaponList (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemComponent)|(fun():(Barotrauma.Items.Components.ItemComponent))
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent-ref
+---@return Barotrauma.Item
+_G['AIObjectiveCombat'].GetWeapon = function(weaponList, weaponComponent) end
+
+---`Method Public Static`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@return System.Single
+_G['AIObjectiveCombat'].GetLethalDamage = function(weapon) end
+
+---`Method Private Static`
+---@param weapon Barotrauma.Items.Components.ItemComponent
+---@return Barotrauma.Attack
+_G['AIObjectiveCombat'].GetAttackDefinition = function(weapon) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*ItemComponent)|(Barotrauma.Items.Components.ItemComponent[])
+_G['AIObjectiveCombat'].FindWeaponsFromInventory = function() end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@param weaponList (System.Collections.Generic.ICollection*1Barotrauma*Items*Components*ItemComponent)|(fun():(Barotrauma.Items.Components.ItemComponent))
+_G['AIObjectiveCombat'].GetWeapons = function(item, weaponList) end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].UnequipWeapon = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveCombat'].Equip = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Retreat = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Engage = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].RemoveFollowTarget = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].OnArrestTargetReached = function() end
+
+---`Method Private Instance`
+---@param ammunitionIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['AIObjectiveCombat'].SeekAmmunition = function(ammunitionIdentifiers) end
+
+---`Method Private Instance`
+---@param seekAmmo System.Boolean
+---@return System.Boolean
+_G['AIObjectiveCombat'].Reload = function(seekAmmo) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].Attack = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveCombat'].UseWeapon = function(deltaTime) end
+
+---`Method Private Instance`
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent
+---@return System.Single
+_G['AIObjectiveCombat'].GetReloadTime = function(weaponComponent) end
+
+---`Method Private Instance`
+---@param weaponComponent Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveCombat'].SetReloadTime = function(weaponComponent) end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].ClearInputs = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveCombat'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveCombat'].OnAbandon = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCombat'].OnDeselected = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveCombat'].Reset = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveCombat'].SpeakNoWeapons = function() end
+
+---`Method Private Instance`
+---@param textIdentifier Barotrauma.Identifier
+---@param delay System.Single
+---@param minDurationBetweenSimilar System.Single
+_G['AIObjectiveCombat'].PlayerCrewSpeak = function(textIdentifier, delay, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param textIdentifier Barotrauma.Identifier
+---@param delay System.Single
+---@param minDurationBetweenSimilar System.Single
+_G['AIObjectiveCombat'].FriendlyGuardSpeak = function(textIdentifier, delay, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param textIdentifier Barotrauma.Identifier
+---@param delay System.Single
+---@param minDurationBetweenSimilar System.Single
+_G['AIObjectiveCombat'].Speak = function(textIdentifier, delay, minDurationBetweenSimilar) end
+
+---`Method Private Instance`
+---@param newTimer System.Single
+_G['AIObjectiveCombat'].SetAimTimer = function(newTimer) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param enemy Barotrauma.Character
+---@param mode Barotrauma.AIObjectiveCombat.CombatMode
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param coolDown? System.Single
+---@return Barotrauma.AIObjectiveCombat
+_G['AIObjectiveCombat'] = function(character, enemy, mode, objectiveManager, priorityModifier, coolDown) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param enemy Barotrauma.Character
+---@param mode Barotrauma.AIObjectiveCombat.CombatMode
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param coolDown? System.Single
+---@return Barotrauma.AIObjectiveCombat
+_G['AIObjectiveCombat'].__new = function(character, enemy, mode, objectiveManager, priorityModifier, coolDown) end
+
diff --git a/Meta/Types/server/_00007FFD9690A3D0.lua b/Meta/Types/server/_00007FFD9690A3D0.lua
new file mode 100644
index 0000000..a7bfd1d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690A3D0.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.AIObjectiveContainItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field GetItemPriority (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---`Field Public Instance`
+---@field ignoredContainerIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field checkInventory System.Boolean
+---`Field Private Instance`
+---@field spawnItemIfNotFound System.Boolean
+---`Field Public Instance`
+---@field itemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field container Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field item Barotrauma.Item
+---`Field Public Instance`
+---@field TargetSlot System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field containedItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field _itemCount System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ItemToContain Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowToFindDivingGear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDangerousPressure System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionLevel System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExisting System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingWhenNecessary System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingPredicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveMax System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemCount System.Int32
+_G['AIObjectiveContainItem'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveContainItem'].CheckObjectiveState = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveContainItem'].CountItems = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveContainItem'].CheckItem = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveContainItem'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveContainItem'].IsInTargetSlot = function(item) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveContainItem'].Reset = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, item:Barotrauma.Item, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single):Barotrauma.AIObjectiveContainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveContainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveContainItem
+_G['AIObjectiveContainItem'] = function(character, itemIdentifiers, container, objectiveManager, priorityModifier, spawnItemIfNotFound) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, item:Barotrauma.Item, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single):Barotrauma.AIObjectiveContainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, container:Barotrauma.Items.Components.ItemContainer, objectiveManager:Barotrauma.AIObjectiveManager, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveContainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveContainItem
+_G['AIObjectiveContainItem'].__new = function(character, itemIdentifiers, container, objectiveManager, priorityModifier, spawnItemIfNotFound) end
+
diff --git a/Meta/Types/server/_00007FFD9690A960.lua b/Meta/Types/server/_00007FFD9690A960.lua
new file mode 100644
index 0000000..2110cc4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690A960.lua
@@ -0,0 +1,93 @@
+---@meta
+---@class Barotrauma.AIObjectiveDecontainItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field GetItemPriority (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---`Field Private Instance`
+---@field itemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field sourceContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field targetContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field containObjective Barotrauma.AIObjectiveContainItem
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---@field GetItemObjective Barotrauma.AIObjectiveGetItem
+---`Getter Public Instance`
+---@field ContainObjective Barotrauma.AIObjectiveContainItem
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.Item
+---`Getter Public Instance`
+---@field TargetContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TakeWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DropIfFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingWhenNecessary System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingPredicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveExistingMax System.Nullable*1System*Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbandonGetItemDialogueIdentifier System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AbandonGetItemDialogueCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+_G['AIObjectiveDecontainItem'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveDecontainItem'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveDecontainItem'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveDecontainItem'].Reset = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveDecontainItem'].OnAbandon = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer?:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param sourceContainer Barotrauma.Items.Components.ItemContainer
+---@param targetContainer? Barotrauma.Items.Components.ItemContainer
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveDecontainItem
+_G['AIObjectiveDecontainItem'] = function(character, itemIdentifiers, objectiveManager, sourceContainer, targetContainer, priorityModifier) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer?:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@overload fun(character:Barotrauma.Character, itemIdentifier:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, sourceContainer:Barotrauma.Items.Components.ItemContainer, targetContainer?:Barotrauma.Items.Components.ItemContainer, priorityModifier?:System.Single):Barotrauma.AIObjectiveDecontainItem
+---@param character Barotrauma.Character
+---@param itemIdentifiers (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param sourceContainer Barotrauma.Items.Components.ItemContainer
+---@param targetContainer? Barotrauma.Items.Components.ItemContainer
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveDecontainItem
+_G['AIObjectiveDecontainItem'].__new = function(character, itemIdentifiers, objectiveManager, sourceContainer, targetContainer, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD9690AC70.lua b/Meta/Types/server/_00007FFD9690AC70.lua
new file mode 100644
index 0000000..dd70a7b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690AC70.lua
@@ -0,0 +1,68 @@
+---@meta
+---@class Barotrauma.AIObjectiveEscapeHandcuffs : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field escapeProgress System.Int32
+---`Field Private Instance`
+---@field isBeingWatched System.Boolean
+---`Field Private Instance`
+---@field shouldSwitchTeams System.Boolean
+---`Field Private Instance`
+---@field escapeTimer System.Single
+---`Field Private Instance`
+---@field updateTimer System.Single
+---`Field Private Static`
+---@field EscapeTeamChangeIdentifier System.String
+---`Field Private Static`
+---@field EscapeIntervalTimer System.Single
+---`Field Private Static`
+---@field UpdateIntervalTimer System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+_G['AIObjectiveEscapeHandcuffs'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveEscapeHandcuffs'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveEscapeHandcuffs'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveEscapeHandcuffs'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveEscapeHandcuffs'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveEscapeHandcuffs'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param shouldSwitchTeams? System.Boolean
+---@param beginInstantly? System.Boolean
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveEscapeHandcuffs
+_G['AIObjectiveEscapeHandcuffs'] = function(character, objectiveManager, shouldSwitchTeams, beginInstantly, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param shouldSwitchTeams? System.Boolean
+---@param beginInstantly? System.Boolean
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveEscapeHandcuffs
+_G['AIObjectiveEscapeHandcuffs'].__new = function(character, objectiveManager, shouldSwitchTeams, beginInstantly, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD9690B088.lua b/Meta/Types/server/_00007FFD9690B088.lua
new file mode 100644
index 0000000..29eccf1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690B088.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class Barotrauma.AIObjectiveExtinguishFire : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field targetHull Barotrauma.Hull
+---`Field Private Instance`
+---@field getExtinguisherObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field gotoObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field sinTime System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectiveExtinguishFire'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveExtinguishFire'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveExtinguishFire'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveExtinguishFire'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveExtinguishFire'].Reset = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveExtinguishFire'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveExtinguishFire'].OnAbandon = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetHull Barotrauma.Hull
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFire
+_G['AIObjectiveExtinguishFire'] = function(character, targetHull, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetHull Barotrauma.Hull
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFire
+_G['AIObjectiveExtinguishFire'].__new = function(character, targetHull, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD9690B400.lua b/Meta/Types/server/_00007FFD9690B400.lua
new file mode 100644
index 0000000..0dc5692
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690B400.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.AIObjectiveExtinguishFires : Barotrauma.AIObjectiveLoop*1Barotrauma*Hull
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveExtinguishFires'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param hull Barotrauma.Hull
+---@return System.Boolean
+_G['AIObjectiveExtinguishFires'].IsValidTarget = function(hull) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveExtinguishFires'].IsValidTarget = function(hull, character) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveExtinguishFires'].GetTargetPriority = function() end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@return System.Single
+_G['AIObjectiveExtinguishFires'].GetFireSeverity = function(hull) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+_G['AIObjectiveExtinguishFires'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Hull
+---@return Barotrauma.AIObjective
+_G['AIObjectiveExtinguishFires'].ObjectiveConstructor = function(target) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Hull
+_G['AIObjectiveExtinguishFires'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFires
+_G['AIObjectiveExtinguishFires'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveExtinguishFires
+_G['AIObjectiveExtinguishFires'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD9690C328.lua b/Meta/Types/server/_00007FFD9690C328.lua
new file mode 100644
index 0000000..fe29b43
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690C328.lua
@@ -0,0 +1,493 @@
+---@meta
+---@class Barotrauma.Hull : Barotrauma.MapEntity
+---`Field Private Instance`
+---@field lastSentVolume System.Single
+---`Field Private Instance`
+---@field lastSentOxygen System.Single
+---`Field Private Instance`
+---@field lastSentFireCount System.Int32
+---`Field Private Instance`
+---@field statusUpdateTimer System.Single
+---`Field Private Instance`
+---@field decalUpdateTimer System.Single
+---`Field Private Instance`
+---@field backgroundSectionUpdateTimer System.Single
+---`Field Private Instance`
+---@field decalUpdatePending System.Boolean
+---`Field Public Instance`
+---@field properties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Field Private Instance`
+---@field lethalPressure System.Single
+---`Field Private Instance`
+---@field surface System.Single
+---`Field Private Instance`
+---@field waterVolume System.Single
+---`Field Private Instance`
+---@field pressure System.Single
+---`Field Private Instance`
+---@field oxygen System.Single
+---`Field Private Instance`
+---@field update System.Boolean
+---`Field Public Instance`
+---@field Visible System.Boolean
+---`Field Private Instance`
+---@field waveY (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field waveVel (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field leftDelta (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field rightDelta (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field decals (System.Collections.Generic.List*1Barotrauma*Decal)|(Barotrauma.Decal[])
+---`Field Public Instance`
+---@field ConnectedGaps (System.Collections.Generic.List*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Private Instance`
+---@field moduleTags (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field roomName System.String
+---`Field Public Instance`
+---@field OriginalAmbientLight System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Instance`
+---@field ambientLight Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field isWetRoom System.Boolean
+---`Field Private Instance`
+---@field avoidStaying System.Boolean
+---`Field Private Instance`
+---@field pendingSectionUpdates (System.Collections.Generic.HashSet*1System*Int32)|(System.Int32[])
+---`Field Public Instance`
+---@field xBackgroundMax System.Int32
+---`Field Public Instance`
+---@field yBackgroundMax System.Int32
+---`Field Private Instance`
+---@field networkUpdatePending System.Boolean
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field adjacentHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Public Static`
+---@field HullList (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Public Static`
+---@field EntityGrids (System.Collections.Generic.List*1Barotrauma*EntityGrid)|(Barotrauma.EntityGrid[])
+---`Field Public Static`
+---@field ShowHulls System.Boolean
+---`Field Public Static`
+---@field EditWater System.Boolean
+---`Field Public Static`
+---@field EditFire System.Boolean
+---`Field Public Static`
+---@field WaveStiffness System.Single
+---`Field Public Static`
+---@field WaveSpread System.Single
+---`Field Public Static`
+---@field WaveDampening System.Single
+---`Field Public Static`
+---@field OxygenDistributionSpeed System.Single
+---`Field Public Static`
+---@field OxygenDeteriorationSpeed System.Single
+---`Field Public Static`
+---@field OxygenConsumptionSpeed System.Single
+---`Field Public Static`
+---@field WaveWidth System.Int32
+---`Field Public Static`
+---@field MaxCompress System.Single
+---`Field Public Static`
+---@field BackgroundSectionSize System.Int32
+---`Field Public Static`
+---@field BackgroundSectionsPerNetworkEvent System.Int32
+---`Field Public Static`
+---@field PressureBuildUpSpeed System.Single
+---`Field Public Static`
+---@field PressureDropSpeed System.Single
+---`Field Public Static`
+---@field MaxDecalsPerHull System.Int32
+---`Field Private Static`
+---@field sectorWidth System.Int32
+---`Field Private Static`
+---@field sectorHeight System.Int32
+---`Field Private Static`
+---@field minColorStrength System.Single
+---`Field Private Static`
+---@field maxColorStrength System.Single
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field OutpostModuleTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RoomName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AmbientLight Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Linkable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LethalPressure System.Single
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CeilingHeight System.Single
+---`Getter Public Instance`
+---@field Surface System.Single
+---`Getter Public Instance`
+---@field WorldSurface System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterVolume System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Oxygen System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsAirlock System.Boolean
+---`Getter Private Instance`
+---@field ForceAsWetRoom System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsWetRoom System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvoidStaying System.Boolean
+---`Getter Public Instance`
+---@field WaterPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenPercentage System.Single
+---`Getter Public Instance`
+---@field Volume System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Pressure System.Single
+---`Getter Public Instance`
+---@field WaveY (System.Single-arr)|(System.Single[])
+---`Getter Public Instance`
+---@field WaveVel (System.Single-arr)|(System.Single[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BackgroundSections (System.Collections.Generic.List*1Barotrauma*BackgroundSection)|(Barotrauma.BackgroundSection[])
+---`Getter Public Instance`
+---@field SupportsPaintedColors System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AveragePaintedColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field IsRed System.Boolean
+---`Getter Public Instance`
+---@field IsGreen System.Boolean
+---`Getter Public Instance`
+---@field IsBlue System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FireSources (System.Collections.Generic.List*1Barotrauma*FireSource)|(Barotrauma.FireSource[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FakeFireSources (System.Collections.Generic.List*1Barotrauma*DummyFireSource)|(Barotrauma.DummyFireSource[])
+---`Getter Public Instance`
+---@field FireCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BallastFlora Barotrauma.MapCreatures.Behavior.BallastFloraBehavior
+_G['Hull'] = {}
+
+---`Method Public Instance`
+---@return System.String
+_G['Hull'].CreateRoomName = function() end
+
+---`Method Private Instance`
+_G['Hull'].DetermineIsAirlock = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Hull'].LeadsOutside = function(character) end
+
+---`Method Private Instance`
+_G['Hull'].CreateBackgroundSections = function() end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Hull
+_G['Hull'].GetCleanTarget = function(worldPosition) end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.BackgroundSection
+_G['Hull'].GetBackgroundSection = function(worldPosition) end
+
+---`Method Public Instance`
+---@param rectArea Microsoft.Xna.Framework.Rectangle
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*BackgroundSection)|(fun():(Barotrauma.BackgroundSection))
+_G['Hull'].GetBackgroundSectionsViaContaining = function(rectArea) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param row System.Int32
+---@return System.Boolean
+_G['Hull'].DoesSectionMatch = function(index, row) end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@param color System.Nullable*1Microsoft*Xna*Framework*Color
+---@param strength System.Nullable*1System*Single
+---@param requiresUpdate System.Boolean
+---@param isCleaning System.Boolean
+_G['Hull'].IncreaseSectionColorOrStrength = function(section, color, strength, requiresUpdate, isCleaning) end
+
+---`Method Private Instance`
+_G['Hull'].RefreshAveragePaintedColor = function() end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@param color System.Nullable*1Microsoft*Xna*Framework*Color
+---@param strength System.Nullable*1System*Single
+_G['Hull'].SetSectionColorOrStrength = function(section, color, strength) end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@param cleanVal System.Single
+---@param updateRequired System.Boolean
+_G['Hull'].CleanSection = function(section, cleanVal, updateRequired) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Hull
+_G['Hull'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Hull'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Hull'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Hull'].IsMouseOn = function(position) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Hull'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Hull'].ServerEventRead = function(msg, c) end
+
+---`Method Public Static`
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Hull'].GetBorders = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Hull'].Clone = function() end
+
+---`Method Public Static`
+---@overload fun(worldRect:Microsoft.Xna.Framework.Rectangle):(Barotrauma.EntityGrid)
+---@param submarine Barotrauma.Submarine
+---@return Barotrauma.EntityGrid
+_G['Hull'].GenerateEntityGrid = function(submarine) end
+
+---`Method Public Instance`
+---@param tags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['Hull'].SetModuleTags = function(tags) end
+
+---`Method Public Instance Virtual`
+_G['Hull'].OnMapLoaded = function() end
+
+---`Method Public Instance`
+---@param submarine Barotrauma.Submarine
+_G['Hull'].AddToGrid = function(submarine) end
+
+---`Method Public Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2):(System.Int32)
+---@param xPos System.Single
+---@return System.Int32
+_G['Hull'].GetWaveIndex = function(xPos) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Hull'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+_G['Hull'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Hull'].Remove = function() end
+
+---`Method Public Instance`
+---@param fireSource Barotrauma.FireSource
+_G['Hull'].AddFireSource = function(fireSource) end
+
+---`Method Public Instance`
+---@overload fun(decalId:System.UInt32, worldPosition:Microsoft.Xna.Framework.Vector2, scale:System.Single, isNetworkEvent:System.Boolean, spriteIndex?:System.Nullable*1System*Int32):(Barotrauma.Decal)
+---@param decalName System.String
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param scale System.Single
+---@param isNetworkEvent System.Boolean
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['Hull'].AddDecal = function(decalName, worldPosition, scale, isNetworkEvent, spriteIndex) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Hull'].SharedStatusWrite = function(msg) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param backgroundSectionsEventData Barotrauma.BackgroundSectionsEventData-ref
+_G['Hull'].SharedBackgroundSectionsWrite = function(msg, backgroundSectionsEventData) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param newWaterVolume System.Single-ref
+---@param newFireSources Barotrauma.NetworkFireSource-arr-ref
+_G['Hull'].SharedStatusRead = function(msg, newWaterVolume, newFireSources) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param action (System.Action*1Barotrauma*Hull*BackgroundSectionNetworkUpdate)|(fun(obj:Barotrauma.Hull.BackgroundSectionNetworkUpdate))
+---@param sectorToUpdate System.Int32-ref
+_G['Hull'].SharedBackgroundSectionRead = function(msg, action, sectorToUpdate) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Hull'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Hull'].UpdateProjSpecific = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param item Barotrauma.Item
+_G['Hull'].ApplyFlowForces = function(deltaTime, item) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param amount System.Single
+---@param position Microsoft.Xna.Framework.Vector2
+---@param extinguishRealFires? System.Boolean
+---@param extinguishFakeFires? System.Boolean
+_G['Hull'].Extinguish = function(deltaTime, amount, position, extinguishRealFires, extinguishFakeFires) end
+
+---`Method Public Instance`
+---@param fire Barotrauma.FireSource
+_G['Hull'].RemoveFire = function(fire) end
+
+---`Method Public Instance`
+---@param includingThis System.Boolean
+---@param searchDepth? System.Nullable*1System*Int32
+---@param ignoreClosedGaps? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+_G['Hull'].GetConnectedHulls = function(includingThis, searchDepth, ignoreClosedGaps) end
+
+---`Method Private Instance`
+---@param connectedHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---@param step System.Int32-ref
+---@param searchDepth System.Int32
+---@param ignoreClosedGaps? System.Boolean
+_G['Hull'].GetAdjacentHulls = function(connectedHulls, step, searchDepth, ignoreClosedGaps) end
+
+---`Method Public Instance`
+---@param startPos Microsoft.Xna.Framework.Vector2
+---@param endPos Microsoft.Xna.Framework.Vector2
+---@param targetHull Barotrauma.Hull
+---@param maxDistance System.Single
+---@param distanceMultiplierPerClosedDoor? System.Single
+---@return System.Single
+_G['Hull'].GetApproximateDistance = function(startPos, endPos, targetHull, maxDistance, distanceMultiplierPerClosedDoor) end
+
+---`Method Private Instance`
+---@param startPos Microsoft.Xna.Framework.Vector2
+---@param endPos Microsoft.Xna.Framework.Vector2
+---@param connectedHulls (System.Collections.Generic.HashSet*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---@param target Barotrauma.Hull
+---@param distance System.Single
+---@param maxDistance System.Single
+---@param distanceMultiplierFromDoors? System.Single
+---@return System.Single
+_G['Hull'].GetApproximateHullDistance = function(startPos, endPos, connectedHulls, target, distance, maxDistance, distanceMultiplierFromDoors) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param guess? Barotrauma.Hull
+---@param useWorldCoordinates? System.Boolean
+---@param inclusive? System.Boolean
+---@return Barotrauma.Hull
+_G['Hull'].FindHull = function(position, guess, useWorldCoordinates, inclusive) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param guess? Barotrauma.Hull
+---@param useWorldCoordinates? System.Boolean
+---@param inclusive? System.Boolean
+---@return Barotrauma.Hull
+_G['Hull'].FindHullUnoptimized = function(position, guess, useWorldCoordinates, inclusive) end
+
+---`Method Public Static`
+---@param c? Barotrauma.Character
+_G['Hull'].DetectItemVisibility = function(c) end
+
+---`Method Private Instance`
+---@param other Barotrauma.Hull
+---@param allowIndirect? System.Boolean
+---@return System.Boolean
+_G['Hull'].CanSeeOther = function(other, allowIndirect) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'] = function(rectangle, submarine, id) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'].__new = function(rectangle, submarine, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'] = function(rectangle, submarine, id) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Hull
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Hull
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@return Barotrauma.Hull
+_G['Hull'].__new = function(rectangle, submarine, id) end
+
diff --git a/Meta/Types/server/_00007FFD9690C878.lua b/Meta/Types/server/_00007FFD9690C878.lua
new file mode 100644
index 0000000..93731ed
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690C878.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class Barotrauma.AIObjectiveFightIntruders : Barotrauma.AIObjectiveLoop*1Barotrauma*Character
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field IgnoreListClearInterval System.Single
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field TargetUpdateTimeMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCharactersInOtherSubs System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveFightIntruders'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveFightIntruders'].IsValidTarget = function(target) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@param targetCharactersInOtherSubs System.Boolean
+---@return System.Boolean
+_G['AIObjectiveFightIntruders'].IsValidTarget = function(target, character, targetCharactersInOtherSubs) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['AIObjectiveFightIntruders'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFightIntruders'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return Barotrauma.AIObjective
+_G['AIObjectiveFightIntruders'].ObjectiveConstructor = function(target) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Character
+_G['AIObjectiveFightIntruders'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFightIntruders
+_G['AIObjectiveFightIntruders'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFightIntruders
+_G['AIObjectiveFightIntruders'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD9690CF80.lua b/Meta/Types/server/_00007FFD9690CF80.lua
new file mode 100644
index 0000000..410548a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690CF80.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.AIObjectiveFindDivingGear : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field gearTag Barotrauma.Identifier
+---`Field Private Instance`
+---@field getDivingGear Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field getOxygen Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field oxygenSourceSlotIndex System.Nullable*1System*Int32
+---`Field Public Static`
+---@field MIN_OXYGEN System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectiveFindDivingGear'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveFindDivingGear'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFindDivingGear'].Act = function(deltaTime) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param tag Barotrauma.Identifier
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveFindDivingGear'].IsSuitablePressureProtection = function(item, tag, character) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveFindDivingGear'].IsSuitableContainedOxygenSource = function(item) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+_G['AIObjectiveFindDivingGear'].TrySetTargetItem = function(item) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveFindDivingGear'].Reset = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveFindDivingGear'].GetMinOxygen = function(character) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param needsDivingSuit System.Boolean
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindDivingGear
+_G['AIObjectiveFindDivingGear'] = function(character, needsDivingSuit, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param needsDivingSuit System.Boolean
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindDivingGear
+_G['AIObjectiveFindDivingGear'].__new = function(character, needsDivingSuit, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD9690D490.lua b/Meta/Types/server/_00007FFD9690D490.lua
new file mode 100644
index 0000000..8e7bf53
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690D490.lua
@@ -0,0 +1,117 @@
+---@meta
+---@class Barotrauma.AIObjectiveFindSafety : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field currentHullSafety System.Single
+---`Field Private Instance`
+---@field searchHullTimer System.Single
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field divingGearObjective Barotrauma.AIObjectiveFindDivingGear
+---`Field Private Instance`
+---@field resetPriority System.Boolean
+---`Field Private Instance`
+---@field currentSafeHull Barotrauma.Hull
+---`Field Private Instance`
+---@field previousSafeHull Barotrauma.Hull
+---`Field Private Instance`
+---@field cannotFindSafeHull System.Boolean
+---`Field Private Instance`
+---@field cannotFindDivingGear System.Boolean
+---`Field Private Instance`
+---@field findDivingGearAttempts System.Int32
+---`Field Private Instance`
+---@field retryCounter System.Int32
+---`Field Private Instance`
+---@field retryResetTime System.Single
+---`Field Private Instance`
+---@field retryTimer System.Single
+---`Field Private Instance`
+---@field hulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field hullSearchIndex System.Int32
+---`Field Private Instance`
+---@field bestHullValue System.Single
+---`Field Private Instance`
+---@field bestHullIsAirlock System.Boolean
+---`Field Private Instance`
+---@field potentialBestHull Barotrauma.Hull
+---`Field Private Instance`
+---@field stopWatch System.Diagnostics.Stopwatch
+---`Field Private Static`
+---@field PriorityIncrease System.Single
+---`Field Private Static`
+---@field PriorityDecrease System.Single
+---`Field Private Static`
+---@field SearchHullInterval System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field IgnoreUnsafeHulls System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field ConcurrentObjectives System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+_G['AIObjectiveFindSafety'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveFindSafety'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFindSafety'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFindSafety'].Update = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFindSafety'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveFindSafety'].UpdateSimpleEscape = function(deltaTime) end
+
+---`Method Public Instance`
+---@param bestHull Barotrauma.Hull-ref
+---@param ignoredHulls? (System.Collections.Generic.IEnumerable*1Barotrauma*Hull)|(fun():(Barotrauma.Hull))
+---@param allowChangingSubmarine? System.Boolean
+---@return Barotrauma.AIObjectiveFindSafety.HullSearchStatus
+_G['AIObjectiveFindSafety'].FindBestHull = function(bestHull, ignoredHulls, allowChangingSubmarine) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveFindSafety'].Reset = function() end
+
+---`Method Private Instance`
+---@param targetHull Barotrauma.Hull
+---@param minOxygen? System.Single
+---@return System.Boolean
+_G['AIObjectiveFindSafety'].NeedMoreDivingGear = function(targetHull, minOxygen) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindSafety
+_G['AIObjectiveFindSafety'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveFindSafety
+_G['AIObjectiveFindSafety'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD9690D8A0.lua b/Meta/Types/server/_00007FFD9690D8A0.lua
new file mode 100644
index 0000000..f0c7df7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690D8A0.lua
@@ -0,0 +1,69 @@
+---@meta
+---@class Barotrauma.AIObjectiveFixLeak : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field getWeldingTool Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field refuelObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field gotoObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field operateObjective Barotrauma.AIObjectiveOperateItem
+---`Field Public Instance`
+---@field isPriority System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Leak Barotrauma.Gap
+_G['AIObjectiveFixLeak'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveFixLeak'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFixLeak'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveFixLeak'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveFixLeak'].Reset = function() end
+
+---`Method Public Static`
+---@param repairTool Barotrauma.Items.Components.RepairTool
+---@param character Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveFixLeak'].CalculateReach = function(repairTool, character) end
+
+---`Constructor Public Instance`
+---@param leak Barotrauma.Gap
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveFixLeak
+_G['AIObjectiveFixLeak'] = function(leak, character, objectiveManager, priorityModifier, isPriority) end
+
+---`Constructor Public Instance`
+---@param leak Barotrauma.Gap
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveFixLeak
+_G['AIObjectiveFixLeak'].__new = function(leak, character, objectiveManager, priorityModifier, isPriority) end
+
diff --git a/Meta/Types/server/_00007FFD9690DC78.lua b/Meta/Types/server/_00007FFD9690DC78.lua
new file mode 100644
index 0000000..d1b3950
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690DC78.lua
@@ -0,0 +1,66 @@
+---@meta
+---@class Barotrauma.AIObjectiveFixLeaks : Barotrauma.AIObjectiveLoop*1Barotrauma*Gap
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field PrioritizedHull Barotrauma.Hull
+_G['AIObjectiveFixLeaks'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param gap Barotrauma.Gap
+---@return System.Boolean
+_G['AIObjectiveFixLeaks'].IsValidTarget = function(gap) end
+
+---`Method Public Static`
+---@param gap Barotrauma.Gap
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveFixLeaks'].IsValidTarget = function(gap, character) end
+
+---`Method Public Static`
+---@param leak Barotrauma.Gap
+---@return System.Single
+_G['AIObjectiveFixLeaks'].GetLeakSeverity = function(leak) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveFixLeaks'].GetTargetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Gap)|(fun():(Barotrauma.Gap))
+_G['AIObjectiveFixLeaks'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param gap Barotrauma.Gap
+---@return Barotrauma.AIObjective
+_G['AIObjectiveFixLeaks'].ObjectiveConstructor = function(gap) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Gap
+_G['AIObjectiveFixLeaks'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedHull? Barotrauma.Hull
+---@return Barotrauma.AIObjectiveFixLeaks
+_G['AIObjectiveFixLeaks'] = function(character, objectiveManager, priorityModifier, prioritizedHull) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedHull? Barotrauma.Hull
+---@return Barotrauma.AIObjectiveFixLeaks
+_G['AIObjectiveFixLeaks'].__new = function(character, objectiveManager, priorityModifier, prioritizedHull) end
+
diff --git a/Meta/Types/server/_00007FFD9690E3C8.lua b/Meta/Types/server/_00007FFD9690E3C8.lua
new file mode 100644
index 0000000..cef5577
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690E3C8.lua
@@ -0,0 +1,186 @@
+---@meta
+---@class Barotrauma.Gap : Barotrauma.MapEntity
+---`Field Public Instance`
+---@field GlowEffectT System.Single
+---`Field Private Instance`
+---@field open System.Single
+---`Field Private Instance`
+---@field flowForce Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field flowTargetHull Barotrauma.Hull
+---`Field Private Instance`
+---@field openedTimer System.Single
+---`Field Private Instance`
+---@field higherSurface System.Single
+---`Field Private Instance`
+---@field lowerSurface System.Single
+---`Field Private Instance`
+---@field lerpedFlowForce Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field DisableHullRechecks System.Boolean
+---`Field Public Instance`
+---@field PassAmbientLight System.Boolean
+---`Field Private Instance`
+---@field outsideCollisionBlocker FarseerPhysics.Dynamics.Body
+---`Field Private Instance`
+---@field outsideColliderRaycastTimer System.Single
+---`Field Private Instance`
+---@field wasRoomToRoom System.Boolean
+---`Field Private Instance`
+---@field connectedDoor Barotrauma.Items.Components.Door
+---`Field Public Instance`
+---@field ConnectedWall Barotrauma.Structure
+---`Field Public Instance`
+---@field properties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Field Private Instance`
+---@field updateCount System.Int32
+---`Field Public Static`
+---@field GapList (System.Collections.Generic.List*1Barotrauma*Gap)|(Barotrauma.Gap[])
+---`Field Public Static`
+---@field ShowGaps System.Boolean
+---`Field Private Static`
+---@field MaxFlowForce System.Single
+---`Field Private Static`
+---@field OutsideColliderRaycastIntervalLowPrio System.Single
+---`Field Private Static`
+---@field OutsideColliderRaycastIntervalHighPrio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---@field IsDiagonal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Open System.Single
+---`Getter Public Instance`
+---@field Size System.Single
+---`Getter Public Instance`
+---@field PressureDistributionSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConnectedDoor Barotrauma.Items.Components.Door
+---`Getter Public Instance`
+---@field LerpedFlowForce Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field FlowTargetHull Barotrauma.Hull
+---`Getter Public Instance`
+---@field IsRoomToRoom System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['Gap'] = {}
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Gap'].Clone = function() end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Gap'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Static`
+_G['Gap'].UpdateHulls = function() end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Gap'].IsMouseOn = function(position) end
+
+---`Method Public Instance`
+_G['Gap'].AutoOrient = function() end
+
+---`Method Private Instance`
+_G['Gap'].FindHulls = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Gap'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param hull1 Barotrauma.Hull
+---@param hull2 Barotrauma.Hull
+_G['Gap'].UpdateRoomToRoom = function(deltaTime, hull1, hull2) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param hull1 Barotrauma.Hull
+_G['Gap'].UpdateRoomToOut = function(deltaTime, hull1) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Gap'].RefreshOutsideCollider = function() end
+
+---`Method Private Instance`
+---@param hull Barotrauma.Hull
+_G['Gap'].UpdateOutsideColliderState = function(hull) end
+
+---`Method Private Instance`
+---@param hull1 Barotrauma.Hull
+---@param hull2 Barotrauma.Hull
+---@param deltaTime System.Single
+_G['Gap'].UpdateOxygen = function(hull1, hull2, deltaTime) end
+
+---`Method Public Static`
+---@param gaps (System.Collections.Generic.IEnumerable*1Barotrauma*Gap)|(fun():(Barotrauma.Gap))
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@param allowedOrthogonalDist System.Single
+---@param allowRoomToRoom? System.Boolean
+---@return Barotrauma.Gap
+_G['Gap'].FindAdjacent = function(gaps, worldPos, allowedOrthogonalDist, allowRoomToRoom) end
+
+---`Method Public Instance Virtual`
+_G['Gap'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Gap'].Remove = function() end
+
+---`Method Public Instance Virtual`
+_G['Gap'].OnMapLoaded = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Gap
+_G['Gap'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Gap'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(rectangle:Microsoft.Xna.Framework.Rectangle):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, submarine:Barotrauma.Submarine):Barotrauma.Gap
+---@overload fun(rect:Microsoft.Xna.Framework.Rectangle, isHorizontal:System.Boolean, submarine:Barotrauma.Submarine, isDiagonal?:System.Boolean, id?:System.UInt16):Barotrauma.Gap
+---@return Barotrauma.Gap
+_G['Gap'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9690EF88.lua b/Meta/Types/server/_00007FFD9690EF88.lua
new file mode 100644
index 0000000..e3c9303
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690EF88.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.InvSlotType : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Any Barotrauma.InvSlotType
+---`Field Public Static`
+---@field RightHand Barotrauma.InvSlotType
+---`Field Public Static`
+---@field LeftHand Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Head Barotrauma.InvSlotType
+---`Field Public Static`
+---@field InnerClothes Barotrauma.InvSlotType
+---`Field Public Static`
+---@field OuterClothes Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Headset Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Card Barotrauma.InvSlotType
+---`Field Public Static`
+---@field Bag Barotrauma.InvSlotType
+---`Field Public Static`
+---@field HealthInterface Barotrauma.InvSlotType
+_G['InvSlotType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9690F300.lua b/Meta/Types/server/_00007FFD9690F300.lua
new file mode 100644
index 0000000..c252734
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690F300.lua
@@ -0,0 +1,194 @@
+---@meta
+---@class Barotrauma.AIObjectiveGetItem : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field ignoredItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Instance`
+---@field GetItemPriority (System.Func*1Barotrauma*Item*1System*Single)|(fun(arg:Barotrauma.Item):(System.Single))
+---`Field Public Instance`
+---@field ItemFilter (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---`Field Public Instance`
+---@field IdentifiersOrTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field spawnItemIfNotFound System.Boolean
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field originalTarget Barotrauma.Item
+---`Field Private Instance`
+---@field moveToTarget Barotrauma.ISpatialEntity
+---`Field Private Instance`
+---@field isDoneSeeking System.Boolean
+---`Field Private Instance`
+---@field currentSearchIndex System.Int32
+---`Field Public Instance`
+---@field ignoredContainerIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field ignoredIdentifiersOrTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field currItemPriority System.Single
+---`Field Private Instance`
+---@field checkInventory System.Boolean
+---`Field Private Instance`
+---@field _itemCount System.Int32
+---`Field Private Instance`
+---@field sw System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field itemCandidates (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Item*2System*Single)|(System.ValueTuple*1Barotrauma*Item*1System*Single[])
+---`Field Private Instance`
+---@field itemList (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Public Static`
+---@field DefaultReach System.Single
+---`Field Public Static`
+---@field MaxReach System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDangerousPressure System.Boolean
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowToFindDivingGear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MustBeSpecificItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowStealing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TakeWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowVariants System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Wear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireNonEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EvaluateCombatPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckPathForEachItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeakIfFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CannotFindDialogueIdentifierOverride System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CannotFindDialogueCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EquipSlotType System.Nullable*1Barotrauma*InvSlotType
+---`Getter Private Instance`
+---@field StopWatch System.Diagnostics.Stopwatch
+_G['AIObjectiveGetItem'] = {}
+
+---`Method Public Static`
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['AIObjectiveGetItem'].ParseGearTags = function(identifiersOrTags) end
+
+---`Method Public Static`
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['AIObjectiveGetItem'].ParseIgnoredTags = function(identifiersOrTags) end
+
+---`Method Public Static`
+---@param targetEntity Barotrauma.ISpatialEntity
+---@return (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+_G['AIObjectiveGetItem'].CreateEndNodeFilter = function(targetEntity) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CheckInventory = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CountItems = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveGetItem'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].FindTargetItem = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].HandlePotentialItems = function() end
+
+---`Method Private Instance`
+---@return Barotrauma.ItemPrefab
+_G['AIObjectiveGetItem'].FindItemToSpawn = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CheckObjectiveState = function() end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveGetItem'].CheckItem = function(item) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveGetItem'].Reset = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].ResetInternal = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveGetItem'].OnAbandon = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGetItem'].SpeakCannotFind = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, priorityModifier?:System.Single):Barotrauma.AIObjectiveGetItem
+---@overload fun(character:Barotrauma.Character, identifierOrTag:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, checkInventory?:System.Boolean, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveGetItem
+---@param character Barotrauma.Character
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param equip? System.Boolean
+---@param checkInventory? System.Boolean
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveGetItem
+_G['AIObjectiveGetItem'] = function(character, identifiersOrTags, objectiveManager, equip, checkInventory, priorityModifier, spawnItemIfNotFound) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, targetItem:Barotrauma.Item, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, priorityModifier?:System.Single):Barotrauma.AIObjectiveGetItem
+---@overload fun(character:Barotrauma.Character, identifierOrTag:Barotrauma.Identifier, objectiveManager:Barotrauma.AIObjectiveManager, equip?:System.Boolean, checkInventory?:System.Boolean, priorityModifier?:System.Single, spawnItemIfNotFound?:System.Boolean):Barotrauma.AIObjectiveGetItem
+---@param character Barotrauma.Character
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param equip? System.Boolean
+---@param checkInventory? System.Boolean
+---@param priorityModifier? System.Single
+---@param spawnItemIfNotFound? System.Boolean
+---@return Barotrauma.AIObjectiveGetItem
+_G['AIObjectiveGetItem'].__new = function(character, identifiersOrTags, objectiveManager, equip, checkInventory, priorityModifier, spawnItemIfNotFound) end
+
diff --git a/Meta/Types/server/_00007FFD9690F910.lua b/Meta/Types/server/_00007FFD9690F910.lua
new file mode 100644
index 0000000..4d0d756
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9690F910.lua
@@ -0,0 +1,85 @@
+---@meta
+---@class Barotrauma.AIObjectiveGetItems : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field ItemFilter (System.Func*1Barotrauma*Item*1Barotrauma*Identifier*1System*Boolean)|(fun(arg1:Barotrauma.Item, arg2:Barotrauma.Identifier):(System.Boolean))
+---`Field Private Instance`
+---@field gearTags (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field ignoredTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field subObjectivesCreated System.Boolean
+---`Field Public Instance`
+---@field achievedItems (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowStealing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TakeWholeStack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowVariants System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Wear System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EvaluateCombatPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckPathForEachItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireNonEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAllItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireDivingSuitAdequate System.Boolean
+_G['AIObjectiveGetItems'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveGetItems'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveGetItems'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveGetItems'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveGetItems
+_G['AIObjectiveGetItems'] = function(character, objectiveManager, identifiersOrTags, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param identifiersOrTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveGetItems
+_G['AIObjectiveGetItems'].__new = function(character, objectiveManager, identifiersOrTags, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96910590.lua b/Meta/Types/server/_00007FFD96910590.lua
new file mode 100644
index 0000000..1085b6f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96910590.lua
@@ -0,0 +1,184 @@
+---@meta
+---@class Barotrauma.AIObjectiveGoTo : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field findDivingGear Barotrauma.AIObjectiveFindDivingGear
+---`Field Private Instance`
+---@field repeat System.Boolean
+---`Field Private Instance`
+---@field waitUntilPathUnreachable System.Single
+---`Field Private Instance`
+---@field getDivingGearIfNeeded System.Boolean
+---`Field Public Instance`
+---@field requiredCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Field Public Instance`
+---@field endNodeFilter (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---`Field Public Instance`
+---@field PriorityGetter (System.Func*1System*Single)|(fun():(System.Single))
+---`Field Public Instance`
+---@field IsFollowOrder System.Boolean
+---`Field Public Instance`
+---@field IsWaitOrder System.Boolean
+---`Field Public Instance`
+---@field Mimic System.Boolean
+---`Field Public Instance`
+---@field ExtraDistanceWhileSwimming System.Single
+---`Field Public Instance`
+---@field ExtraDistanceOutsideSub System.Single
+---`Field Private Instance`
+---@field _closeEnoughMultiplier System.Single
+---`Field Private Instance`
+---@field _closeEnough System.Single
+---`Field Private Instance`
+---@field minDistance System.Single
+---`Field Private Instance`
+---@field seekGapsInterval System.Single
+---`Field Private Instance`
+---@field seekGapsTimer System.Single
+---`Field Private Instance`
+---@field cantFindDivingGear System.Boolean
+---`Field Private Instance`
+---@field ExoSuitRefuel Barotrauma.Identifier
+---`Field Private Instance`
+---@field ExoSuitOutOfFuel Barotrauma.Identifier
+---`Field Public Instance`
+---@field OverridePriority System.Nullable*1System*Single
+---`Field Private Instance`
+---@field avoidLookAheadDistance System.Single
+---`Field Private Instance`
+---@field pathWaitingTime System.Single
+---`Field Private Instance`
+---@field useScooter System.Boolean
+---`Field Private Instance`
+---@field checkScooterTimer System.Single
+---`Field Private Instance`
+---@field checkExoSuitTimer System.Single
+---`Field Private Static`
+---@field CheckScooterTime System.Single
+---`Field Private Static`
+---@field CheckExoSuitTime System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeakIfFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DebugLogWhenFails System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsePathingOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CloseEnoughMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CloseEnough System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreIfTargetDead System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowGoingOutside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FaceTargetOnCompleted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlwaysUseEuclideanDistance System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseDistanceRelativeToAimSourcePos System.Boolean
+---`Getter Public Instance Virtual`
+---@field AbandonWhenCannotCompleteSubObjectives System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DialogueIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Target Barotrauma.ISpatialEntity
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeakCannotReachCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetGap Barotrauma.Gap
+---`Getter Public Instance`
+---@field IsCloseEnough System.Boolean
+_G['AIObjectiveGoTo'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveGoTo'].GetPriority = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGoTo'].SpeakCannotReach = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveGoTo'].ForceAct = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveGoTo'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@return Barotrauma.Hull
+_G['AIObjectiveGoTo'].GetTargetHull = function() end
+
+---`Method Public Static`
+---@param target Barotrauma.ISpatialEntity
+---@return Barotrauma.Hull
+_G['AIObjectiveGoTo'].GetTargetHull = function(target) end
+
+---`Method Private Instance`
+---@param maxDistance System.Single
+_G['AIObjectiveGoTo'].SeekGaps = function(maxDistance) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveGoTo'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveGoTo'].OnAbandon = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveGoTo'].StopMovement = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveGoTo'].OnCompleted = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveGoTo'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param luaKey__repeat? System.Boolean
+---@param getDivingGearIfNeeded? System.Boolean
+---@param priorityModifier? System.Single
+---@param closeEnough? System.Single
+---@return Barotrauma.AIObjectiveGoTo
+_G['AIObjectiveGoTo'] = function(target, character, objectiveManager, luaKey__repeat, getDivingGearIfNeeded, priorityModifier, closeEnough) end
+
+---`Constructor Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param luaKey__repeat? System.Boolean
+---@param getDivingGearIfNeeded? System.Boolean
+---@param priorityModifier? System.Single
+---@param closeEnough? System.Single
+---@return Barotrauma.AIObjectiveGoTo
+_G['AIObjectiveGoTo'].__new = function(target, character, objectiveManager, luaKey__repeat, getDivingGearIfNeeded, priorityModifier, closeEnough) end
+
diff --git a/Meta/Types/server/_00007FFD96910C10.lua b/Meta/Types/server/_00007FFD96910C10.lua
new file mode 100644
index 0000000..38924f3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96910C10.lua
@@ -0,0 +1,141 @@
+---@meta
+---@class Barotrauma.AIObjectiveIdle : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field behavior Barotrauma.AIObjectiveIdle.BehaviorType
+---`Field Private Instance`
+---@field newTargetIntervalMin System.Single
+---`Field Private Instance`
+---@field newTargetIntervalMax System.Single
+---`Field Private Instance`
+---@field standStillMin System.Single
+---`Field Private Instance`
+---@field standStillMax System.Single
+---`Field Private Instance`
+---@field walkDurationMin System.Single
+---`Field Private Instance`
+---@field walkDurationMax System.Single
+---`Field Private Instance`
+---@field currentTarget Barotrauma.Hull
+---`Field Private Instance`
+---@field newTargetTimer System.Single
+---`Field Private Instance`
+---@field searchingNewHull System.Boolean
+---`Field Private Instance`
+---@field standStillTimer System.Single
+---`Field Private Instance`
+---@field walkDuration System.Single
+---`Field Private Instance`
+---@field tooCloseCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field chairCheckTimer System.Single
+---`Field Private Instance`
+---@field autonomousObjectiveRetryTimer System.Single
+---`Field Private Instance`
+---@field targetHulls (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field hullWeights (System.Collections.Generic.List*1System*Single)|(System.Single[])
+---`Field Public Instance`
+---@field PreferredOutpostModuleTypes (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field timerMargin System.Single
+---`Field Private Instance`
+---@field checkItemsInterval System.Single
+---`Field Private Instance`
+---@field checkItemsTimer System.Single
+---`Field Private Instance`
+---@field itemsToClean (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field ignoredItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Static`
+---@field chairCheckInterval System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Behavior Barotrauma.AIObjectiveIdle.BehaviorType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetHull Barotrauma.Hull
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+_G['AIObjectiveIdle'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveIdle'].CheckObjectiveState = function() end
+
+---`Method Public Instance`
+---@param max? System.Single
+_G['AIObjectiveIdle'].CalculatePriority = function(max) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveIdle'].GetPriority = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].SetTargetTimerLow = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].SetTargetTimerHigh = function() end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].SetTargetTimerNormal = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveIdle'].IsSteeringFinished = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].Act = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].Wander = function(deltaTime) end
+
+---`Method Public Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param waitTime System.Single
+_G['AIObjectiveIdle'].FaceTargetAndWait = function(target, waitTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveIdle'].FindTargetHulls = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveIdle'].CleanupItems = function(deltaTime) end
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@return System.Boolean
+_G['AIObjectiveIdle'].IsForbidden = function(hull) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveIdle'].Reset = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveIdle'].OnDeselected = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveIdle
+_G['AIObjectiveIdle'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveIdle
+_G['AIObjectiveIdle'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD969110F8.lua b/Meta/Types/server/_00007FFD969110F8.lua
new file mode 100644
index 0000000..f8463a7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969110F8.lua
@@ -0,0 +1,103 @@
+---@meta
+---@class Barotrauma.AIObjectiveOperateItem : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field component Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field controller Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field operateTarget Barotrauma.Entity
+---`Field Private Instance`
+---@field requireEquip System.Boolean
+---`Field Private Instance`
+---@field useController System.Boolean
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Public Instance`
+---@field EndNodeFilter (System.Func*1Barotrauma*PathNode*1System*Boolean)|(fun(arg:Barotrauma.PathNode):(System.Boolean))
+---`Field Public Instance`
+---@field completionCondition (System.Func*1System*Boolean)|(fun():(System.Boolean))
+---`Field Private Instance`
+---@field isDoneOperating System.Boolean
+---`Field Public Instance`
+---@field OverridePriority System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance Virtual`
+---@field PrioritizeIfSubObjectivesActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Override System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Repeat System.Boolean
+---`Getter Public Instance Virtual`
+---@field CanBeCompleted System.Boolean
+---`Getter Public Instance`
+---@field OperateTarget Barotrauma.Entity
+---`Getter Public Instance`
+---@field Component Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveOperateItem'] = {}
+
+---`Method Public Instance Virtual`
+---@param otherObjective Barotrauma.AIObjectiveOperateItem.T
+---@return System.Boolean
+_G['AIObjectiveOperateItem'].IsDuplicate = function(otherObjective) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.ItemComponent
+_G['AIObjectiveOperateItem'].GetTarget = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveOperateItem'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveOperateItem'].Act = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveOperateItem'].CheckObjectiveState = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveOperateItem'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Items.Components.ItemComponent
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param requireEquip System.Boolean
+---@param operateTarget? Barotrauma.Entity
+---@param useController? System.Boolean
+---@param controller? Barotrauma.Items.Components.ItemComponent
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveOperateItem
+_G['AIObjectiveOperateItem'] = function(item, character, objectiveManager, option, requireEquip, operateTarget, useController, controller, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Items.Components.ItemComponent
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param requireEquip System.Boolean
+---@param operateTarget? Barotrauma.Entity
+---@param useController? System.Boolean
+---@param controller? Barotrauma.Items.Components.ItemComponent
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveOperateItem
+_G['AIObjectiveOperateItem'].__new = function(item, character, objectiveManager, option, requireEquip, operateTarget, useController, controller, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96911730.lua b/Meta/Types/server/_00007FFD96911730.lua
new file mode 100644
index 0000000..5a60f37
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96911730.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class Barotrauma.AIObjectivePrepare : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field getSingleItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field getAllItemsObjective Barotrauma.AIObjectiveGetItems
+---`Field Private Instance`
+---@field getMultipleItemsObjective Barotrauma.AIObjectiveGetItems
+---`Field Private Instance`
+---@field subObjectivesCreated System.Boolean
+---`Field Private Instance`
+---@field targetItem Barotrauma.Item
+---`Field Private Instance`
+---@field requiredItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field optionalItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field DebugTag System.String
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOnAlsoWhenInactive System.Boolean
+---`Getter Public Instance Virtual`
+---@field PrioritizeIfSubObjectivesActive System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KeepActiveWhenReady System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CheckInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FindAllItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Equip System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EvaluateCombatPriority System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireNonEmpty System.Boolean
+_G['AIObjectivePrepare'] = {}
+
+---`Method Private Instance`
+---@return Barotrauma.AIObjective
+_G['AIObjectivePrepare'].GetSubObjective = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectivePrepare'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectivePrepare'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectivePrepare'].Act = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectivePrepare'].Reset = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, targetItem:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectivePrepare
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param optionalItems (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param requiredItems? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePrepare
+_G['AIObjectivePrepare'] = function(character, objectiveManager, optionalItems, requiredItems, priorityModifier) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, objectiveManager:Barotrauma.AIObjectiveManager, targetItem:Barotrauma.Item, priorityModifier?:System.Single):Barotrauma.AIObjectivePrepare
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param optionalItems (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param requiredItems? (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePrepare
+_G['AIObjectivePrepare'].__new = function(character, objectiveManager, optionalItems, requiredItems, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96911AB8.lua b/Meta/Types/server/_00007FFD96911AB8.lua
new file mode 100644
index 0000000..67a86fc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96911AB8.lua
@@ -0,0 +1,62 @@
+---@meta
+---@class Barotrauma.AIObjectivePumpWater : Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*Pump
+---`Field Private Instance`
+---@field pumpList (System.Collections.Generic.List*1Barotrauma*Items*Components*Pump)|(Barotrauma.Items.Components.Pump[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter Public Instance Virtual`
+---@field AllowAutomaticItemUnequipping System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectivePumpWater'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectivePumpWater'].FindTargets = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param pump Barotrauma.Items.Components.Pump
+---@return System.Boolean
+_G['AIObjectivePumpWater'].IsValidTarget = function(pump) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Pump)|(fun():(Barotrauma.Items.Components.Pump))
+_G['AIObjectivePumpWater'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectivePumpWater'].GetTargetPriority = function() end
+
+---`Method Private Instance`
+---@param pump Barotrauma.Items.Components.Pump
+---@return System.Boolean
+_G['AIObjectivePumpWater'].IsReady = function(pump) end
+
+---`Method NonPublic Instance Virtual`
+---@param pump Barotrauma.Items.Components.Pump
+---@return Barotrauma.AIObjective
+_G['AIObjectivePumpWater'].ObjectiveConstructor = function(pump) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Items.Components.Pump
+_G['AIObjectivePumpWater'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePumpWater
+_G['AIObjectivePumpWater'] = function(character, objectiveManager, option, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param option Barotrauma.Identifier
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectivePumpWater
+_G['AIObjectivePumpWater'].__new = function(character, objectiveManager, option, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96912010.lua b/Meta/Types/server/_00007FFD96912010.lua
new file mode 100644
index 0000000..bfd6871
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96912010.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.Items.Components.Pump : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field flowPercentage System.Single
+---`Field Private Instance`
+---@field maxFlow System.Single
+---`Field Public Instance`
+---@field TargetLevel System.Nullable*1System*Single
+---`Field Private Instance`
+---@field hijacked System.Boolean
+---`Field Private Instance`
+---@field pumpSpeedLockTimer System.Single
+---`Field Private Instance`
+---@field isActiveLockTimer System.Single
+---`Field Private Instance`
+---@field currFlow System.Single
+---`Field Private Static`
+---@field NetworkUpdateInterval System.Single
+---`Field Private Static`
+---@field TinkeringSpeedIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hijacked System.Boolean
+---`Getter Public Instance`
+---@field CurrentBrokenVolume System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxFlow System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOn System.Boolean
+---`Getter Public Instance`
+---@field CurrFlow System.Single
+---`Getter Public Instance Virtual`
+---@field HasPower System.Boolean
+---`Getter Public Instance`
+---@field IsAutoControlled System.Boolean
+---`Getter Public Instance Virtual`
+---@field UpdateWhenInactive System.Boolean
+---`Getter Public Instance Virtual`
+---@field CurrentStress System.Single
+_G['Components']['Pump'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Pump'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Pump'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Pump'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param allowMultiplePerShip? System.Boolean
+_G['Components']['Pump'].InfectBallast = function(identifier, allowMultiplePerShip) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Pump'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Pump'].UpdateProjSpecific = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Pump'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Pump'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pump
+_G['Components']['Pump'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Pump
+_G['Components']['Pump'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96912678.lua b/Meta/Types/server/_00007FFD96912678.lua
new file mode 100644
index 0000000..033235b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96912678.lua
@@ -0,0 +1,88 @@
+---@meta
+---@class Barotrauma.AIObjectiveRepairItem : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field refuelObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field repairTool Barotrauma.Items.Components.RepairTool
+---`Field Private Instance`
+---@field waitTimer System.Single
+---`Field Private Instance`
+---@field isPriority System.Boolean
+---`Field Private Instance`
+---@field conditionCheckTimer System.Single
+---`Field Private Instance`
+---@field previousCondition System.Single
+---`Field Private Static`
+---@field WaitTimeBeforeRepair System.Single
+---`Field Private Static`
+---@field conditionCheckDelay System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Item Barotrauma.Item
+_G['AIObjectiveRepairItem'] = {}
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['AIObjectiveRepairItem'].IsRepairing = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveRepairItem'].IsRepairing = function(character, item) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRepairItem'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveRepairItem'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveRepairItem'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveRepairItem'].CheckPreviousCondition = function(deltaTime) end
+
+---`Method Private Instance`
+_G['AIObjectiveRepairItem'].FindRepairTool = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveRepairItem'].OperateRepairTool = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveRepairItem'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveRepairItem
+_G['AIObjectiveRepairItem'] = function(character, item, objectiveManager, priorityModifier, isPriority) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param item Barotrauma.Item
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param isPriority? System.Boolean
+---@return Barotrauma.AIObjectiveRepairItem
+_G['AIObjectiveRepairItem'].__new = function(character, item, objectiveManager, priorityModifier, isPriority) end
+
diff --git a/Meta/Types/server/_00007FFD96912B10.lua b/Meta/Types/server/_00007FFD96912B10.lua
new file mode 100644
index 0000000..476cbe6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96912B10.lua
@@ -0,0 +1,90 @@
+---@meta
+---@class Barotrauma.AIObjectiveRepairItems : Barotrauma.AIObjectiveLoop*1Barotrauma*Item
+---`Field Public Instance`
+---@field RelevantSkill Barotrauma.Identifier
+---`Field Public Static`
+---@field RequiredSuccessFactor System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PrioritizedItem Barotrauma.Item
+---`Getter Public Instance Virtual`
+---@field AllowMultipleInstances System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInFriendlySubs System.Boolean
+_G['AIObjectiveRepairItems'] = {}
+
+---`Method Public Instance Virtual`
+---@param otherObjective Barotrauma.AIObjectiveRepairItems.T
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].IsDuplicate = function(otherObjective) end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveRepairItems'].CreateObjectives = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].IsValidTarget = function(item) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].IsValidTarget = function(item, character) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param humanAIController Barotrauma.HumanAIController
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].ViableForRepair = function(item, character, humanAIController) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['AIObjectiveRepairItems'].NearlyFullCondition = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRepairItems'].GetTargetPriority = function() end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@param character Barotrauma.Character
+---@param requiredSuccessFactor? System.Single
+---@return System.Single
+_G['AIObjectiveRepairItems'].GetTargetPriority = function(item, character, requiredSuccessFactor) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['AIObjectiveRepairItems'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param item Barotrauma.Item
+---@return Barotrauma.AIObjective
+_G['AIObjectiveRepairItems'].ObjectiveConstructor = function(item) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Item
+_G['AIObjectiveRepairItems'].OnObjectiveCompleted = function(objective, target) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedItem? Barotrauma.Item
+---@return Barotrauma.AIObjectiveRepairItems
+_G['AIObjectiveRepairItems'] = function(character, objectiveManager, priorityModifier, prioritizedItem) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@param prioritizedItem? Barotrauma.Item
+---@return Barotrauma.AIObjectiveRepairItems
+_G['AIObjectiveRepairItems'].__new = function(character, objectiveManager, priorityModifier, prioritizedItem) end
+
diff --git a/Meta/Types/server/_00007FFD969131E0.lua b/Meta/Types/server/_00007FFD969131E0.lua
new file mode 100644
index 0000000..6d5d64e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969131E0.lua
@@ -0,0 +1,112 @@
+---@meta
+---@class Barotrauma.AIObjectiveRescue : Barotrauma.AIObjective
+---`Field Public Instance`
+---@field Target Barotrauma.Character
+---`Field Private Instance`
+---@field goToObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field replaceOxygenObjective Barotrauma.AIObjectiveContainItem
+---`Field Private Instance`
+---@field getItemObjective Barotrauma.AIObjectiveGetItem
+---`Field Private Instance`
+---@field treatmentTimer System.Single
+---`Field Private Instance`
+---@field safeHull Barotrauma.Hull
+---`Field Private Instance`
+---@field findHullTimer System.Single
+---`Field Private Instance`
+---@field ignoreOxygen System.Boolean
+---`Field Private Instance`
+---@field findHullInterval System.Single
+---`Field Private Instance`
+---@field performedCpr System.Boolean
+---`Field Private Instance`
+---@field suitableItemIdentifiers (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field itemNameList (System.Collections.Generic.List*1Barotrauma*LocalizedString)|(Barotrauma.LocalizedString[])
+---`Field Private Instance`
+---@field currentTreatmentSuitabilities (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Private Static`
+---@field TreatmentDelay System.Single
+---`Field Private Static`
+---@field CloseEnoughToTreat System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field KeepDivingGearOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowWhileHandcuffed System.Boolean
+_G['AIObjectiveRescue'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveRescue'].OnAbandon = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveRescue'].OnCompleted = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveRescue'].Act = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AIObjectiveRescue'].GiveTreatment = function(deltaTime) end
+
+---`Method Public Static`
+---@overload fun(inventory:Barotrauma.Inventory, itemIdentifier:Barotrauma.Identifier):(Barotrauma.Item)
+---@param inventory Barotrauma.Inventory
+---@param predicate (System.Func*1Barotrauma*Item*1System*Boolean)|(fun(arg:Barotrauma.Item):(System.Boolean))
+---@return Barotrauma.Item
+_G['AIObjectiveRescue'].FindMedicalItem = function(inventory, predicate) end
+
+---`Method Private Instance`
+_G['AIObjectiveRescue'].SpeakCannotTreat = function() end
+
+---`Method Private Instance`
+---@param affliction Barotrauma.Affliction
+---@param item Barotrauma.Item
+_G['AIObjectiveRescue'].ApplyTreatment = function(affliction, item) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveRescue'].CheckObjectiveState = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRescue'].GetPriority = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param excludeBuffs? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['AIObjectiveRescue'].GetSortedAfflictions = function(character, excludeBuffs) end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveRescue'].Reset = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveRescue'].OnDeselected = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetCharacter Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescue
+_G['AIObjectiveRescue'] = function(character, targetCharacter, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param targetCharacter Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescue
+_G['AIObjectiveRescue'].__new = function(character, targetCharacter, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD969135E0.lua b/Meta/Types/server/_00007FFD969135E0.lua
new file mode 100644
index 0000000..aaa9936
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969135E0.lua
@@ -0,0 +1,89 @@
+---@meta
+---@class Barotrauma.AIObjectiveRescueAll : Barotrauma.AIObjectiveLoop*1Barotrauma*Character
+---`Field Private Instance`
+---@field charactersWithMinorInjuries (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Static`
+---@field vitalityThreshold System.Single
+---`Field Private Static`
+---@field vitalityThresholdForOrders System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field ForceRun System.Boolean
+---`Getter Public Instance Virtual`
+---@field InverseTargetPriority System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveRescueAll'] = {}
+
+---`Method Public Static`
+---@param manager Barotrauma.AIObjectiveManager
+---@param character Barotrauma.Character
+---@param target Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveRescueAll'].GetVitalityThreshold = function(manager, character, target) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return System.Boolean
+_G['AIObjectiveRescueAll'].IsValidTarget = function(target) end
+
+---`Method Public Static`
+---@param target Barotrauma.Character
+---@param character Barotrauma.Character
+---@param ignoredAsMinorWounds System.Boolean-ref
+---@return System.Boolean
+_G['AIObjectiveRescueAll'].IsValidTarget = function(target, character, ignoredAsMinorWounds) end
+
+---`Method NonPublic Instance Virtual`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['AIObjectiveRescueAll'].GetList = function() end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveRescueAll'].GetTargetPriority = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Single
+_G['AIObjectiveRescueAll'].GetVitalityFactor = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param ignoreTreatmentThreshold System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['AIObjectiveRescueAll'].GetTreatableAfflictions = function(character, ignoreTreatmentThreshold) end
+
+---`Method NonPublic Instance Virtual`
+---@param target Barotrauma.Character
+---@return Barotrauma.AIObjective
+_G['AIObjectiveRescueAll'].ObjectiveConstructor = function(target) end
+
+---`Method NonPublic Instance Virtual`
+---@param objective Barotrauma.AIObjective
+---@param target Barotrauma.Character
+_G['AIObjectiveRescueAll'].OnObjectiveCompleted = function(objective, target) end
+
+---`Method Private Static`
+---@param target Barotrauma.Character
+---@param humanAI Barotrauma.HumanAIController
+---@return System.Boolean
+_G['AIObjectiveRescueAll'].IsValidTargetForAI = function(target, humanAI) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescueAll
+_G['AIObjectiveRescueAll'] = function(character, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveRescueAll
+_G['AIObjectiveRescueAll'].__new = function(character, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96913A78.lua b/Meta/Types/server/_00007FFD96913A78.lua
new file mode 100644
index 0000000..3ac733c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96913A78.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.AIObjectiveReturn : Barotrauma.AIObjective
+---`Field Private Instance`
+---@field moveInsideObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field moveOutsideObjective Barotrauma.AIObjectiveGoTo
+---`Field Private Instance`
+---@field usingEscapeBehavior System.Boolean
+---`Field Private Instance`
+---@field isSteeringThroughGap System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field Target Barotrauma.Submarine
+---`Getter NonPublic Instance Virtual`
+---@field AllowOutsideSubmarine System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field AllowInAnySub System.Boolean
+_G['AIObjectiveReturn'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@return System.Single
+_G['AIObjectiveReturn'].GetPriority = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['AIObjectiveReturn'].Act = function(deltaTime) end
+
+---`Method NonPublic Instance Virtual`
+---@return System.Boolean
+_G['AIObjectiveReturn'].CheckObjectiveState = function() end
+
+---`Method Public Instance Virtual`
+_G['AIObjectiveReturn'].Reset = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['AIObjectiveReturn'].OnAbandon = function() end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param orderGiver Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveReturn
+_G['AIObjectiveReturn'] = function(character, orderGiver, objectiveManager, priorityModifier) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param orderGiver Barotrauma.Character
+---@param objectiveManager Barotrauma.AIObjectiveManager
+---@param priorityModifier? System.Single
+---@return Barotrauma.AIObjectiveReturn
+_G['AIObjectiveReturn'].__new = function(character, orderGiver, objectiveManager, priorityModifier) end
+
diff --git a/Meta/Types/server/_00007FFD96914898.lua b/Meta/Types/server/_00007FFD96914898.lua
new file mode 100644
index 0000000..ac317de
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96914898.lua
@@ -0,0 +1,298 @@
+---@meta
+---@class Barotrauma.Limb : System.Object
+---`Field Public Instance`
+---@field character Barotrauma.Character
+---`Field Public Instance`
+---@field ragdoll Barotrauma.Ragdoll
+---`Field Public Instance`
+---@field Params Barotrauma.RagdollParams.LimbParams
+---`Field Public Instance`
+---@field body Barotrauma.PhysicsBody
+---`Field Public Instance`
+---@field Hull Barotrauma.Hull
+---`Field Private Instance`
+---@field pullJoint FarseerPhysics.Dynamics.Joints.FixedMouseJoint
+---`Field Public Instance`
+---@field type Barotrauma.LimbType
+---`Field Private Instance`
+---@field ignoreCollisions System.Boolean
+---`Field Private Instance`
+---@field isSevered System.Boolean
+---`Field Private Instance`
+---@field severedFadeOutTimer System.Single
+---`Field Private Instance`
+---@field mouthPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field attack Barotrauma.Attack
+---`Field Private Instance`
+---@field dir Barotrauma.Direction
+---`Field Public Instance`
+---@field DebugTargetPos Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field DebugRefPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _hidden System.Boolean
+---`Field Private Instance`
+---@field _alpha System.Single
+---`Field Public Instance`
+---@field WearingItems (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Public Instance`
+---@field OtherWearables (System.Collections.Generic.List*1Barotrauma*WearableSprite)|(Barotrauma.WearableSprite[])
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Field Private Instance`
+---@field appliedDamageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Field Private Instance`
+---@field tempModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Field Private Instance`
+---@field afflictionsCopy (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+---`Field Private Instance`
+---@field temporarilyDisabled System.Boolean
+---`Field Private Instance`
+---@field reEnableTimer System.Single
+---`Field Private Instance`
+---@field originalIgnoreCollisions System.Boolean
+---`Field Private Instance`
+---@field contactBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field attachJoint FarseerPhysics.Dynamics.Joints.WeldJoint
+---`Field Private Instance`
+---@field colliderJoint FarseerPhysics.Dynamics.Joints.WeldJoint
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Public Instance`
+---@field FreezeBlinkState System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SeveredFadeOutTime System.Single
+---`Getter Public Instance`
+---@field StepOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreCollisions System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MouthPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Getter Public Instance`
+---@field HealthIndex System.Int32
+---`Getter Public Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---@field AttackPriority System.Single
+---`Getter Public Instance`
+---@field DoesFlip System.Boolean
+---`Getter Public Instance`
+---@field DoesMirror System.Boolean
+---`Getter Public Instance`
+---@field SteerForce System.Single
+---`Getter Public Instance`
+---@field IsLowerBody System.Boolean
+---`Getter Public Instance`
+---@field IsLeg System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsSevered System.Boolean
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hidden System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hide System.Boolean
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AnimTargetPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Disabled System.Boolean
+---`Getter Public Instance`
+---@field LinearVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Dir System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Alpha System.Single
+---`Getter Public Instance`
+---@field RefJointIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointMaxForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointWorldAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PullJointWorldAnchorB Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field PullJointLocalAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttachedRope Barotrauma.Items.Components.Rope
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field IsDead System.Boolean
+---`Getter Public Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---@field HealthPercentage System.Single
+---`Getter Public Instance`
+---@field IsHuman System.Boolean
+---`Getter Public Instance`
+---@field AIState Barotrauma.AIState
+---`Getter Public Instance`
+---@field IsFlipped System.Boolean
+---`Getter Public Instance`
+---@field CanBeSeveredAlive System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---@field StatusEffects (System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect)|({[Barotrauma.ActionType]:((System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[]))})
+---`Getter Public Instance`
+---@field IsStuck System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BlinkTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BlinkPhase System.Single
+---`Getter Private Instance`
+---@field TotalBlinkDurationOut System.Single
+_G['Limb'] = {}
+
+---`Method Public Instance`
+_G['Limb'].Blink = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param referenceRotation System.Single
+_G['Limb'].UpdateBlink = function(deltaTime, referenceRotation) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*LimbJoint)|(fun():(Barotrauma.LimbJoint))
+_G['Limb'].GetConnectedJoints = function() end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Limb)|(fun():(Barotrauma.Limb))
+_G['Limb'].GetConnectedLimbs = function() end
+
+---`Method Public Instance`
+_G['Limb'].Remove = function() end
+
+---`Method Public Instance`
+_G['Limb'].LoadParams = function() end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param force System.Single
+---@param pullFromCenter? System.Boolean
+_G['Limb'].MoveToPos = function(pos, force, pullFromCenter) end
+
+---`Method Public Instance`
+_G['Limb'].MirrorPullJoint = function() end
+
+---`Method Public Instance`
+---@overload fun(simPosition:Microsoft.Xna.Framework.Vector2, damage:System.Single, bleedingDamage:System.Single, burnDamage:System.Single, playSound:System.Boolean):(Barotrauma.AttackResult)
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param afflictions (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+---@param playSound System.Boolean
+---@param damageMultiplier? System.Single
+---@param penetration? System.Single
+---@param attacker? Barotrauma.Character
+---@return Barotrauma.AttackResult
+_G['Limb'].AddDamage = function(simPosition, afflictions, playSound, damageMultiplier, penetration, attacker) end
+
+---`Method Public Instance`
+---@param armorSector Microsoft.Xna.Framework.Vector2
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Limb'].SectorHit = function(armorSector, simPosition) end
+
+---`Method NonPublic Instance`
+---@param armorSector Microsoft.Xna.Framework.Vector2
+---@return System.Single
+_G['Limb'].GetArmorSectorSize = function(armorSector) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Limb'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param duration? System.Single
+---@param ignoreCollisions? System.Boolean
+_G['Limb'].HideAndDisable = function(duration, ignoreCollisions) end
+
+---`Method Public Instance`
+_G['Limb'].ReEnable = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param attackSimPos Microsoft.Xna.Framework.Vector2
+---@param damageTarget Barotrauma.IDamageable
+---@param attackResult Barotrauma.AttackResult-ref
+---@param distance? System.Single
+---@param targetLimb? Barotrauma.Limb
+---@return System.Boolean
+_G['Limb'].UpdateAttack = function(deltaTime, attackSimPos, damageTarget, attackResult, distance, targetLimb) end
+
+---`Method Public Instance`
+---@param damageTarget Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param attackResult Barotrauma.AttackResult-ref
+_G['Limb'].ExecuteAttack = function(damageTarget, targetLimb, attackResult) end
+
+---`Method Private Instance`
+---@param target FarseerPhysics.Dynamics.Body
+---@param from Microsoft.Xna.Framework.Vector2
+---@param to Microsoft.Xna.Framework.Vector2
+_G['Limb'].StickTo = function(target, from, to) end
+
+---`Method Public Instance`
+_G['Limb'].Release = function() end
+
+---`Method Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param deltaTime System.Single
+_G['Limb'].ApplyStatusEffects = function(actionType, deltaTime) end
+
+---`Constructor Public Instance`
+---@param ragdoll Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param limbParams Barotrauma.RagdollParams.LimbParams
+---@return Barotrauma.Limb
+_G['Limb'] = function(ragdoll, character, limbParams) end
+
+---`Constructor Public Instance`
+---@param ragdoll Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param limbParams Barotrauma.RagdollParams.LimbParams
+---@return Barotrauma.Limb
+_G['Limb'].__new = function(ragdoll, character, limbParams) end
+
diff --git a/Meta/Types/server/_00007FFD96914CD8.lua b/Meta/Types/server/_00007FFD96914CD8.lua
new file mode 100644
index 0000000..2976b14
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96914CD8.lua
@@ -0,0 +1,77 @@
+---@meta
+---@class Barotrauma.LimbJoint : System.Object
+---`Field Public Instance`
+---@field IsSevered System.Boolean
+---`Field Public Instance`
+---@field Params Barotrauma.RagdollParams.JointParams
+---`Field Public Instance`
+---@field ragdoll Barotrauma.Ragdoll
+---`Field Public Instance`
+---@field LimbA Barotrauma.Limb
+---`Field Public Instance`
+---@field LimbB Barotrauma.Limb
+---`Field Public Instance`
+---@field revoluteJoint FarseerPhysics.Dynamics.Joints.RevoluteJoint
+---`Field Public Instance`
+---@field weldJoint FarseerPhysics.Dynamics.Joints.WeldJoint
+---`Getter Public Instance`
+---@field CanBeSevered System.Boolean
+---`Getter Public Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---@field Joint FarseerPhysics.Dynamics.Joints.Joint
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---@field BodyA FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---@field BodyB FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WorldAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WorldAnchorB Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LocalAnchorA Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LocalAnchorB Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimitEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LowerLimit System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UpperLimit System.Single
+---`Getter Public Instance`
+---@field JointAngle System.Single
+_G['LimbJoint'] = {}
+
+---`Method Public Instance`
+_G['LimbJoint'].LoadParams = function() end
+
+---`Constructor Public Instance`
+---@overload fun(limbA:Barotrauma.Limb, limbB:Barotrauma.Limb, jointParams:Barotrauma.RagdollParams.JointParams, ragdoll:Barotrauma.Ragdoll):Barotrauma.LimbJoint
+---@param limbA Barotrauma.Limb
+---@param limbB Barotrauma.Limb
+---@param anchor1 Microsoft.Xna.Framework.Vector2
+---@param anchor2 Microsoft.Xna.Framework.Vector2
+---@param weld? System.Boolean
+---@return Barotrauma.LimbJoint
+_G['LimbJoint'] = function(limbA, limbB, anchor1, anchor2, weld) end
+
+---`Constructor Public Instance`
+---@overload fun(limbA:Barotrauma.Limb, limbB:Barotrauma.Limb, jointParams:Barotrauma.RagdollParams.JointParams, ragdoll:Barotrauma.Ragdoll):Barotrauma.LimbJoint
+---@param limbA Barotrauma.Limb
+---@param limbB Barotrauma.Limb
+---@param anchor1 Microsoft.Xna.Framework.Vector2
+---@param anchor2 Microsoft.Xna.Framework.Vector2
+---@param weld? System.Boolean
+---@return Barotrauma.LimbJoint
+_G['LimbJoint'].__new = function(limbA, limbB, anchor1, anchor2, weld) end
+
diff --git a/Meta/Types/server/_00007FFD96914EB0.lua b/Meta/Types/server/_00007FFD96914EB0.lua
new file mode 100644
index 0000000..ad1240a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96914EB0.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Items.Components.LimbPos : System.Object
+---`Field Public Instance`
+---@field AllowUsingLimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimbType Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+_G['Components']['LimbPos'] = {}
+
+---`Constructor Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param position Microsoft.Xna.Framework.Vector2
+---@param allowUsingLimb System.Boolean
+---@return Barotrauma.Items.Components.LimbPos
+_G['Components']['LimbPos'] = function(limbType, position, allowUsingLimb) end
+
+---`Constructor Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param position Microsoft.Xna.Framework.Vector2
+---@param allowUsingLimb System.Boolean
+---@return Barotrauma.Items.Components.LimbPos
+_G['Components']['LimbPos'].__new = function(limbType, position, allowUsingLimb) end
+
diff --git a/Meta/Types/server/_00007FFD96915FC8.lua b/Meta/Types/server/_00007FFD96915FC8.lua
new file mode 100644
index 0000000..bf06bfd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96915FC8.lua
@@ -0,0 +1,482 @@
+---@meta
+---@class Barotrauma.Ragdoll : System.Object
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1Barotrauma*Ragdoll*Impact)|(fun():(Barotrauma.Ragdoll.Impact))
+---`Field NonPublic Instance`
+---@field currentHull Barotrauma.Hull
+---`Field Private Instance`
+---@field accessRemovedCharacterErrorShown System.Boolean
+---`Field Private Instance`
+---@field limbs (Barotrauma.Limb-arr)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field frozen System.Boolean
+---`Field Private Instance`
+---@field limbDictionary (System.Collections.Generic.Dictionary*1Barotrauma*LimbType*1Barotrauma*Limb)|({[Barotrauma.LimbType]:(Barotrauma.Limb)})
+---`Field Public Instance`
+---@field LimbJoints (Barotrauma.LimbJoint-arr)|(Barotrauma.LimbJoint[])
+---`Field Private Instance`
+---@field simplePhysicsEnabled System.Boolean
+---`Field NonPublic Instance`
+---@field character Barotrauma.Character
+---`Field NonPublic Instance`
+---@field strongestImpact System.Single
+---`Field Private Instance`
+---@field splashSoundTimer System.Single
+---`Field Private Instance`
+---@field flowForceTolerance System.Single
+---`Field Private Instance`
+---@field flowStunTolerance System.Single
+---`Field Public Instance`
+---@field movement Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field targetMovement Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field overrideTargetMovement Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field floorY System.Single
+---`Field NonPublic Instance`
+---@field standOnFloorY System.Single
+---`Field NonPublic Instance`
+---@field floorFixture FarseerPhysics.Dynamics.Fixture
+---`Field NonPublic Instance`
+---@field floorNormal Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field surfaceY System.Single
+---`Field NonPublic Instance`
+---@field inWater System.Boolean
+---`Field NonPublic Instance`
+---@field headInWater System.Boolean
+---`Field NonPublic Instance`
+---@field onGround System.Boolean
+---`Field Private Instance`
+---@field lastFloorCheckPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field lastFloorCheckIgnoreStairs System.Boolean
+---`Field Private Instance`
+---@field lastFloorCheckIgnorePlatforms System.Boolean
+---`Field Public Instance`
+---@field Stairs Barotrauma.Structure
+---`Field NonPublic Instance`
+---@field dir Barotrauma.Direction
+---`Field Public Instance`
+---@field TargetDir Barotrauma.Direction
+---`Field NonPublic Instance`
+---@field collider (System.Collections.Generic.List*1Barotrauma*PhysicsBody)|(Barotrauma.PhysicsBody[])
+---`Field NonPublic Instance`
+---@field colliderIndex System.Int32
+---`Field Private Instance`
+---@field prevCollisionCategory FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field impactTolerance System.Nullable*1System*Single
+---`Field Private Instance`
+---@field connectedLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field checkedJoints (System.Collections.Generic.List*1Barotrauma*LimbJoint)|(Barotrauma.LimbJoint[])
+---`Field NonPublic Instance`
+---@field levitatingCollider System.Boolean
+---`Field Private Instance`
+---@field bodyInRestTimer System.Single
+---`Field Private Instance`
+---@field BodyInRestDelay System.Single
+---`Field Public Instance`
+---@field forceStanding System.Boolean
+---`Field Public Instance`
+---@field forceNotStanding System.Boolean
+---`Field Private Instance`
+---@field validityResets System.Int32
+---`Field Private Instance`
+---@field floorYCheckTimer System.Single
+---`Field NonPublic Instance`
+---@field shouldHoldToRope System.Boolean
+---`Field NonPublic Instance`
+---@field shouldHangWithRope System.Boolean
+---`Field NonPublic Instance`
+---@field shouldBeDraggedWithRope System.Boolean
+---`Field Private Instance`
+---@field collisionsDisabled System.Boolean
+---`Field Private Instance`
+---@field lastObstacleRayCastTime System.Double
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Ragdoll)|(Barotrauma.Ragdoll[])
+---`Field Private Static`
+---@field ImpactDamageMultiplayer System.Single
+---`Field Private Static`
+---@field MaxImpactDamage System.Single
+---`Field Public Static`
+---@field MAX_SPEED System.Single
+---`Field Private Static`
+---@field FloorYStaleTime System.Single
+---`Getter Public Instance Abstract Virtual`
+---
`Setter NonPublic Instance Abstract Virtual`
+---@field RagdollParams Barotrauma.RagdollParams
+---`Getter Public Instance`
+---@field Limbs (Barotrauma.Limb-arr)|(Barotrauma.Limb[])
+---`Getter Public Instance`
+---@field HasMultipleLimbsOfSameType System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Frozen System.Boolean
+---`Getter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---@field OnGround System.Boolean
+---`Getter Public Instance`
+---@field ColliderHeightFromFloor System.Single
+---`Getter Public Instance`
+---@field IsStuck System.Boolean
+---`Getter Public Instance`
+---@field Collider Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ColliderIndex System.Int32
+---`Getter Public Instance`
+---@field FloorY System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---@field MainLimb Barotrauma.Limb
+---`Getter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SimplePhysicsEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetMovement Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Abstract Virtual`
+---@field HeadPosition System.Nullable*1System*Single
+---`Getter Public Instance Abstract Virtual`
+---@field HeadAngle System.Nullable*1System*Single
+---`Getter Public Instance Abstract Virtual`
+---@field TorsoPosition System.Nullable*1System*Single
+---`Getter Public Instance Abstract Virtual`
+---@field TorsoAngle System.Nullable*1System*Single
+---`Getter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---@field Draggable System.Boolean
+---`Getter Public Instance`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance`
+---@field Dir System.Single
+---`Getter Public Instance`
+---@field Direction Barotrauma.Direction
+---`Getter Public Instance`
+---@field InWater System.Boolean
+---`Getter Public Instance`
+---@field HeadInWater System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentHull Barotrauma.Hull
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnorePlatforms System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsFlipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyInRest System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Invalid System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHoldingToRope System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsHangingWithRope System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsDraggedWithRope System.Boolean
+_G['Ragdoll'] = {}
+
+---`Method Public Instance`
+_G['Ragdoll'].HangWithRope = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].HoldToRope = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].DragWithRope = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].StopHangingWithRope = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].StopHoldingToRope = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].StopGettingDraggedWithRope = function() end
+
+---`Method NonPublic Instance`
+---@param limb Barotrauma.Limb
+---@param original Microsoft.Xna.Framework.Vector2
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param lerp? System.Boolean
+---@param ignorePlatforms? System.Boolean
+_G['Ragdoll'].TrySetLimbPosition = function(limb, original, simPosition, rotation, lerp, ignorePlatforms) end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CheckDistFromCollider = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Ragdoll'].UpdateNetPlayerPosition = function(deltaTime) end
+
+---`Method Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param excludeSevered? System.Boolean
+---@param excludeLimbsWithSecondaryType? System.Boolean
+---@param useSecondaryType? System.Boolean
+---@return Barotrauma.Limb
+_G['Ragdoll'].GetLimb = function(limbType, excludeSevered, excludeLimbsWithSecondaryType, useSecondaryType) end
+
+---`Method Public Instance`
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Ragdoll'].GetMouthPosition = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Ragdoll'].GetColliderBottom = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Limb
+_G['Ragdoll'].FindLowestLimb = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].ReleaseStuckLimbs = function() end
+
+---`Method Public Instance`
+---@param limbType Barotrauma.LimbType
+---@param duration? System.Single
+---@param ignoreCollisions? System.Boolean
+_G['Ragdoll'].HideAndDisable = function(limbType, duration, ignoreCollisions) end
+
+---`Method Public Instance`
+_G['Ragdoll'].RestoreTemporarilyDisabled = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].Remove = function() end
+
+---`Method Public Static`
+_G['Ragdoll'].RemoveAll = function() end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param collider Barotrauma.PhysicsBody-ref
+---@return System.Boolean
+_G['Ragdoll'].TryGetCollider = function(index, collider) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].SubtractMass = function(limb) end
+
+---`Method Public Instance Virtual`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['Ragdoll'].Recreate = function(ragdollParams) end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CreateColliders = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CreateJoints = function() end
+
+---`Method Private Instance`
+_G['Ragdoll'].SetInitialLimbPositions = function() end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].CreateLimbs = function() end
+
+---`Method Public Instance`
+---@param fileNameWithoutExtension? System.String
+_G['Ragdoll'].SaveRagdoll = function(fileNameWithoutExtension) end
+
+---`Method Public Instance`
+_G['Ragdoll'].ResetRagdoll = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].ResetJoints = function() end
+
+---`Method Public Instance`
+_G['Ragdoll'].ResetLimbs = function() end
+
+---`Method Public Instance`
+---@param jointParams Barotrauma.RagdollParams.JointParams
+_G['Ragdoll'].AddJoint = function(jointParams) end
+
+---`Method NonPublic Instance`
+---@param limbParams Barotrauma.RagdollParams.LimbParams
+_G['Ragdoll'].AddLimb = function(limbParams) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].AddLimb = function(limb) end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].RemoveLimb = function(limb) end
+
+---`Method Public Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Ragdoll'].OnLimbCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param localNormal Microsoft.Xna.Framework.Vector2
+---@param impactPos Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+_G['Ragdoll'].ApplyImpact = function(f1, f2, localNormal, impactPos, velocity) end
+
+---`Method Public Instance`
+---@param impact System.Single
+---@param impactTolerance? System.Nullable*1System*Single
+---@return System.Single
+_G['Ragdoll'].GetImpactDamage = function(impact, impactTolerance) end
+
+---`Method Public Instance`
+---@param limbJoint Barotrauma.LimbJoint
+---@return System.Boolean
+_G['Ragdoll'].SeverLimbJoint = function(limbJoint) end
+
+---`Method NonPublic Instance`
+---@param limb Barotrauma.Limb
+---@return (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+_G['Ragdoll'].GetConnectedLimbs = function(limb) end
+
+---`Method Private Instance`
+---@param connectedLimbs (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---@param checkedJoints (System.Collections.Generic.List*1Barotrauma*LimbJoint)|(Barotrauma.LimbJoint[])
+---@param limb Barotrauma.Limb
+_G['Ragdoll'].GetConnectedLimbs = function(connectedLimbs, checkedJoints, limb) end
+
+---`Method Public Instance Virtual`
+_G['Ragdoll'].Flip = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Ragdoll'].GetCenterOfMass = function() end
+
+---`Method Public Instance`
+---@param limb Barotrauma.Limb
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param amount System.Single
+---@param pullFromCenter? System.Boolean
+_G['Ragdoll'].MoveLimb = function(limb, pos, amount, pullFromCenter) end
+
+---`Method Public Instance`
+---@param condition? (System.Func*1Barotrauma*Limb*1System*Boolean)|(fun(arg:Barotrauma.Limb):(System.Boolean))
+_G['Ragdoll'].ResetPullJoints = function(condition) end
+
+---`Method Public Static`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Ragdoll'].UpdateAll = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@param setSubmarine? System.Boolean
+_G['Ragdoll'].FindHull = function(worldPosition, setSubmarine) end
+
+---`Method Private Instance`
+_G['Ragdoll'].PreventOutsideCollision = function() end
+
+---`Method Public Instance`
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+---@param velocityChange Microsoft.Xna.Framework.Vector2
+---@param detachProjectiles? System.Boolean
+_G['Ragdoll'].Teleport = function(moveAmount, velocityChange, detachProjectiles) end
+
+---`Method Private Instance`
+_G['Ragdoll'].UpdateCollisionCategories = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Ragdoll'].UpdateRagdoll = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Ragdoll'].CheckBodyInRest = function(deltaTime) end
+
+---`Method Private Instance`
+---@overload fun():(System.Boolean)
+---@param body Barotrauma.PhysicsBody
+---@return System.Boolean
+_G['Ragdoll'].CheckValidity = function(body) end
+
+---`Method NonPublic Instance`
+_G['Ragdoll'].LogAccessedRemovedCharacterError = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Ragdoll'].UpdateHullFlowForces = function(deltaTime) end
+
+---`Method Public Instance`
+_G['Ragdoll'].ForceRefreshFloorY = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param ignoreStairs? System.Boolean
+_G['Ragdoll'].RefreshFloorY = function(deltaTime, ignoreStairs) end
+
+---`Method Private Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param ignoreStairs? System.Boolean
+---@return System.Single
+_G['Ragdoll'].GetFloorY = function(simPosition, ignoreStairs) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Ragdoll'].GetSurfaceY = function() end
+
+---`Method Private Instance`
+---@return System.ValueTuple*1System*Single*1System*Single
+_G['Ragdoll'].GetWaterSurfaceAndCeilingY = function() end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param lerp? System.Boolean
+---@param ignorePlatforms? System.Boolean
+---@param forceMainLimbToCollider? System.Boolean
+---@param moveLatchers? System.Boolean
+_G['Ragdoll'].SetPosition = function(simPosition, lerp, ignorePlatforms, forceMainLimbToCollider, moveLatchers) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'] = function(character, seed, ragdollParams) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'].__new = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'] = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Ragdoll
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.Ragdoll
+_G['Ragdoll'].__new = function(character, seed, ragdollParams) end
+
diff --git a/Meta/Types/server/_00007FFD96916C88.lua b/Meta/Types/server/_00007FFD96916C88.lua
new file mode 100644
index 0000000..a8a5f1b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96916C88.lua
@@ -0,0 +1,299 @@
+---@meta
+---@class Barotrauma.AnimController : Barotrauma.Ragdoll
+---`Field NonPublic Instance`
+---@field rightShoulder Barotrauma.LimbJoint
+---`Field NonPublic Instance`
+---@field leftShoulder Barotrauma.LimbJoint
+---`Field NonPublic Instance`
+---@field upperArmLength System.Single
+---`Field NonPublic Instance`
+---@field forearmLength System.Single
+---`Field NonPublic Instance`
+---@field useItemTimer System.Single
+---`Field NonPublic Instance`
+---@field aiming System.Boolean
+---`Field NonPublic Instance`
+---@field wasAiming System.Boolean
+---`Field NonPublic Instance`
+---@field aimingMelee System.Boolean
+---`Field NonPublic Instance`
+---@field wasAimingMelee System.Boolean
+---`Field NonPublic Instance`
+---@field tempAnimations (System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimController*AnimSwap)|({[Barotrauma.AnimationType]:(Barotrauma.AnimController.AnimSwap)})
+---`Field NonPublic Instance`
+---@field expiredAnimations (System.Collections.Generic.HashSet*1Barotrauma*AnimationType)|(Barotrauma.AnimationType[])
+---`Field NonPublic Instance`
+---@field deathAnimTimer System.Single
+---`Field NonPublic Instance`
+---@field deathAnimDuration System.Single
+---`Field Public Instance`
+---@field Anim Barotrauma.AnimController.Animation
+---`Field Private Instance`
+---@field previousDirection Barotrauma.Direction
+---`Field Private Instance`
+---@field transformedHandlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field prevFootPos System.Single
+---`Field Private Instance`
+---@field defaultAnimations (System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimationParams)|({[Barotrauma.AnimationType]:(Barotrauma.AnimationParams)})
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field RightHandIKPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field LeftHandIKPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field IsAiming System.Boolean
+---`Getter Public Instance`
+---@field IsAimingMelee System.Boolean
+---`Getter NonPublic Instance`
+---@field Aiming System.Boolean
+---`Getter Public Instance`
+---@field ArmLength System.Single
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field WalkParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field RunParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field SwimSlowParams Barotrauma.SwimParams
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field SwimFastParams Barotrauma.SwimParams
+---`Getter Public Instance`
+---@field CurrentAnimationParams Barotrauma.AnimationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceSelectAnimationType Barotrauma.AnimationType
+---`Getter Public Instance`
+---@field CurrentGroundedParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance`
+---@field CurrentSwimParams Barotrauma.SwimParams
+---`Getter Public Instance`
+---@field CanWalk System.Boolean
+---`Getter Public Instance`
+---@field IsMovingBackwards System.Boolean
+---`Getter Public Instance`
+---@field IsMovingFast System.Boolean
+---`Getter Public Instance`
+---@field AllAnimParams (System.Collections.Generic.List*1Barotrauma*AnimationParams)|(Barotrauma.AnimationParams[])
+---`Getter Public Instance`
+---@field IsUsingItem System.Boolean
+---`Getter Public Instance`
+---@field IsClimbing System.Boolean
+---`Getter Public Instance`
+---@field AimSourceWorldPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field AimSourcePos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field AimSourceSimPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field HeadPosition System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field TorsoPosition System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field HeadAngle System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field TorsoAngle System.Nullable*1System*Single
+---`Getter Public Instance Virtual`
+---@field StepSize System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AnimationTestPose System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field WalkPos System.Single
+---`Getter Public Instance`
+---@field IsAboveFloor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FlipLockTime System.Single
+_G['AnimController'] = {}
+
+---`Method NonPublic Instance`
+---@overload fun(p:Barotrauma.AnimationParams, v:System.Nullable*1System*Single):(System.Nullable*1System*Single)
+---@param p Barotrauma.AnimationParams
+---@param v Microsoft.Xna.Framework.Vector2
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['AnimController'].GetValidOrNull = function(p, v) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateAnimations = function(deltaTime) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateAnim = function(deltaTime) end
+
+---`Method Public Instance Abstract Virtual`
+---@param target Barotrauma.Character
+---@param deltaTime System.Single
+_G['AnimController'].DragCharacter = function(target, deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param type Barotrauma.AnimationType
+---@return System.Single
+_G['AnimController'].GetSpeed = function(type) end
+
+---`Method Public Instance`
+---@param useMaxSpeed System.Boolean
+---@return System.Single
+_G['AnimController'].GetCurrentSpeed = function(useMaxSpeed) end
+
+---`Method Public Instance`
+---@param type Barotrauma.AnimationType
+---@return Barotrauma.AnimationParams
+_G['AnimController'].GetAnimationParamsFromType = function(type) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['AnimController'].GetHeightFromFloor = function() end
+
+---`Method Public Instance`
+---@param time? System.Single
+_G['AnimController'].LockFlipping = function(time) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateConstantTorque = function(deltaTime) end
+
+---`Method NonPublic Instance`
+---@param deltaTime System.Single
+_G['AnimController'].UpdateBlink = function(deltaTime) end
+
+---`Method Public Instance`
+---@param allowMovement System.Boolean
+---@param handWorldPos Microsoft.Xna.Framework.Vector2
+_G['AnimController'].UpdateUseItem = function(allowMovement, handWorldPos) end
+
+---`Method Public Instance`
+---@param rightHandPos Microsoft.Xna.Framework.Vector2
+---@param leftHandPos Microsoft.Xna.Framework.Vector2
+_G['AnimController'].Grab = function(rightHandPos, leftHandPos) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param item Barotrauma.Item
+---@param handlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---@param itemPos Microsoft.Xna.Framework.Vector2
+---@param aim System.Boolean
+---@param holdAngle System.Single
+---@param itemAngleRelativeToHoldAngle? System.Single
+---@param aimMelee? System.Boolean
+---@param targetPos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['AnimController'].HoldItem = function(deltaTime, item, handlePos, itemPos, aim, holdAngle, itemAngleRelativeToHoldAngle, aimMelee, targetPos) end
+
+---`Method Private Instance`
+---@param rightHand Barotrauma.Limb
+---@param leftHand Barotrauma.Limb
+---@param heldItem Barotrauma.Item
+---@return System.Single
+_G['AnimController'].GetAimWobble = function(rightHand, leftHand, heldItem) end
+
+---`Method Public Instance`
+---@param hand Barotrauma.Limb
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param armTorque? System.Single
+---@param handTorque? System.Single
+---@param maxAngularVelocity? System.Single
+_G['AnimController'].HandIK = function(hand, pos, armTorque, handTorque, maxAngularVelocity) end
+
+---`Method NonPublic Instance`
+_G['AnimController'].UpdateClimbing = function() end
+
+---`Method NonPublic Instance`
+---@param head Barotrauma.Limb
+_G['AnimController'].RotateHead = function(head) end
+
+---`Method Public Instance`
+---@param leftHandPos Microsoft.Xna.Framework.Vector2
+---@param rightHandPos Microsoft.Xna.Framework.Vector2
+---@param leftFootPos Microsoft.Xna.Framework.Vector2
+---@param rightFootPos Microsoft.Xna.Framework.Vector2
+---@param footMoveForce? System.Single
+_G['AnimController'].ApplyPose = function(leftHandPos, rightHandPos, leftFootPos, rightFootPos, footMoveForce) end
+
+---`Method Public Instance`
+_G['AnimController'].ApplyTestPose = function() end
+
+---`Method NonPublic Instance`
+_G['AnimController'].CalculateArmLengths = function() end
+
+---`Method NonPublic Instance`
+---@param limbTypeA Barotrauma.LimbType
+---@param limbTypeB Barotrauma.LimbType
+---@return Barotrauma.LimbJoint
+_G['AnimController'].GetJointBetweenLimbs = function(limbTypeA, limbTypeB) end
+
+---`Method NonPublic Instance`
+---@param matchingType Barotrauma.LimbType
+---@param ignoredTypes (System.Collections.Generic.IEnumerable*1Barotrauma*LimbType)|(fun():(Barotrauma.LimbType))
+---@return Barotrauma.LimbJoint
+_G['AnimController'].GetJoint = function(matchingType, ignoredTypes) end
+
+---`Method Public Instance Virtual`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['AnimController'].Recreate = function(ragdollParams) end
+
+---`Method Public Instance`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['AnimController'].RecreateAndRespawn = function(ragdollParams) end
+
+---`Method Private Instance`
+---@param animation Barotrauma.AnimController.Animation
+_G['AnimController'].StartAnimation = function(animation) end
+
+---`Method Private Instance`
+---@param animation Barotrauma.AnimController.Animation
+_G['AnimController'].StopAnimation = function(animation) end
+
+---`Method Public Instance`
+_G['AnimController'].StartUsingItem = function() end
+
+---`Method Public Instance`
+_G['AnimController'].StartClimbing = function() end
+
+---`Method Public Instance`
+_G['AnimController'].StopUsingItem = function() end
+
+---`Method Public Instance`
+_G['AnimController'].StopClimbing = function() end
+
+---`Method Public Instance`
+---@param animLoadInfo Barotrauma.StatusEffect.AnimLoadInfo
+---@param throwErrors System.Boolean
+---@return System.Boolean
+_G['AnimController'].TryLoadTemporaryAnimation = function(animLoadInfo, throwErrors) end
+
+---`Method Private Instance`
+_G['AnimController'].UpdateTemporaryAnimations = function() end
+
+---`Method Public Instance`
+---@param animationType Barotrauma.AnimationType
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param animParams Barotrauma.AnimationParams-ref
+---@param throwErrors System.Boolean
+---@return System.Boolean
+_G['AnimController'].TryLoadAnimation = function(animationType, file, animParams, throwErrors) end
+
+---`Method NonPublic Instance`
+---@param newParams Barotrauma.AnimationParams
+---@return System.Boolean
+_G['AnimController'].TrySwapAnimParams = function(newParams) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.AnimController
+_G['AnimController'] = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.RagdollParams
+---@return Barotrauma.AnimController
+_G['AnimController'].__new = function(character, seed, ragdollParams) end
+
diff --git a/Meta/Types/server/_00007FFD96917308.lua b/Meta/Types/server/_00007FFD96917308.lua
new file mode 100644
index 0000000..6146fcb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96917308.lua
@@ -0,0 +1,128 @@
+---@meta
+---@class Barotrauma.FishAnimController : Barotrauma.AnimController
+---`Field Private Instance`
+---@field _ragdollParams Barotrauma.FishRagdollParams
+---`Field Private Instance`
+---@field _fishWalkParams Barotrauma.FishWalkParams
+---`Field Private Instance`
+---@field _fishRunParams Barotrauma.FishRunParams
+---`Field Private Instance`
+---@field _fishSwimSlowParams Barotrauma.FishSwimSlowParams
+---`Field Private Instance`
+---@field _fishSwimFastParams Barotrauma.FishSwimFastParams
+---`Field Private Instance`
+---@field flipTimer System.Single
+---`Field Private Instance`
+---@field flipCooldown System.Single
+---`Field Private Instance`
+---@field eatTimer System.Single
+---`Field Public Instance`
+---@field Reverse System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field RagdollParams Barotrauma.RagdollParams
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field FishRagdollParams Barotrauma.FishRagdollParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishWalkParams Barotrauma.FishWalkParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishRunParams Barotrauma.FishRunParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishSwimSlowParams Barotrauma.FishSwimSlowParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FishSwimFastParams Barotrauma.FishSwimFastParams
+---`Getter Public Instance`
+---@field CurrentFishAnimation Barotrauma.IFishAnimation
+---`Getter Public Instance`
+---@field CurrentGroundedParams Barotrauma.FishGroundedParams
+---`Getter Public Instance`
+---@field CurrentSwimParams Barotrauma.FishSwimParams
+---`Getter Public Instance`
+---@field TailAngle System.Nullable*1System*Single
+---`Getter Public Instance`
+---@field FootTorque System.Single
+---`Getter Public Instance`
+---@field HeadTorque System.Single
+---`Getter Public Instance`
+---@field TorsoTorque System.Single
+---`Getter Public Instance`
+---@field TailTorque System.Single
+---`Getter Public Instance`
+---@field HeadMoveForce System.Single
+---`Getter Public Instance`
+---@field TorsoMoveForce System.Single
+---`Getter Public Instance`
+---@field FootMoveForce System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field WalkParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field RunParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimSlowParams Barotrauma.SwimParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimFastParams Barotrauma.SwimParams
+_G['FishAnimController'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateAnim = function(deltaTime) end
+
+---`Method Private Instance`
+---@param target Barotrauma.Character
+---@return System.Boolean
+_G['FishAnimController'].CanDrag = function(target) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.Character
+---@param deltaTime System.Single
+_G['FishAnimController'].DragCharacter = function(target, deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateSineAnim = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateWalkAnim = function(deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['FishAnimController'].UpdateDying = function(deltaTime) end
+
+---`Method Private Instance`
+---@param limb Barotrauma.Limb
+---@param angle System.Single
+---@param referenceLimb Barotrauma.Limb
+---@param torque System.Single
+_G['FishAnimController'].SmoothRotateWithoutWrapping = function(limb, angle, referenceLimb, torque) end
+
+---`Method Public Instance Virtual`
+_G['FishAnimController'].Flip = function() end
+
+---`Method Public Instance`
+---@param lerp? System.Boolean
+_G['FishAnimController'].Mirror = function(lerp) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.FishRagdollParams
+---@return Barotrauma.FishAnimController
+_G['FishAnimController'] = function(character, seed, ragdollParams) end
+
+---`Constructor Public Instance`
+---@param character Barotrauma.Character
+---@param seed System.String
+---@param ragdollParams? Barotrauma.FishRagdollParams
+---@return Barotrauma.FishAnimController
+_G['FishAnimController'].__new = function(character, seed, ragdollParams) end
+
diff --git a/Meta/Types/server/_00007FFD96917A58.lua b/Meta/Types/server/_00007FFD96917A58.lua
new file mode 100644
index 0000000..b6c9112
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96917A58.lua
@@ -0,0 +1,183 @@
+---@meta
+---@class Barotrauma.HumanoidAnimController : Barotrauma.AnimController
+---`Field Private Instance`
+---@field _ragdollParams Barotrauma.HumanRagdollParams
+---`Field Private Instance`
+---@field _humanWalkParams Barotrauma.HumanWalkParams
+---`Field Private Instance`
+---@field _humanRunParams Barotrauma.HumanRunParams
+---`Field Private Instance`
+---@field _humanCrouchParams Barotrauma.HumanCrouchParams
+---`Field Private Instance`
+---@field _humanSwimSlowParams Barotrauma.HumanSwimSlowParams
+---`Field Private Instance`
+---@field _humanSwimFastParams Barotrauma.HumanSwimFastParams
+---`Field Private Instance`
+---@field upperLegLength System.Single
+---`Field Private Instance`
+---@field lowerLegLength System.Single
+---`Field Private Instance`
+---@field movementLerp System.Single
+---`Field Private Instance`
+---@field cprAnimTimer System.Single
+---`Field Private Instance`
+---@field cprPumpTimer System.Single
+---`Field Private Instance`
+---@field fallingProneAnimTimer System.Single
+---`Field Private Instance`
+---@field swimming System.Boolean
+---`Field Private Instance`
+---@field swimmingStateLockTimer System.Single
+---`Field Private Instance`
+---@field handCyclePos System.Single
+---`Field Private Instance`
+---@field legCyclePos System.Single
+---`Field Private Instance`
+---@field lastReviveTime System.Single
+---`Field Private Static`
+---@field SteepestWalkableSlopeNormalX System.Single
+---`Field Private Static`
+---@field SlowlyWalkableSlopeNormalX System.Single
+---`Field Private Static`
+---@field SteepestWalkableSlopeAngleDegrees System.Single
+---`Field Private Static`
+---@field SlowlyWalkableSlopeAngleDegrees System.Single
+---`Field Private Static`
+---@field MaxSpeedOnStairs System.Single
+---`Field Private Static`
+---@field SteepSlopePushMagnitude System.Single
+---`Field Public Static`
+---@field BreakFromGrabDistance System.Single
+---`Field Private Static`
+---@field FallingProneAnimDuration System.Single
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field RagdollParams Barotrauma.RagdollParams
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field HumanRagdollParams Barotrauma.HumanRagdollParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanWalkParams Barotrauma.HumanWalkParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanRunParams Barotrauma.HumanRunParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanCrouchParams Barotrauma.HumanCrouchParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanSwimSlowParams Barotrauma.HumanSwimSlowParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HumanSwimFastParams Barotrauma.HumanSwimFastParams
+---`Getter Public Instance`
+---@field CurrentGroundedParams Barotrauma.HumanGroundedParams
+---`Getter Public Instance`
+---@field CurrentSwimParams Barotrauma.HumanSwimParams
+---`Getter Public Instance`
+---@field CurrentHumanAnimParams Barotrauma.IHumanAnimation
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field WalkParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field RunParams Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimSlowParams Barotrauma.SwimParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field SwimFastParams Barotrauma.SwimParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Crouching System.Boolean
+---`Getter Public Instance`
+---@field HeadLeanAmount System.Single
+---`Getter Public Instance`
+---@field TorsoLeanAmount System.Single
+---`Getter Public Instance`
+---@field FootMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field LegBendTorque System.Single
+---`Getter Public Instance`
+---@field HandMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field AimSourceSimPos Microsoft.Xna.Framework.Vector2
+_G['HumanoidAnimController'] = {}
+
+---`Method Public Instance Virtual`
+---@param ragdollParams? Barotrauma.RagdollParams
+_G['HumanoidAnimController'].Recreate = function(ragdollParams) end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].CalculateLegLengths = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param deltaTime System.Single
+_G['HumanoidAnimController'].UpdateAnim = function(deltaTime) end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].UpdateStanding = function() end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].UpdateStandingSimple = function() end
+
+---`Method Private Instance`
+_G['HumanoidAnimController'].UpdateSwimming = function() end
+
+---`Method Private Instance`
+---@param strength System.Single
+---@param moveHands? System.Boolean
+---@param moveTorso? System.Boolean
+---@param moveLegs? System.Boolean
+_G['HumanoidAnimController'].UpdateFallingProne = function(strength, moveHands, moveTorso, moveLegs) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['HumanoidAnimController'].UpdateCPR = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param target Barotrauma.Character
+---@param deltaTime System.Single
+_G['HumanoidAnimController'].DragCharacter = function(target, deltaTime) end
+
+---`Method Public Instance`
+_G['HumanoidAnimController'].Crouch = function() end
+
+---`Method Private Instance`
+---@param foot Barotrauma.Limb
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param legTorque System.Single
+---@param footTorque System.Single
+---@param footAngle System.Single
+_G['HumanoidAnimController'].FootIK = function(foot, pos, legTorque, footTorque, footAngle) end
+
+---`Method Public Instance Virtual`
+_G['HumanoidAnimController'].Flip = function() end
+
+---`Method Public Instance Virtual`
+---@param type Barotrauma.AnimationType
+---@return System.Single
+_G['HumanoidAnimController'].GetSpeed = function(type) end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(character:Barotrauma.Character, seed:System.String, ragdollParams?:Barotrauma.HumanRagdollParams):Barotrauma.HumanoidAnimController
+---@return Barotrauma.HumanoidAnimController
+_G['HumanoidAnimController'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96918530.lua b/Meta/Types/server/_00007FFD96918530.lua
new file mode 100644
index 0000000..08afa14
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96918530.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.CanEnterSubmarine : System.Enum
+---`Field Public Static`
+---@field False Barotrauma.CanEnterSubmarine
+---`Field Public Static`
+---@field True Barotrauma.CanEnterSubmarine
+---`Field Public Static`
+---@field Partial Barotrauma.CanEnterSubmarine
+_G['CanEnterSubmarine'] = {}
+
diff --git a/Meta/Types/server/_00007FFD969186A8.lua b/Meta/Types/server/_00007FFD969186A8.lua
new file mode 100644
index 0000000..417e7fd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969186A8.lua
@@ -0,0 +1,212 @@
+---@meta
+---@class Barotrauma.RagdollParams : Barotrauma.EditableParams
+---`Field Private Instance`
+---@field limbScale System.Single
+---`Field Private Instance`
+---@field jointScale System.Single
+---`Field Private Instance`
+---@field isVariantScaleApplied System.Boolean
+---`Field Private Static`
+---@field allRagdolls (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*RagdollParams)|({[Barotrauma.Identifier]:((System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RagdollParams)|({[System.String]:(Barotrauma.RagdollParams)}))})
+---`Field Public Static`
+---@field MIN_SCALE System.Single
+---`Field Public Static`
+---@field MAX_SCALE System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Texture System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpritesheetOrientation System.Single
+---`Getter Public Instance`
+---@field IsSpritesheetOrientationHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimbScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JointScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextureScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourceRectScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ColliderHeightFromFloor System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpactTolerance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanEnterSubmarine Barotrauma.CanEnterSubmarine
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanWalk System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Draggable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainLimb Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Colliders (System.Collections.Generic.List*1Barotrauma*RagdollParams*ColliderParams)|(Barotrauma.RagdollParams.ColliderParams[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Limbs (System.Collections.Generic.List*1Barotrauma*RagdollParams*LimbParams)|(Barotrauma.RagdollParams.LimbParams[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Joints (System.Collections.Generic.List*1Barotrauma*RagdollParams*JointParams)|(Barotrauma.RagdollParams.JointParams[])
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field Memento Barotrauma.Memento*1Barotrauma*RagdollParams
+_G['RagdollParams'] = {}
+
+---`Method NonPublic Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*RagdollParams*SubParam)|(fun():(Barotrauma.RagdollParams.SubParam))
+_G['RagdollParams'].GetAllSubParams = function() end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@return System.String
+_G['RagdollParams'].GetDefaultFileName = function(speciesName) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param contentPackage? Barotrauma.ContentPackage
+---@return System.String
+_G['RagdollParams'].GetDefaultFile = function(speciesName, contentPackage) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param contentPackage? Barotrauma.ContentPackage
+---@return System.String
+_G['RagdollParams'].GetFolder = function(speciesName, contentPackage) end
+
+---`Method Private Static`
+---@param root Barotrauma.ContentXElement
+---@param filePath System.String
+---@return System.String
+_G['RagdollParams'].GetFolder = function(root, filePath) end
+
+---`Method Public Static`
+---@overload fun(character:Barotrauma.Character):(Barotrauma.RagdollParams.T)
+---@overload fun(speciesName:Barotrauma.Identifier, characterParams:Barotrauma.CharacterParams, contentPackage:Barotrauma.ContentPackage):(Barotrauma.RagdollParams.T)
+---@param speciesName Barotrauma.Identifier
+---@param characterRootElement System.Xml.Linq.XElement
+---@param contentPackage Barotrauma.ContentPackage
+---@return Barotrauma.RagdollParams.T
+_G['RagdollParams'].GetDefaultRagdollParams = function(speciesName, characterRootElement, contentPackage) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param ragdollSpecies Barotrauma.Identifier
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param contentPackage Barotrauma.ContentPackage
+---@return Barotrauma.RagdollParams.T
+_G['RagdollParams'].GetRagdollParams = function(speciesName, ragdollSpecies, file, contentPackage) end
+
+---`Method Public Static`
+---@param fullPath System.String
+---@param speciesName Barotrauma.Identifier
+---@param mainElement System.Xml.Linq.XElement
+---@return Barotrauma.RagdollParams.T
+_G['RagdollParams'].CreateDefault = function(fullPath, speciesName, mainElement) end
+
+---`Method Public Static`
+_G['RagdollParams'].ClearCache = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param fullPath Barotrauma.ContentPath
+_G['RagdollParams'].UpdatePath = function(fullPath) end
+
+---`Method Public Instance`
+---@param fileNameWithoutExtension? System.String
+---@return System.Boolean
+_G['RagdollParams'].Save = function(fileNameWithoutExtension) end
+
+---`Method NonPublic Instance`
+---@param file Barotrauma.ContentPath
+---@param speciesName Barotrauma.Identifier
+---@return System.Boolean
+_G['RagdollParams'].Load = function(file, speciesName) end
+
+---`Method Public Instance`
+_G['RagdollParams'].Apply = function() end
+
+---`Method Public Instance Virtual`
+---@param forceReload? System.Boolean
+---@return System.Boolean
+_G['RagdollParams'].Reset = function(forceReload) end
+
+---`Method NonPublic Instance`
+_G['RagdollParams'].CreateColliders = function() end
+
+---`Method NonPublic Instance`
+_G['RagdollParams'].CreateLimbs = function() end
+
+---`Method NonPublic Instance`
+_G['RagdollParams'].CreateJoints = function() end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['RagdollParams'].Deserialize = function(element, alsoChildren, recursive) end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+---@param alsoChildren? System.Boolean
+---@param recursive? System.Boolean
+---@return System.Boolean
+_G['RagdollParams'].Serialize = function(element, alsoChildren, recursive) end
+
+---`Method Public Instance`
+---@param variantFile System.Xml.Linq.XDocument
+_G['RagdollParams'].TryApplyVariantScale = function(variantFile) end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].StoreSnapshot = function() end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].Undo = function() end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].Redo = function() end
+
+---`Method Public Instance Virtual`
+_G['RagdollParams'].ClearHistory = function() end
+
+---`Method Private Instance`
+---@param source Barotrauma.RagdollParams
+_G['RagdollParams'].RevertTo = function(source) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.RagdollParams
+---@return Barotrauma.RagdollParams
+_G['RagdollParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96919050.lua b/Meta/Types/server/_00007FFD96919050.lua
new file mode 100644
index 0000000..065519f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96919050.lua
@@ -0,0 +1,187 @@
+---@meta
+---@class Barotrauma.AnimationParams : Barotrauma.EditableParams
+---`Field Private Static`
+---@field allAnimations (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*AnimationParams)|({[Barotrauma.Identifier]:((System.Collections.Generic.Dictionary*1System*String*1Barotrauma*AnimationParams)|({[System.String]:(Barotrauma.AnimationParams)}))})
+---`Field Private Static`
+---@field errorMessages (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpeciesName Barotrauma.Identifier
+---`Getter Public Instance`
+---@field IsGroundedAnimation System.Boolean
+---`Getter Public Instance`
+---@field IsSwimAnimation System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field AnimationType Barotrauma.AnimationType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MovementSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CycleSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HeadAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TorsoAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ArmIKStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandIKStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance`
+---@field Memento Barotrauma.Memento*1Barotrauma*AnimationParams
+_G['AnimationParams'] = {}
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param animType Barotrauma.AnimationType
+---@return System.String
+_G['AnimationParams'].GetDefaultFileName = function(speciesName, animType) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@param animType Barotrauma.AnimationType
+---@return System.String
+_G['AnimationParams'].GetDefaultFile = function(speciesName, animType) end
+
+---`Method Public Static`
+---@param speciesName Barotrauma.Identifier
+---@return System.String
+_G['AnimationParams'].GetFolder = function(speciesName) end
+
+---`Method Private Static`
+---@param root Barotrauma.ContentXElement
+---@param filePath System.String
+---@return System.String
+_G['AnimationParams'].GetFolder = function(root, filePath) end
+
+---`Method Public Static`
+---@param filePaths (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---@param type Barotrauma.AnimationType
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['AnimationParams'].FilterAndSortFiles = function(filePaths, type) end
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@param animType Barotrauma.AnimationType
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].GetDefaultAnimParams = function(character, animType) end
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@param animType Barotrauma.AnimationType
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].GetAnimParams = function(character, animType, file, throwErrors) end
+
+---`Method Private Static`
+---@param speciesName Barotrauma.Identifier
+---@param animSpecies Barotrauma.Identifier
+---@param fallbackSpecies Barotrauma.Identifier
+---@param animType Barotrauma.AnimationType
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].GetAnimParams = function(speciesName, animSpecies, fallbackSpecies, animType, file, throwErrors) end
+
+---`Method Public Static`
+_G['AnimationParams'].ClearCache = function() end
+
+---`Method Public Static`
+---@overload fun(fullPath:System.String, speciesName:Barotrauma.Identifier, animationType:Barotrauma.AnimationType, animationParamsType:System.Type):(Barotrauma.AnimationParams)
+---@param fullPath System.String
+---@param speciesName Barotrauma.Identifier
+---@param animationType Barotrauma.AnimationType
+---@return Barotrauma.AnimationParams.T
+_G['AnimationParams'].Create = function(fullPath, speciesName, animationType) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AnimationParams'].Serialize = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['AnimationParams'].Deserialize = function() end
+
+---`Method NonPublic Instance`
+---@param file Barotrauma.ContentPath
+---@param speciesName Barotrauma.Identifier
+---@return System.Boolean
+_G['AnimationParams'].Load = function(file, speciesName) end
+
+---`Method NonPublic Instance Virtual`
+---@param newPath Barotrauma.ContentPath
+_G['AnimationParams'].UpdatePath = function(newPath) end
+
+---`Method NonPublic Static`
+---@param footAngles (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---@return System.String
+_G['AnimationParams'].ParseFootAngles = function(footAngles) end
+
+---`Method NonPublic Static`
+---@param footAngles (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---@param value System.String
+_G['AnimationParams'].SetFootAngles = function(footAngles, value) end
+
+---`Method Public Static`
+---@param type Barotrauma.AnimationType
+---@param isHumanoid System.Boolean
+---@return System.Type
+_G['AnimationParams'].GetParamTypeFromAnimType = function(type, isHumanoid) end
+
+---`Method Public Instance Abstract Virtual`
+_G['AnimationParams'].StoreSnapshot = function() end
+
+---`Method NonPublic Instance`
+_G['AnimationParams'].StoreSnapshot = function() end
+
+---`Method Public Instance Virtual`
+_G['AnimationParams'].Undo = function() end
+
+---`Method Public Instance Virtual`
+_G['AnimationParams'].Redo = function() end
+
+---`Method Public Instance Virtual`
+_G['AnimationParams'].ClearHistory = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.AnimationParams
+---@return Barotrauma.AnimationParams
+_G['AnimationParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96919350.lua b/Meta/Types/server/_00007FFD96919350.lua
new file mode 100644
index 0000000..137e65d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96919350.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.SwimParams : Barotrauma.AnimationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SteerTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegTorque System.Single
+_G['SwimParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.SwimParams
+_G['SwimParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.SwimParams
+_G['SwimParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96919840.lua b/Meta/Types/server/_00007FFD96919840.lua
new file mode 100644
index 0000000..b795f19
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96919840.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.GroundedMovementParams : Barotrauma.AnimationParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepSize Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadPosition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoPosition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftHeadMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftOffset System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepLiftFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BackwardsMovementMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SlideSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbBodyMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbHandMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbFootMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClimbStepHeight System.Single
+_G['GroundedMovementParams'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param element? System.Xml.Linq.XElement
+---@return System.Boolean
+_G['GroundedMovementParams'].Deserialize = function(element) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.GroundedMovementParams
+_G['GroundedMovementParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.GroundedMovementParams
+_G['GroundedMovementParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969199F8.lua b/Meta/Types/server/_00007FFD969199F8.lua
new file mode 100644
index 0000000..cdeb6a1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969199F8.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.HumanRagdollParams : Barotrauma.RagdollParams
+_G['HumanRagdollParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanRagdollParams
+_G['HumanRagdollParams'].GetDefaultRagdollParams = function(character) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRagdollParams
+_G['HumanRagdollParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRagdollParams
+_G['HumanRagdollParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691A058.lua b/Meta/Types/server/_00007FFD9691A058.lua
new file mode 100644
index 0000000..0d82b46
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691A058.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.HumanGroundedParams : Barotrauma.GroundedMovementParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GetUpForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadLeanAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoLeanAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootMoveStrength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootLiftHorizontalFactor System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StepSizeWhenStanding Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field FootAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegBendTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandClampY System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ArmMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HandMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FixedHeadAngle System.Boolean
+_G['HumanGroundedParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanGroundedParams
+_G['HumanGroundedParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanGroundedParams
+_G['HumanGroundedParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691A280.lua b/Meta/Types/server/_00007FFD9691A280.lua
new file mode 100644
index 0000000..7543373
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691A280.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanWalkParams : Barotrauma.HumanGroundedParams
+_G['HumanWalkParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanWalkParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanWalkParams
+_G['HumanWalkParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691A470.lua b/Meta/Types/server/_00007FFD9691A470.lua
new file mode 100644
index 0000000..afa5342
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691A470.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanRunParams : Barotrauma.HumanGroundedParams
+_G['HumanRunParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanRunParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanRunParams
+_G['HumanRunParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691A720.lua b/Meta/Types/server/_00007FFD9691A720.lua
new file mode 100644
index 0000000..4638449
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691A720.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.HumanCrouchParams : Barotrauma.HumanGroundedParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveDownAmountWhenStationary System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraHeadAngleWhenStationary System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraTorsoAngleWhenStationary System.Single
+_G['HumanCrouchParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanCrouchParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanCrouchParams
+_G['HumanCrouchParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691AAF8.lua b/Meta/Types/server/_00007FFD9691AAF8.lua
new file mode 100644
index 0000000..c007443
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691AAF8.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.HumanSwimParams : Barotrauma.SwimParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegMoveAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegCycleLength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field FootAngleInRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandCycleSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HandMoveOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field ArmMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field HandMoveStrength System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FixedHeadAngle System.Boolean
+_G['HumanSwimParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanSwimParams
+_G['HumanSwimParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.HumanSwimParams
+_G['HumanSwimParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691AD20.lua b/Meta/Types/server/_00007FFD9691AD20.lua
new file mode 100644
index 0000000..7763b9b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691AD20.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanSwimFastParams : Barotrauma.HumanSwimParams
+_G['HumanSwimFastParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanSwimFastParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimFastParams
+_G['HumanSwimFastParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691AF10.lua b/Meta/Types/server/_00007FFD9691AF10.lua
new file mode 100644
index 0000000..01a7dd3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691AF10.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.HumanSwimSlowParams : Barotrauma.HumanSwimParams
+_G['HumanSwimSlowParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['HumanSwimSlowParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.HumanSwimSlowParams
+_G['HumanSwimSlowParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691B0D8.lua b/Meta/Types/server/_00007FFD9691B0D8.lua
new file mode 100644
index 0000000..c290184
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691B0D8.lua
@@ -0,0 +1,17 @@
+---@meta
+---@class Barotrauma.FishRagdollParams : Barotrauma.RagdollParams
+_G['FishRagdollParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishRagdollParams
+_G['FishRagdollParams'].GetDefaultRagdollParams = function(character) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishRagdollParams
+_G['FishRagdollParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishRagdollParams
+_G['FishRagdollParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691B720.lua b/Meta/Types/server/_00007FFD9691B720.lua
new file mode 100644
index 0000000..874a437
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691B720.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.FishGroundedParams : Barotrauma.GroundedMovementParams
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Flip System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipCooldown System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HeadMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TorsoMoveForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FootMoveForce System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LegTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ColliderStandAngle System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ColliderStandAngleInRadians System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngles System.String
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAnglesInRadians (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field TailAngleInRadians System.Single
+_G['FishGroundedParams'] = {}
+
+---`Method NonPublic Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['FishGroundedParams'].Check = function(character) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishGroundedParams
+_G['FishGroundedParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishGroundedParams
+_G['FishGroundedParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691B938.lua b/Meta/Types/server/_00007FFD9691B938.lua
new file mode 100644
index 0000000..fb68b02
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691B938.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.FishWalkParams : Barotrauma.FishGroundedParams
+---`Field NonPublic Static`
+---@field Empty Barotrauma.FishWalkParams
+_G['FishWalkParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishWalkParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishWalkParams
+---@return Barotrauma.FishWalkParams
+_G['FishWalkParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691BBE8.lua b/Meta/Types/server/_00007FFD9691BBE8.lua
new file mode 100644
index 0000000..4f093fe
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691BBE8.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.FishRunParams : Barotrauma.FishGroundedParams
+---`Field NonPublic Static`
+---@field Empty Barotrauma.FishRunParams
+_G['FishRunParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishRunParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.FishRunParams
+---@return Barotrauma.FishRunParams
+_G['FishRunParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691C128.lua b/Meta/Types/server/_00007FFD9691C128.lua
new file mode 100644
index 0000000..5f90ef7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691C128.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.FishSwimParams : Barotrauma.SwimParams
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseSineMovement System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Flip System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipCooldown System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FlipDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Mirror System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MirrorLerp System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaveAmplitude System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaveLength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RotateTowardsMovement System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TailTorqueMultiplier System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAngles System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UpdateAnimationWhenNotMoving System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field FootAnglesInRadians (System.Collections.Generic.Dictionary*1System*Int32*1System*Single)|({[System.Int32]:(System.Single)})
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field TailAngle System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field TailAngleInRadians System.Single
+_G['FishSwimParams'] = {}
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishSwimParams
+_G['FishSwimParams'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.FishSwimParams
+_G['FishSwimParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691C398.lua b/Meta/Types/server/_00007FFD9691C398.lua
new file mode 100644
index 0000000..c119ba2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691C398.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.FishSwimFastParams : Barotrauma.FishSwimParams
+_G['FishSwimFastParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishSwimFastParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimFastParams
+_G['FishSwimFastParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691C5A0.lua b/Meta/Types/server/_00007FFD9691C5A0.lua
new file mode 100644
index 0000000..a124fd9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691C5A0.lua
@@ -0,0 +1,27 @@
+---@meta
+---@class Barotrauma.FishSwimSlowParams : Barotrauma.FishSwimParams
+_G['FishSwimSlowParams'] = {}
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'].GetDefaultAnimParams = function(character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param file Barotrauma.Either*1System*String*1Barotrauma*ContentPath
+---@param throwErrors? System.Boolean
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'].GetAnimParams = function(character, file, throwErrors) end
+
+---`Method Public Instance Virtual`
+_G['FishSwimSlowParams'].StoreSnapshot = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.FishSwimSlowParams
+_G['FishSwimSlowParams'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691C8B0.lua b/Meta/Types/server/_00007FFD9691C8B0.lua
new file mode 100644
index 0000000..5a351a9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691C8B0.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.Skill : System.Object
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field level System.Single
+---`Field Private Instance`
+---@field iconJobId Barotrauma.Identifier
+---`Field Public Instance`
+---@field PriceMultiplier System.Single
+---`Field Public Static`
+---@field MaximumSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HighestLevelDuringRound System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Level System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Icon Barotrauma.Sprite
+_G['Skill'] = {}
+
+---`Method Public Instance`
+---@param value System.Single
+---@param increasePastMax System.Boolean
+_G['Skill'].IncreaseSkill = function(value, increasePastMax) end
+
+---`Method Private Instance`
+---@return Barotrauma.Identifier
+_G['Skill'].GetIconJobId = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.SkillPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync):Barotrauma.Skill
+---@param identifier Barotrauma.Identifier
+---@param level System.Single
+---@return Barotrauma.Skill
+_G['Skill'] = function(identifier, level) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.SkillPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync):Barotrauma.Skill
+---@param identifier Barotrauma.Identifier
+---@param level System.Single
+---@return Barotrauma.Skill
+_G['Skill'].__new = function(identifier, level) end
+
diff --git a/Meta/Types/server/_00007FFD9691CA88.lua b/Meta/Types/server/_00007FFD9691CA88.lua
new file mode 100644
index 0000000..fbcbb1d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691CA88.lua
@@ -0,0 +1,29 @@
+---@meta
+---@class Barotrauma.SkillPrefab : System.Object
+---`Field Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field levelRange Barotrauma.Range*1System*Single
+---`Field Private Instance`
+---@field levelRangePvP Barotrauma.Range*1System*Single
+---`Field Public Instance`
+---@field PriceMultiplier System.Single
+---`Getter Public Instance`
+---@field IsPrimarySkill System.Boolean
+_G['SkillPrefab'] = {}
+
+---`Method Public Instance`
+---@param isPvP System.Boolean
+---@return Barotrauma.Range*1System*Single
+_G['SkillPrefab'].GetLevelRange = function(isPvP) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SkillPrefab
+_G['SkillPrefab'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SkillPrefab
+_G['SkillPrefab'].__new = function(element) end
+
diff --git a/Meta/Types/server/_00007FFD9691CE00.lua b/Meta/Types/server/_00007FFD9691CE00.lua
new file mode 100644
index 0000000..0befd44
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691CE00.lua
@@ -0,0 +1,83 @@
+---@meta
+---@class Barotrauma.Job : System.Object
+---`Field Private Instance`
+---@field prefab Barotrauma.JobPrefab
+---`Field Private Instance`
+---@field skills (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Skill)|({[Barotrauma.Identifier]:(Barotrauma.Skill)})
+---`Field Public Instance`
+---@field Variant System.Int32
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Prefab Barotrauma.JobPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PrimarySkill Barotrauma.Skill
+_G['Job'] = {}
+
+---`Method Public Static`
+---@param isPvP System.Boolean
+---@param randSync Barotrauma.Rand.RandSync
+---@return Barotrauma.Job
+_G['Job'].Random = function(isPvP, randSync) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Skill)|(fun():(Barotrauma.Skill))
+_G['Job'].GetSkills = function() end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@return System.Single
+_G['Job'].GetSkillLevel = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@return Barotrauma.Skill
+_G['Job'].GetSkill = function(skillIdentifier) end
+
+---`Method Public Instance`
+---@param newSkills (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+_G['Job'].OverrideSkills = function(newSkills) end
+
+---`Method Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param increase System.Single
+---@param increasePastMax System.Boolean
+_G['Job'].IncreaseSkillLevel = function(skillIdentifier, increase, increasePastMax) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param isPvPMode System.Boolean
+---@param spawnPoint? Barotrauma.WayPoint
+_G['Job'].GiveJobItems = function(character, isPvPMode, spawnPoint) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param isPvPMode System.Boolean
+---@param jobItem Barotrauma.JobPrefab.JobItem
+---@param allJobItems (System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab*JobItem)|(fun():(Barotrauma.JobPrefab.JobItem))
+---@param spawnPoint? Barotrauma.WayPoint
+---@param parentItem? Barotrauma.Item
+_G['Job'].InitializeJobItem = function(character, isPvPMode, jobItem, allJobItems, spawnPoint, parentItem) end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Job'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean):Barotrauma.Job
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync, variant:System.Int32, ...:Barotrauma.Skill):Barotrauma.Job
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Job
+_G['Job'] = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean):Barotrauma.Job
+---@overload fun(jobPrefab:Barotrauma.JobPrefab, isPvP:System.Boolean, randSync:Barotrauma.Rand.RandSync, variant:System.Int32, ...:Barotrauma.Skill):Barotrauma.Job
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Job
+_G['Job'].__new = function(element) end
+
diff --git a/Meta/Types/server/_00007FFD9691CFD8.lua b/Meta/Types/server/_00007FFD9691CFD8.lua
new file mode 100644
index 0000000..76a5ecb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691CFD8.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.JobVariant : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.JobPrefab
+---`Field Public Instance`
+---@field Variant System.Int32
+_G['JobVariant'] = {}
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@param variant System.Int32
+---@return Barotrauma.JobVariant
+_G['JobVariant'] = function(prefab, variant) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.JobPrefab
+---@param variant System.Int32
+---@return Barotrauma.JobVariant
+_G['JobVariant'].__new = function(prefab, variant) end
+
diff --git a/Meta/Types/server/_00007FFD9691D408.lua b/Meta/Types/server/_00007FFD9691D408.lua
new file mode 100644
index 0000000..da0ef04
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691D408.lua
@@ -0,0 +1,90 @@
+---@meta
+---@class Barotrauma.Decal : System.Object
+---`Field Public Instance`
+---@field Prefab Barotrauma.DecalPrefab
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field fadeTimer System.Single
+---`Field Public Instance`
+---@field Sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field affectedSections (System.Collections.Generic.HashSet*1Barotrauma*BackgroundSection)|(Barotrauma.BackgroundSection[])
+---`Field Private Instance`
+---@field hull Barotrauma.Hull
+---`Field Public Instance`
+---@field Scale System.Single
+---`Field Private Instance`
+---@field clippedSourceRect Microsoft.Xna.Framework.Rectangle
+---`Field Private Instance`
+---@field cleaned System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FadeTimer System.Single
+---`Getter Public Instance`
+---@field FadeInTime System.Single
+---`Getter Public Instance`
+---@field FadeOutTime System.Single
+---`Getter Public Instance`
+---@field LifeTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseAlpha System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CenterPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NonClampedPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpriteIndex System.Int32
+_G['Decal'] = {}
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Decal'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Decal'].ForceRefreshFadeTimer = function(val) end
+
+---`Method Public Instance`
+_G['Decal'].StopFadeIn = function() end
+
+---`Method Public Instance`
+---@param section Barotrauma.BackgroundSection
+---@return System.Boolean
+_G['Decal'].AffectsSection = function(section) end
+
+---`Method Public Instance`
+---@param val System.Single
+_G['Decal'].Clean = function(val) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Decal'].GetAlpha = function() end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.DecalPrefab
+---@param scale System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['Decal'] = function(prefab, scale, worldPosition, hull, spriteIndex) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.DecalPrefab
+---@param scale System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['Decal'].__new = function(prefab, scale, worldPosition, hull, spriteIndex) end
+
diff --git a/Meta/Types/server/_00007FFD9691D5E8.lua b/Meta/Types/server/_00007FFD9691D5E8.lua
new file mode 100644
index 0000000..a5e371d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691D5E8.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.DecalManager : System.Object
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*DecalPrefab)|(fun():(Barotrauma.DecalPrefab))
+---`Field Public Static`
+---@field GrimeSprites (Barotrauma.PrefabCollection*1Barotrauma*GrimeSprite)|(fun():(Barotrauma.GrimeSprite))
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field GrimeSpriteCount System.Int32
+_G['DecalManager'] = {}
+
+---`Method Public Static`
+---@param configFile Barotrauma.DecalsFile
+_G['DecalManager'].LoadFromFile = function(configFile) end
+
+---`Method Public Static`
+---@param configFile Barotrauma.DecalsFile
+_G['DecalManager'].RemoveByFile = function(configFile) end
+
+---`Method Public Static`
+_G['DecalManager'].SortAll = function() end
+
+---`Method Public Static`
+---@param decalName System.String
+---@param scale System.Single
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param hull Barotrauma.Hull
+---@param spriteIndex? System.Nullable*1System*Int32
+---@return Barotrauma.Decal
+_G['DecalManager'].CreateDecal = function(decalName, scale, worldPosition, hull, spriteIndex) end
+
+---`Constructor Private Static`
+---@return Barotrauma.DecalManager
+_G['DecalManager'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.DecalManager
+_G['DecalManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9691D748.lua b/Meta/Types/server/_00007FFD9691D748.lua
new file mode 100644
index 0000000..248ebb1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691D748.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.DecalPrefab : Barotrauma.PrefabWithUintIdentifier
+---`Field Public Instance`
+---@field Sprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field LifeTime System.Single
+---`Field Public Instance`
+---@field FadeOutTime System.Single
+---`Field Public Instance`
+---@field FadeInTime System.Single
+---`Getter Public Instance`
+---@field Name System.String
+_G['DecalPrefab'] = {}
+
+---`Method Public Instance Virtual`
+_G['DecalPrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.DecalsFile
+---@return Barotrauma.DecalPrefab
+_G['DecalPrefab'] = function(element, file) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.DecalsFile
+---@return Barotrauma.DecalPrefab
+_G['DecalPrefab'].__new = function(element, file) end
+
diff --git a/Meta/Types/server/_00007FFD9691E1D8.lua b/Meta/Types/server/_00007FFD9691E1D8.lua
new file mode 100644
index 0000000..65cab43
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691E1D8.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.RelatedItem : System.Object
+---`Field Private Instance`
+---@field type Barotrauma.RelatedItem.RelationType
+---`Field Public Instance`
+---@field StatusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Public Instance`
+---@field Msg Barotrauma.LocalizedString
+---`Field Public Instance`
+---@field MsgTag Barotrauma.Identifier
+---`Field Public Instance`
+---@field TargetSlot System.Int32
+---`Field Public Instance`
+---@field CharacterInventorySlotType Barotrauma.InvSlotType
+---`Field Public Instance`
+---@field ItemPos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Public Instance`
+---@field Hide System.Boolean
+---`Field Public Instance`
+---@field Rotation System.Single
+---`Field Public Instance`
+---@field SetActive System.Boolean
+---`Field Public Instance`
+---@field BlameEquipperForDeath System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MatchOnEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireEmpty System.Boolean
+---`Getter Private Instance`
+---@field RequireOrMatchOnEmpty System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreInEditor System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExcludedIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExcludeBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExcludeFullCondition System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowVariants System.Boolean
+---`Getter Public Instance`
+---@field Type Barotrauma.RelatedItem.RelationType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOptional System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JoinedIdentifiers System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Identifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JoinedExcludedIdentifiers System.String
+_G['RelatedItem'] = {}
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['RelatedItem'].MatchesItem = function(itemPrefab) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param parentItem Barotrauma.Item
+---@return System.Boolean
+_G['RelatedItem'].CheckRequirements = function(character, parentItem) end
+
+---`Method Private Instance`
+---@param parentItem Barotrauma.Item
+---@return System.Boolean
+_G['RelatedItem'].CheckContained = function(parentItem) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['RelatedItem'].Save = function(element) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param returnEmpty System.Boolean
+---@param parentDebugName System.String
+---@return Barotrauma.RelatedItem
+_G['RelatedItem'].Load = function(element, returnEmpty, parentDebugName) end
+
+---`Constructor Public Instance`
+---@overload fun(identifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), excludedIdentifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])):Barotrauma.RelatedItem
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.RelatedItem
+_G['RelatedItem'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@overload fun(identifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[]), excludedIdentifiers:(Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])):Barotrauma.RelatedItem
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.RelatedItem
+_G['RelatedItem'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/server/_00007FFD9691EBF8.lua b/Meta/Types/server/_00007FFD9691EBF8.lua
new file mode 100644
index 0000000..fa3c9e4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691EBF8.lua
@@ -0,0 +1,268 @@
+---@meta
+---@class Barotrauma.Items.Components.Holdable : Barotrauma.Items.Components.Pickable
+---`Field NonPublic Instance`
+---@field handlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field scaledHandlePos (Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field prevPickKey Barotrauma.InputType
+---`Field Private Instance`
+---@field prevMsg Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field prevRequiredItems (System.Collections.Generic.Dictionary*1Barotrauma*RelatedItem*RelationType*1System*Collections*Generic*List*2Barotrauma*RelatedItem)|({[Barotrauma.RelatedItem.RelationType]:((System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[]))})
+---`Field Private Instance`
+---@field swingState System.Single
+---`Field Private Instance`
+---@field prevEquipper Barotrauma.Character
+---`Field Private Instance`
+---@field attachable System.Boolean
+---`Field Private Instance`
+---@field attached System.Boolean
+---`Field Private Instance`
+---@field attachedByDefault System.Boolean
+---`Field Private Instance`
+---@field attachTargetCell Voronoi2.VoronoiCell
+---`Field Private Instance`
+---@field body Barotrauma.PhysicsBody
+---`Field Public Instance`
+---@field HoldableStatValues (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field NonPublic Instance`
+---@field holdPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field aimPos Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field holdAngle System.Single
+---`Field NonPublic Instance`
+---@field aimAngle System.Single
+---`Field Private Instance`
+---@field swingAmount Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field loadedFromInstance System.Boolean
+---`Field Private Static`
+---@field MaxAttachDistance System.Single
+---`Getter Public Instance Virtual`
+---@field IsAttached System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Pusher Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanPush System.Boolean
+---`Getter Public Instance`
+---@field Body Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Attached System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Aimable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ControlPose System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHandRotationForHoldAngle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Attachable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reattachable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LimitedAttachable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AttachedByDefault System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingAmount Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingWhenHolding System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingWhenAiming System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingWhenUsing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableHeadRotation System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableWhenRangedWeaponEquipped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteDepthWhenDropped System.Single
+_G['Components']['Holdable'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Holdable'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Holdable'].ServerEventRead = function(msg, c) end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Holdable'].OnPusherCollision = function(sender, other, contact) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Holdable'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Holdable'].Drop = function(dropper, setTransform) end
+
+---`Method Private Instance`
+---@param dropConnectedWires System.Boolean
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Holdable'].Drop = function(dropConnectedWires, dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Holdable'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Holdable'].Unequip = function(character) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].CanBeAttached = function(user) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Holdable'].CanBeDeattached = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].OnPicked = function(picker) end
+
+---`Method Public Instance`
+_G['Components']['Holdable'].AttachToWall = function() end
+
+---`Method Public Instance`
+_G['Components']['Holdable'].DeattachFromWall = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Holdable'].ParseMsg = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param useWorldCoordinates? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Holdable'].GetAttachPosition = function(user, useWorldCoordinates) end
+
+---`Method Private Instance`
+---@param maxDist System.Single
+---@return Voronoi2.VoronoiCell
+_G['Components']['Holdable'].GetAttachTargetCell = function(maxDist) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Holdable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@return Barotrauma.Items.Components.Rope
+_G['Components']['Holdable'].GetRope = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Holdable'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param swingPos Microsoft.Xna.Framework.Vector2-ref
+_G['Components']['Holdable'].UpdateSwingPos = function(deltaTime, swingPos) end
+
+---`Method NonPublic Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Holdable'].UsageDisabledByRangedWeapon = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Holdable'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Holdable'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Holdable'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Holdable'].OnMapLoaded = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Holdable'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Holdable'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Holdable
+_G['Components']['Holdable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Holdable
+_G['Components']['Holdable'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9691F320.lua b/Meta/Types/server/_00007FFD9691F320.lua
new file mode 100644
index 0000000..d050aef
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691F320.lua
@@ -0,0 +1,84 @@
+---@meta
+---@class Barotrauma.Items.Components.IdCard : Barotrauma.Items.Components.Pickable
+---`Field Private Instance`
+---@field ownerNameLocalized System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubmarineSpecificID System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerTags System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Description System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerTagSet (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerNameLocalized System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerJobId Barotrauma.Identifier
+---`Getter Public Instance`
+---@field OwnerJob Barotrauma.JobPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerHairIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerBeardIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerMoustacheIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerFaceAttachmentIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerHairColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerFacialHairColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerSkinColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OwnerSheetIndex Microsoft.Xna.Framework.Vector2
+_G['Components']['IdCard'] = {}
+
+---`Method Public Instance`
+---@param spawnPoint Barotrauma.WayPoint
+---@param character Barotrauma.Character
+_G['Components']['IdCard'].Initialize = function(spawnPoint, character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['IdCard'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['IdCard'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+_G['Components']['IdCard'].OnItemLoaded = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.IdCard
+_G['Components']['IdCard'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.IdCard
+_G['Components']['IdCard'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9691F688.lua b/Meta/Types/server/_00007FFD9691F688.lua
new file mode 100644
index 0000000..f12de6d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691F688.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.Items.Components.LevelResource : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field lastSentDeattachTimer System.Single
+---`Field Private Instance`
+---@field trigger Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field holdable Barotrauma.Items.Components.Holdable
+---`Field Private Instance`
+---@field deattachTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeattachDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeattachTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomOffsetFromWall System.Single
+---`Getter Public Instance`
+---@field Attached System.Boolean
+_G['Components']['LevelResource'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['LevelResource'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['LevelResource'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['LevelResource'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['Components']['LevelResource'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['LevelResource'].CreateTriggerBody = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['LevelResource'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LevelResource
+_G['Components']['LevelResource'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LevelResource
+_G['Components']['LevelResource'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9691FCE8.lua b/Meta/Types/server/_00007FFD9691FCE8.lua
new file mode 100644
index 0000000..9565f07
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9691FCE8.lua
@@ -0,0 +1,118 @@
+---@meta
+---@class Barotrauma.Items.Components.MeleeWeapon : Barotrauma.Items.Components.Holdable
+---`Field Private Instance`
+---@field hitPos System.Single
+---`Field Private Instance`
+---@field hitting System.Boolean
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field reload System.Single
+---`Field Private Instance`
+---@field reloadTimer System.Single
+---`Field Private Instance`
+---@field hitTargets (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1FarseerPhysics*Dynamics*Fixture)|(fun():(FarseerPhysics.Dynamics.Fixture))
+---`Field Public Instance`
+---@field PreferredContainedItems (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field serverLogger System.Text.StringBuilder
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Attack Barotrauma.Attack
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field User Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowHitMultiple System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitOnlyCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Swing System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwingForce Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Hitting System.Boolean
+_G['Components']['MeleeWeapon'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['MeleeWeapon'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MeleeWeapon'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MeleeWeapon'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['MeleeWeapon'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MeleeWeapon'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MeleeWeapon'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['MeleeWeapon'].ActivateNearbySleepingCharacters = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Components']['MeleeWeapon'].SetUser = function(character) end
+
+---`Method Private Instance`
+_G['Components']['MeleeWeapon'].EndHit = function() end
+
+---`Method Private Instance`
+_G['Components']['MeleeWeapon'].RestoreCollision = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['MeleeWeapon'].OnCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param targetFixture FarseerPhysics.Dynamics.Fixture
+_G['Components']['MeleeWeapon'].HandleImpact = function(targetFixture) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MeleeWeapon
+_G['Components']['MeleeWeapon'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MeleeWeapon
+_G['Components']['MeleeWeapon'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96920268.lua b/Meta/Types/server/_00007FFD96920268.lua
new file mode 100644
index 0000000..ec61ac4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96920268.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Items.Components.Propulsion : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field useState System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsableIn Barotrauma.Items.Components.Propulsion.UseEnvironment
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyToHands System.Boolean
+_G['Components']['Propulsion'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Propulsion'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Propulsion'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Propulsion
+_G['Components']['Propulsion'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Propulsion
+_G['Components']['Propulsion'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96920A68.lua b/Meta/Types/server/_00007FFD96920A68.lua
new file mode 100644
index 0000000..a9a7259
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96920A68.lua
@@ -0,0 +1,123 @@
+---@meta
+---@class Barotrauma.Items.Components.RangedWeapon : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field reload System.Single
+---`Field Private Instance`
+---@field barrelPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field suitableProjectiles (System.Collections.Generic.IReadOnlySet*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Field Private Instance`
+---@field currentChargingState Barotrauma.Items.Components.RangedWeapon.ChargingState
+---`Field Private Instance`
+---@field currentChargeTime System.Single
+---`Field Private Instance`
+---@field tryingToCharge System.Boolean
+---`Field Private Instance`
+---@field ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ReloadTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelPos System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReloadSkillRequirement System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReloadNoSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HoldTrigger System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProjectileCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UnskilledSpread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Penetration System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WeaponDamageModifier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxChargeTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DualWieldReloadTimePenaltyMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DualWieldAccuracyPenalty System.Single
+---`Getter Public Instance`
+---@field TransformedBarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastProjectile Barotrauma.Items.Components.Projectile
+_G['Components']['RangedWeapon'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['RangedWeapon'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RangedWeapon'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['RangedWeapon'].GetSpread = function(user) end
+
+---`Method Private Static`
+---@param character Barotrauma.Character
+---@param originalPenalty System.Single
+---@param neutralValue System.Single
+---@return System.Single
+_G['Components']['RangedWeapon'].ApplyDualWieldPenaltyReduction = function(character, originalPenalty, neutralValue) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RangedWeapon'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RangedWeapon'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@param triggerOnUseOnContainers? System.Boolean
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['RangedWeapon'].FindProjectile = function(triggerOnUseOnContainers) end
+
+---`Method Private Instance`
+---@param projectile Barotrauma.Items.Components.Projectile
+---@return System.Boolean
+_G['Components']['RangedWeapon'].IsSuitableProjectile = function(projectile) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RangedWeapon
+_G['Components']['RangedWeapon'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RangedWeapon
+_G['Components']['RangedWeapon'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969214B8.lua b/Meta/Types/server/_00007FFD969214B8.lua
new file mode 100644
index 0000000..635ae2b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969214B8.lua
@@ -0,0 +1,168 @@
+---@meta
+---@class Barotrauma.Items.Components.RepairTool : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field fixableEntities (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field nonFixableEntities (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field pickedPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field activeTimer System.Single
+---`Field Private Instance`
+---@field debugRayStartPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field debugRayEndPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field hitCharacters (System.Collections.Generic.HashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Private Instance`
+---@field fireSourcesInRange (System.Collections.Generic.List*1Barotrauma*FireSource)|(Barotrauma.FireSource[])
+---`Field Private Instance`
+---@field sinTime System.Single
+---`Field Private Instance`
+---@field repairTimer System.Single
+---`Field Private Instance`
+---@field previousGap Barotrauma.Gap
+---`Field Private Instance`
+---@field repairTimeOut System.Single
+---`Field Private Static`
+---@field hitBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Static`
+---@field currentTargets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsableIn Barotrauma.Items.Components.RepairTool.UseEnvironment
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UnskilledSpread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureFixAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelWallFixAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtinguishAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WaterAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairThroughWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairMultiple System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairMultipleWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairThroughHoles System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOverlappingWallDist System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeattachSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitBrokenDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelRotation System.Single
+---`Getter Public Instance`
+---@field TransformedBarrelPos Microsoft.Xna.Framework.Vector2
+_G['Components']['RepairTool'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RepairTool'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RepairTool'].Use = function(deltaTime, character) end
+
+---`Method Private Instance`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param user Barotrauma.Character
+---@param degreeOfSuccess System.Single
+---@param ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+_G['Components']['RepairTool'].Repair = function(rayStart, rayEnd, deltaTime, user, degreeOfSuccess, ignoredBodies) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param hitPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param degreeOfSuccess System.Single
+---@param targetBody FarseerPhysics.Dynamics.Body
+---@return System.Boolean
+_G['Components']['RepairTool'].FixBody = function(user, hitPosition, deltaTime, degreeOfSuccess, targetBody) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['RepairTool'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+---@param actionType Barotrauma.ActionType
+---@param targetItem? Barotrauma.Item
+---@param character? Barotrauma.Character
+---@param limb? Barotrauma.Limb
+---@param structure? Barotrauma.Structure
+_G['Components']['RepairTool'].ApplyStatusEffectsOnTarget = function(user, deltaTime, actionType, targetItem, character, limb, structure) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RepairTool
+---@return Barotrauma.Items.Components.RepairTool
+_G['Components']['RepairTool'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96921770.lua b/Meta/Types/server/_00007FFD96921770.lua
new file mode 100644
index 0000000..070c2b1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96921770.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.Items.Components.Sprayer : Barotrauma.Items.Components.RangedWeapon
+---`Field Private Instance`
+---@field liquidColors (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color)|({[Barotrauma.Identifier]:(Microsoft.Xna.Framework.Color)})
+---`Field Private Instance`
+---@field liquidContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SprayStrength System.Single
+_G['Components']['Sprayer'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['Sprayer'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Sprayer'].Use = function(deltaTime, character) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sprayer
+_G['Components']['Sprayer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sprayer
+_G['Components']['Sprayer'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96921BC8.lua b/Meta/Types/server/_00007FFD96921BC8.lua
new file mode 100644
index 0000000..8615496
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96921BC8.lua
@@ -0,0 +1,63 @@
+---@meta
+---@class Barotrauma.Items.Components.Throwable : Barotrauma.Items.Components.Holdable
+---`Field Private Instance`
+---@field throwAngle System.Single
+---`Field Private Instance`
+---@field midAir System.Boolean
+---`Field Private Instance`
+---@field throwState Barotrauma.Items.Components.Throwable.ThrowState
+---`Field Private Static`
+---@field ThrowAngleStart System.Single
+---`Field Private Static`
+---@field ThrowAngleEnd System.Single
+---`Field Private Static`
+---@field ContinuousCollisionThreshold System.Single
+---`Field Public Static`
+---@field WaterDragCoefficient System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentThrower Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ThrowForce System.Single
+_G['Components']['Throwable'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Throwable'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Throwable'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Throwable'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Throwable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Throwable'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Throwable
+_G['Components']['Throwable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Throwable
+_G['Components']['Throwable'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969225B0.lua b/Meta/Types/server/_00007FFD969225B0.lua
new file mode 100644
index 0000000..416fffe
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969225B0.lua
@@ -0,0 +1,192 @@
+---@meta
+---@class Barotrauma.Items.Components.Controller : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field limbPositions (System.Collections.Generic.List*1Barotrauma*Items*Components*LimbPos)|(Barotrauma.Items.Components.LimbPos[])
+---`Field Private Instance`
+---@field dir Barotrauma.Direction
+---`Field Private Instance`
+---@field userPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field focusTarget Barotrauma.Item
+---`Field Private Instance`
+---@field targetRotation System.Single
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Field Private Instance`
+---@field state System.Boolean
+---`Field Private Instance`
+---@field forceSelectNextFrame System.Boolean
+---`Field Private Instance`
+---@field lastUsed System.Double
+---`Getter Public Instance`
+---@field Direction Barotrauma.Direction
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UserPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field User Barotrauma.Character
+---`Getter Public Instance`
+---@field LimbPositions (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*LimbPos)|(fun():(Barotrauma.Items.Components.LimbPos))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsToggle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field State System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideHUD System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UsableIn Barotrauma.Items.Components.Controller.UseEnvironment
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawUserBehind System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSelectingWhenSelectedByOther System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSelectingWhenSelectedByBot System.Boolean
+---`Getter Public Instance`
+---@field ControlCharacterPose System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UserInCorrectPosition System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowAiming System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonInteractableWhenFlippedX System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NonInteractableWhenFlippedY System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequirePower System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsSecondaryItem System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceUserToStayAttached System.Boolean
+_G['Components']['Controller'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Controller'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Controller'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param activator? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].Use = function(deltaTime, activator) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Controller'].IsOutOfPower = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Item
+_G['Components']['Controller'].GetFocusTarget = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].Pick = function(picker) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Components']['Controller'].CancelUsing = function(character) end
+
+---`Method Public Instance Virtual`
+---@param activator Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].Select = function(activator) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].IsAttachedUser = function(character) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Controller'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Controller'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Controller'].HasAccess = function(character) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Controller'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Controller'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Controller'].SaveLimbPositions = function(element) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Controller'].LoadLimbPositions = function(element) end
+
+---`Method Private Instance`
+_G['Components']['Controller'].FlipLimbPositions = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Controller'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Controller'].Reset = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Controller
+_G['Components']['Controller'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Controller
+_G['Components']['Controller'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96922A38.lua b/Meta/Types/server/_00007FFD96922A38.lua
new file mode 100644
index 0000000..6a86b08
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96922A38.lua
@@ -0,0 +1,85 @@
+---@meta
+---@class Barotrauma.Items.Components.Deconstructor : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field progressTimer System.Single
+---`Field Private Instance`
+---@field progressState System.Single
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field userDeconstructorSpeedMultiplier System.Single
+---`Field Private Instance`
+---@field inputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field outputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Public Instance`
+---@field RelocateOutputToMainSub System.Boolean
+---`Field Private Static`
+---@field TinkeringSpeedIncrease System.Single
+---`Getter Public Instance`
+---@field InputContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field OutputContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeconstructItemsSimultaneously System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeconstructionSpeed System.Single
+_G['Components']['Deconstructor'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Deconstructor'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Deconstructor'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Deconstructor'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Deconstructor'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param targetItem Barotrauma.Item
+---@param inputItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@param validDeconstructItems (System.Collections.Generic.List*1Barotrauma*DeconstructItem)|(Barotrauma.DeconstructItem[])
+---@param allowRemove? System.Boolean
+_G['Components']['Deconstructor'].ProcessItem = function(targetItem, inputItems, validDeconstructItems, allowRemove) end
+
+---`Method Private Instance`
+_G['Components']['Deconstructor'].PutItemsToLinkedContainer = function() end
+
+---`Method Private Instance`
+_G['Components']['Deconstructor'].MoveInputQueue = function() end
+
+---`Method Private Instance`
+---@param checkRequiredOtherItems? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Item*2Barotrauma*DeconstructItem)|(fun():(System.ValueTuple*1Barotrauma*Item*1Barotrauma*DeconstructItem))
+_G['Components']['Deconstructor'].GetAvailableOutputs = function(checkRequiredOtherItems) end
+
+---`Method Public Instance`
+---@param active System.Boolean
+---@param user? Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+_G['Components']['Deconstructor'].SetActive = function(active, user, createNetworkEvent) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Deconstructor
+_G['Components']['Deconstructor'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Deconstructor
+_G['Components']['Deconstructor'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96922F28.lua b/Meta/Types/server/_00007FFD96922F28.lua
new file mode 100644
index 0000000..d6f6190
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96922F28.lua
@@ -0,0 +1,116 @@
+---@meta
+---@class Barotrauma.Items.Components.Engine : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field force System.Single
+---`Field Private Instance`
+---@field lastReceivedTargetForce System.Nullable*1System*Single
+---`Field Private Instance`
+---@field targetForce System.Single
+---`Field Private Instance`
+---@field maxForce System.Single
+---`Field Private Instance`
+---@field propellerDamage Barotrauma.Attack
+---`Field Private Instance`
+---@field damageTimer System.Single
+---`Field Private Instance`
+---@field hasPower System.Boolean
+---`Field Private Instance`
+---@field prevVoltage System.Single
+---`Field Private Instance`
+---@field controlLockTimer System.Single
+---`Field Public Instance`
+---@field User Barotrauma.Character
+---`Field Private Static`
+---@field ForceToPowerExponent System.Single
+---`Field Private Static`
+---@field PowerToForceExponent System.Single
+---`Field Private Static`
+---@field TinkeringForceIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PropellerPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisablePropellerDamage System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---@field CurrentVolume System.Single
+---`Getter Public Instance`
+---@field CurrentBrokenVolume System.Single
+---`Getter Public Instance Virtual`
+---@field CurrentStress System.Single
+_G['Components']['Engine'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Engine'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Engine'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Engine'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Engine'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Engine'].GridResolved = function(connection) end
+
+---`Method Private Instance`
+---@param noise System.Single
+_G['Components']['Engine'].UpdateAITargets = function(noise) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Engine'].UpdatePropellerDamage = function(deltaTime) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Engine'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Engine'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Engine'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Engine'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Engine'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Engine
+_G['Components']['Engine'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Engine
+_G['Components']['Engine'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96923840.lua b/Meta/Types/server/_00007FFD96923840.lua
new file mode 100644
index 0000000..e34eeec
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96923840.lua
@@ -0,0 +1,233 @@
+---@meta
+---@class Barotrauma.Items.Components.Fabricator : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field serverEventId System.UInt64
+---`Field Private Instance`
+---@field fabricationRecipes (System.Collections.Immutable.ImmutableDictionary*1System*UInt32*1Barotrauma*FabricationRecipe)|({[System.UInt32]:(Barotrauma.FabricationRecipe)})
+---`Field Private Instance`
+---@field fabricatedItem Barotrauma.FabricationRecipe
+---`Field Private Instance`
+---@field timeUntilReady System.Single
+---`Field Private Instance`
+---@field requiredTime System.Single
+---`Field Private Instance`
+---@field savedFabricatedItem System.String
+---`Field Private Instance`
+---@field savedTimeUntilReady System.Single
+---`Field Private Instance`
+---@field savedRequiredTime System.Single
+---`Field Private Instance`
+---@field availableIngredients (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---`Field Private Instance`
+---@field refreshIngredientsTimer System.Single
+---`Field Private Instance`
+---@field hasPower System.Boolean
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field inputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field outputContainer Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field amountToFabricate System.Int32
+---`Field Private Instance`
+---@field amountRemaining System.Int32
+---`Field Private Instance`
+---@field state Barotrauma.Items.Components.Fabricator.FabricatorState
+---`Field Private Instance`
+---@field progressState System.Single
+---`Field Private Instance`
+---@field fabricationLimits (System.Collections.Generic.Dictionary*1System*UInt32*1System*Int32)|({[System.UInt32]:(System.Int32)})
+---`Field Public Instance`
+---@field OnItemFabricated (System.Action*1Barotrauma*Item*1Barotrauma*Character)|(fun(arg1:Barotrauma.Item, arg2:Barotrauma.Character))
+---`Field Private Instance`
+---@field usedIngredients (System.Collections.Generic.HashSet*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field linkedInventories (System.Collections.Generic.HashSet*1Barotrauma*Inventory)|(Barotrauma.Inventory[])
+---`Field Private Static`
+---@field MaxAmountToFabricate System.Int32
+---`Field Private Static`
+---@field RefreshIngredientsInterval System.Single
+---`Field Private Static`
+---@field TinkeringSpeedIncrease System.Single
+---`Field Public Static`
+---@field PlusOneQualityBonusThreshold System.Int32
+---`Field Public Static`
+---@field PlusTwoQualityBonusThreshold System.Int32
+---`Field Public Static`
+---@field PlusOneTarget System.Int32
+---`Field Public Static`
+---@field PlusTwoTarget System.Int32
+---`Field Public Static`
+---@field PlusOneLerp System.Single
+---`Field Public Static`
+---@field PlusTwoLerp System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FabricationSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillRequirementMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AmountToFabricate System.Int32
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field State Barotrauma.Items.Components.Fabricator.FabricatorState
+---`Getter Public Instance`
+---@field InputContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field OutputContainer Barotrauma.Items.Components.ItemContainer
+_G['Components']['Fabricator'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Fabricator'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Items.Components.ItemComponent.IEventData
+_G['Components']['Fabricator'].ServerGetEventData = function() end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['Fabricator'].ValidateEventData = function(data) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Fabricator'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Fabricator'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Fabricator'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Fabricator'].Pick = function(picker) end
+
+---`Method Public Instance`
+---@param allowedIdentifiers (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['Components']['Fabricator'].RemoveFabricationRecipes = function(allowedIdentifiers) end
+
+---`Method Private Instance`
+---@param selectedItem Barotrauma.FabricationRecipe
+---@param user Barotrauma.Character
+---@param addToServerLog? System.Boolean
+_G['Components']['Fabricator'].StartFabricating = function(selectedItem, user, addToServerLog) end
+
+---`Method Private Instance`
+---@param user? Barotrauma.Character
+_G['Components']['Fabricator'].CancelFabricating = function(user) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Fabricator'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@return Barotrauma.Networking.Client
+_G['Components']['Fabricator'].GetUsingClient = function() end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].Fabricate = function() end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Fabricator'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Static`
+---@param skillLevel System.Single
+---@param target System.Single
+---@return System.Single
+_G['Components']['Fabricator'].CalculateBonusRollPercentage = function(skillLevel, target) end
+
+---`Method Private Static`
+---@param fabricatedItem Barotrauma.FabricationRecipe
+---@param user Barotrauma.Character
+---@return Barotrauma.Items.Components.Fabricator.QualityResult
+_G['Components']['Fabricator'].GetFabricatedItemQuality = function(fabricatedItem, user) end
+
+---`Method Private Static`
+---@param user Barotrauma.Character
+---@param item Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['Components']['Fabricator'].AnyOneHasRecipeForItem = function(user, item) end
+
+---`Method Private Instance`
+---@param fabricableItem Barotrauma.FabricationRecipe
+---@param availableIngredients (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[]))})
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Fabricator'].CanBeFabricated = function(fabricableItem, availableIngredients, character) end
+
+---`Method Private Instance`
+---@param fabricableItem Barotrauma.FabricationRecipe
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['Fabricator'].GetRequiredTime = function(fabricableItem, user) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param skills (System.Collections.Immutable.ImmutableArray*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---@return System.Single
+_G['Components']['Fabricator'].FabricationDegreeOfSuccess = function(character, skills) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Components']['Fabricator'].GetSkillMultiplier = function() end
+
+---`Method Private Instance`
+_G['Components']['Fabricator'].RefreshAvailableIngredients = function() end
+
+---`Method Private Instance`
+---@param items (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Components']['Fabricator'].SortIngredients = function(items) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['Components']['Fabricator'].GetSortedSuitableIngredients = function() end
+
+---`Method Private Instance`
+---@param targetItem Barotrauma.FabricationRecipe
+_G['Components']['Fabricator'].MoveIngredientsToInputContainer = function(targetItem) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Fabricator'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Fabricator'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Fabricator'].OnMapLoaded = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Fabricator'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Fabricator
+_G['Components']['Fabricator'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Fabricator
+_G['Components']['Fabricator'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96923D10.lua b/Meta/Types/server/_00007FFD96923D10.lua
new file mode 100644
index 0000000..549bcd2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96923D10.lua
@@ -0,0 +1,51 @@
+---@meta
+---@class Barotrauma.Items.Components.MiniMap : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field hasPower System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireWaterDetectors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireOxygenDetectors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowHullIntegrity System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableHullStatus System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableElectricalView System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnableItemFinder System.Boolean
+_G['Components']['MiniMap'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MiniMap'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['MiniMap'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MiniMap'].Pick = function(picker) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MiniMap
+_G['Components']['MiniMap'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MiniMap
+_G['Components']['MiniMap'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96923F20.lua b/Meta/Types/server/_00007FFD96923F20.lua
new file mode 100644
index 0000000..4146cd4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96923F20.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.Items.Components.OutpostTerminal : Barotrauma.Items.Components.ItemComponent
+_G['Components']['OutpostTerminal'] = {}
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OutpostTerminal
+_G['Components']['OutpostTerminal'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OutpostTerminal
+_G['Components']['OutpostTerminal'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969241C0.lua b/Meta/Types/server/_00007FFD969241C0.lua
new file mode 100644
index 0000000..53eda51
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969241C0.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.Items.Components.OxygenGenerator : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field generatedAmount System.Single
+---`Field Private Instance`
+---@field ventList (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*Vent*2System*Single)|(System.ValueTuple*1Barotrauma*Items*Components*Vent*1System*Single[])
+---`Field Private Instance`
+---@field totalHullVolume System.Single
+---`Field Private Instance`
+---@field ventUpdateTimer System.Single
+---`Field Private Static`
+---@field VentUpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrFlow System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GeneratedAmount System.Single
+_G['Components']['OxygenGenerator'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OxygenGenerator'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['OxygenGenerator'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OxygenGenerator'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['OxygenGenerator'].GetVents = function() end
+
+---`Method Private Instance`
+---@param deltaOxygen System.Single
+---@param deltaTime System.Single
+_G['Components']['OxygenGenerator'].UpdateVents = function(deltaOxygen, deltaTime) end
+
+---`Method Public Instance`
+---@param targetVent Barotrauma.Items.Components.Vent
+---@return System.Single
+_G['Components']['OxygenGenerator'].GetVentOxygenFlow = function(targetVent) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenGenerator
+_G['Components']['OxygenGenerator'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenGenerator
+_G['Components']['OxygenGenerator'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96924C58.lua b/Meta/Types/server/_00007FFD96924C58.lua
new file mode 100644
index 0000000..50aa534
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96924C58.lua
@@ -0,0 +1,248 @@
+---@meta
+---@class Barotrauma.Items.Components.Reactor : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field blameOnBroken Barotrauma.Networking.Client
+---`Field Private Instance`
+---@field nextServerLogWriteTime System.Nullable*1System*Single
+---`Field Private Instance`
+---@field lastServerLogWriteTime System.Single
+---`Field Private Instance`
+---@field fissionRate System.Single
+---`Field Private Instance`
+---@field turbineOutput System.Single
+---`Field Private Instance`
+---@field temperature System.Single
+---`Field Private Instance`
+---@field autoTemp System.Boolean
+---`Field Private Instance`
+---@field fuelConsumptionRate System.Single
+---`Field Private Instance`
+---@field meltDownTimer System.Single
+---`Field Private Instance`
+---@field meltDownDelay System.Single
+---`Field Private Instance`
+---@field fireTimer System.Single
+---`Field Private Instance`
+---@field fireDelay System.Single
+---`Field Private Instance`
+---@field maxPowerOutput System.Single
+---`Field Private Instance`
+---@field minUpdatePowerOut System.Single
+---`Field Private Instance`
+---@field maxUpdatePowerOut System.Single
+---`Field Private Instance`
+---@field unsentChanges System.Boolean
+---`Field Private Instance`
+---@field sendUpdateTimer System.Single
+---`Field Private Instance`
+---@field degreeOfSuccess System.Single
+---`Field Private Instance`
+---@field optimalTemperature Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field allowedTemperature Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field optimalFissionRate Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field allowedFissionRate Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field optimalTurbineOutput Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field allowedTurbineOutput Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field signalControlledTargetFissionRate System.Nullable*1System*Single
+---`Field Private Instance`
+---@field signalControlledTargetTurbineOutput System.Nullable*1System*Single
+---`Field Private Instance`
+---@field lastReceivedFissionRateSignalTime System.Double
+---`Field Private Instance`
+---@field lastReceivedTurbineOutputSignalTime System.Double
+---`Field Private Instance`
+---@field temperatureBoost System.Single
+---`Field Private Instance`
+---@field _powerOn System.Boolean
+---`Field Private Instance`
+---@field lastUser Barotrauma.Character
+---`Field Private Instance`
+---@field prevAvailableFuel System.Single
+---`Field Private Static`
+---@field NetworkUpdateIntervalLow System.Single
+---`Field Private Static`
+---@field NetworkUpdateIntervalHigh System.Single
+---`Field Private Static`
+---@field TemperatureBoostAmount System.Single
+---`Getter Public Instance`
+---@field AllowTemperatureBoost System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerOn System.Boolean
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastAIUser Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastUserWasPlayer System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastUser Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPowerOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MeltdownDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Temperature System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FissionRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TurbineOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FuelConsumptionRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TemperatureCritical System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoTemp System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvailableFuel System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Load System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetFissionRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetTurbineOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CorrectTurbineOutput System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExplosionDamagesOtherSubs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MeltedDownThisRound System.Boolean
+_G['Components']['Reactor'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Reactor'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Reactor'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Reactor'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Reactor'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param load System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['Reactor'].MinMaxPowerOut = function(conn, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['Reactor'].GetConnectionPowerOut = function(conn, power, minMaxPower, load) end
+
+---`Method Private Instance`
+---@param fissionRate System.Single
+---@return System.Single
+_G['Components']['Reactor'].GetGeneratedHeat = function(fissionRate) end
+
+---`Method Private Instance`
+---@param minimumOutputRatio System.Single
+---@param minCondition? System.Single
+---@return System.Boolean
+_G['Components']['Reactor'].NeedMoreFuel = function(minimumOutputRatio, minCondition) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Reactor'].TooMuchFuel = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Reactor'].UpdateFailures = function(deltaTime) end
+
+---`Method Public Instance`
+---@param speed System.Single
+---@param deltaTime System.Single
+_G['Components']['Reactor'].UpdateAutoTemp = function(speed, deltaTime) end
+
+---`Method Public Instance`
+_G['Components']['Reactor'].PowerUpImmediately = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Reactor'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['Reactor'].MeltDown = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Reactor'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Reactor'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Reactor'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Reactor'].ReceiveSignal = function(signal, connection) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Reactor'].GetMaxOutput = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Reactor'].GetFuelConsumption = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Reactor
+_G['Components']['Reactor'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Reactor
+_G['Components']['Reactor'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969253B8.lua b/Meta/Types/server/_00007FFD969253B8.lua
new file mode 100644
index 0000000..3ef7f39
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969253B8.lua
@@ -0,0 +1,146 @@
+---@meta
+---@class Barotrauma.Items.Components.Sonar : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field currentMode Barotrauma.Items.Components.Sonar.Mode
+---`Field Private Instance`
+---@field activePings (Barotrauma.Items.Components.ActivePing-arr)|(Barotrauma.Items.Components.Sonar.ActivePing[])
+---`Field Private Instance`
+---@field activePingsCount System.Int32
+---`Field Private Instance`
+---@field currentPingIndex System.Int32
+---`Field Private Instance`
+---@field zoom System.Single
+---`Field Private Instance`
+---@field useDirectionalPing System.Boolean
+---`Field Private Instance`
+---@field pingDirection Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field aiPingCheckPending System.Boolean
+---`Field Private Instance`
+---@field connectedTransducers (System.Collections.Generic.List*1Barotrauma*Items*Components*Sonar*ConnectedTransducer)|(Barotrauma.Items.Components.Sonar.ConnectedTransducer[])
+---`Field Private Instance`
+---@field hasMineralScanner System.Boolean
+---`Field Private Static`
+---@field DirectionalPingDotProduct System.Single
+---`Field Private Static`
+---@field targetGroups (System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Barotrauma*Character)|({[System.String]:((System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[]))})
+---`Field Public Static`
+---@field DefaultSonarRange System.Single
+---`Field Public Static`
+---@field PassivePowerConsumption System.Single
+---`Field Private Static`
+---@field DirectionalPingSector System.Single
+---`Field Private Static`
+---@field PingFrequency System.Single
+---`Field Private Static`
+---@field MinZoom System.Single
+---`Field Private Static`
+---@field MaxZoom System.Single
+---`Getter Public Instance`
+---@field UseDirectionalPing System.Boolean
+---`Getter Public Instance`
+---@field ConnectedTransducers (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*SonarTransducer)|(fun():(Barotrauma.Items.Components.SonarTransducer))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DetectSubmarineWalls System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseTransducers System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CenterOnTransducers System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HasMineralScanner System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseMineralScanner System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Zoom System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentMode Barotrauma.Items.Components.Sonar.Mode
+_G['Components']['Sonar'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Sonar'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*AITarget)|(fun():(Barotrauma.AITarget))
+_G['Components']['Sonar'].GetAITargets = function() end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Sonar'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Sonar'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Sonar'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Private Instance`
+---@param dir Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.LocalizedString
+_G['Components']['Sonar'].GetDirectionName = function(dir) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Sonar'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Sonar'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Sonar'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'] = function(item, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'].__new = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Sonar
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Sonar
+_G['Components']['Sonar'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96925660.lua b/Meta/Types/server/_00007FFD96925660.lua
new file mode 100644
index 0000000..2e949e7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96925660.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.Items.Components.SonarTransducer : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field sendSignalTimer System.Single
+---`Field Public Instance`
+---@field ConnectedSonar Barotrauma.Items.Components.Sonar
+---`Field Private Static`
+---@field SendSignalInterval System.Single
+_G['Components']['SonarTransducer'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['SonarTransducer'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['SonarTransducer'].GetCurrentPowerConsumption = function(connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SonarTransducer
+_G['Components']['SonarTransducer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SonarTransducer
+_G['Components']['SonarTransducer'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96925E00.lua b/Meta/Types/server/_00007FFD96925E00.lua
new file mode 100644
index 0000000..086cb94
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96925E00.lua
@@ -0,0 +1,205 @@
+---@meta
+---@class Barotrauma.Items.Components.Steering : Barotrauma.Items.Components.Powered
+---`Field Public Instance`
+---@field MaintainPos System.Boolean
+---`Field Public Instance`
+---@field LevelStartSelected System.Boolean
+---`Field Public Instance`
+---@field LevelEndSelected System.Boolean
+---`Field Private Instance`
+---@field targetVelocity Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field steeringInput Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field autoPilot System.Boolean
+---`Field Private Instance`
+---@field posToMaintain System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field steeringPath Barotrauma.SteeringPath
+---`Field Private Instance`
+---@field pathFinder Barotrauma.PathFinder
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field unsentChanges System.Boolean
+---`Field Private Instance`
+---@field autopilotRayCastTimer System.Single
+---`Field Private Instance`
+---@field autopilotRecalculatePathTimer System.Single
+---`Field Private Instance`
+---@field avoidStrength Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field neutralBallastLevel System.Single
+---`Field Private Instance`
+---@field steeringAdjustSpeed System.Single
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field sonar Barotrauma.Items.Components.Sonar
+---`Field Private Instance`
+---@field controlledSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field navigateTactically System.Boolean
+---`Field Private Instance`
+---@field showIceSpireWarning System.Boolean
+---`Field Private Instance`
+---@field connectedSubs (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field connectedSubUpdateTimer System.Single
+---`Field Private Instance`
+---@field lastReceivedSteeringSignalTime System.Double
+---`Field Private Instance`
+---@field debugDrawObstacles (System.Collections.Generic.List*1Barotrauma*Items*Components*Steering*ObstacleDebugInfo)|(Barotrauma.Items.Components.Steering.ObstacleDebugInfo[])
+---`Field Public Instance`
+---@field DockingSources (System.Collections.Generic.List*1Barotrauma*Items*Components*DockingPort)|(Barotrauma.Items.Components.DockingPort[])
+---`Field Private Instance`
+---@field searchedConnectedDockingPort System.Boolean
+---`Field Private Instance`
+---@field dockingModeEnabled System.Boolean
+---`Field Public Static`
+---@field AutopilotMinDistToPathNode System.Single
+---`Field Private Static`
+---@field AutopilotRayCastInterval System.Single
+---`Field Private Static`
+---@field RecalculatePathInterval System.Single
+---`Field Private Static`
+---@field AutoPilotSteeringLerp System.Single
+---`Field Private Static`
+---@field AutoPilotMaxSpeed System.Single
+---`Field Private Static`
+---@field AIPilotMaxSpeed System.Single
+---`Field Public Static`
+---@field PressureWarningThreshold System.Single
+---`Field Private Static`
+---@field DefaultSteeringAdjustSpeed System.Single
+---`Field Private Static`
+---@field ConnectedSubUpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UnsentChanges System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AITacticalTarget Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AIRamTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoPilot System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NeutralBallastLevel System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockingAssistThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field TargetVelocityLengthSquared System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SteeringInput Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field SteeringPath Barotrauma.SteeringPath
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PosToMaintain System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockingModeEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseAutoDocking System.Boolean
+_G['Components']['Steering'] = {}
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Steering'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Steering'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Steering'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+_G['Components']['Steering'].FindConnectedDockingPort = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Steering'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Steering'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Steering'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param deltaTime System.Single
+_G['Components']['Steering'].IncreaseSkillLevel = function(user, deltaTime) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Steering'].UpdateAutoPilot = function(deltaTime) end
+
+---`Method Private Instance`
+---@param node Barotrauma.PathNode
+---@param nextNode Barotrauma.PathNode
+---@return System.Nullable*1System*Single
+_G['Components']['Steering'].GetNodePenalty = function(node, nextNode) end
+
+---`Method Private Instance`
+_G['Components']['Steering'].UpdatePath = function() end
+
+---`Method Public Instance`
+_G['Components']['Steering'].SetDestinationLevelStart = function() end
+
+---`Method Public Instance`
+_G['Components']['Steering'].SetDestinationLevelEnd = function() end
+
+---`Method Private Instance`
+_G['Components']['Steering'].SetDestinationTactical = function() end
+
+---`Method Private Instance`
+_G['Components']['Steering'].SetMaintainPosition = function() end
+
+---`Method Private Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param slowdownAmount System.Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Steering'].GetSteeringVelocity = function(worldPosition, slowdownAmount) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Steering'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Steering'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Steering
+_G['Components']['Steering'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Steering
+_G['Components']['Steering'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96926110.lua b/Meta/Types/server/_00007FFD96926110.lua
new file mode 100644
index 0000000..b61a99e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96926110.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Items.Components.Vent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field oxygenFlow System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OxygenFlow System.Single
+_G['Components']['Vent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Vent'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Vent
+_G['Components']['Vent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Vent
+_G['Components']['Vent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96926768.lua b/Meta/Types/server/_00007FFD96926768.lua
new file mode 100644
index 0000000..039aeb9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96926768.lua
@@ -0,0 +1,130 @@
+---@meta
+---@class Barotrauma.Items.Components.PowerTransfer : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field signalConnections (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Instance`
+---@field connectionDirty (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Boolean)|({[Barotrauma.Items.Components.Connection]:(System.Boolean)})
+---`Field Private Instance`
+---@field connectedRecipients (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Collections*Generic*HashSet*2Barotrauma*Items*Components*Connection)|({[Barotrauma.Items.Components.Connection]:((System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[]))})
+---`Field Private Instance`
+---@field overloadCooldownTimer System.Single
+---`Field NonPublic Instance`
+---@field powerLoad System.Single
+---`Field NonPublic Instance`
+---@field isBroken System.Boolean
+---`Field Private Instance`
+---@field extraLoad System.Single
+---`Field Private Instance`
+---@field extraLoadSetTime System.Single
+---`Field Private Instance`
+---@field canTransfer System.Boolean
+---`Field Private Instance`
+---@field prevSentPowerValue System.Int32
+---`Field Private Instance`
+---@field powerSignal System.String
+---`Field Private Instance`
+---@field prevSentLoadValue System.Int32
+---`Field Private Instance`
+---@field loadSignal System.String
+---`Field Private Static`
+---@field recipientsToRefresh (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerTransfer)|(Barotrauma.Items.Components.PowerTransfer[])
+---`Field Private Static`
+---@field OverloadCooldown System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PowerConnections (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PowerLoad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanBeOverloaded System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OverloadVoltage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Overload System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraLoad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanTransfer System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+_G['Components']['PowerTransfer'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerTransfer'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['PowerTransfer'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['PowerTransfer'].GetConnectionPowerOut = function(conn, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['PowerTransfer'].Pick = function(picker) end
+
+---`Method NonPublic Instance`
+_G['Components']['PowerTransfer'].RefreshConnections = function() end
+
+---`Method Private Instance`
+---@param c Barotrauma.Items.Components.Connection
+---@param connected (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+_G['Components']['PowerTransfer'].GetConnected = function(c, connected) end
+
+---`Method Public Instance`
+_G['Components']['PowerTransfer'].SetAllConnectionsDirty = function() end
+
+---`Method Public Instance`
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['PowerTransfer'].SetConnectionDirty = function(connection) end
+
+---`Method Public Instance Virtual`
+_G['Components']['PowerTransfer'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['PowerTransfer'].ReceiveSignal = function(signal, connection) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['PowerTransfer'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.PowerTransfer
+---@return Barotrauma.Items.Components.PowerTransfer
+_G['Components']['PowerTransfer'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96926B28.lua b/Meta/Types/server/_00007FFD96926B28.lua
new file mode 100644
index 0000000..e6ae88c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96926B28.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.Items.Components.ArithmeticComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field receivedSignal (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field timeFrame System.Single
+---`Field NonPublic Instance`
+---@field signalSender (Barotrauma.Character-arr)|(Barotrauma.Character[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClampMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ClampMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimeFrame System.Single
+_G['Components']['ArithmeticComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ArithmeticComponent'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['ArithmeticComponent'].Calculate = function(signal1, signal2) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ArithmeticComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['ArithmeticComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['ArithmeticComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96926C78.lua b/Meta/Types/server/_00007FFD96926C78.lua
new file mode 100644
index 0000000..76bade1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96926C78.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.AdderComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['AdderComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['AdderComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AdderComponent
+_G['Components']['AdderComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AdderComponent
+_G['Components']['AdderComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969270B0.lua b/Meta/Types/server/_00007FFD969270B0.lua
new file mode 100644
index 0000000..641abe0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969270B0.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Items.Components.AndComponent : Barotrauma.Items.Components.BooleanOperatorComponent
+_G['Components']['AndComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param numTrueInputs System.Int32
+---@return System.Boolean
+_G['Components']['AndComponent'].GetOutput = function(numTrueInputs) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AndComponent
+_G['Components']['AndComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.AndComponent
+_G['Components']['AndComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969274C8.lua b/Meta/Types/server/_00007FFD969274C8.lua
new file mode 100644
index 0000000..e3537a0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969274C8.lua
@@ -0,0 +1,80 @@
+---@meta
+---@class Barotrauma.Items.Components.ButtonTerminal : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field requiredSignalCount System.Int32
+---`Field Private Instance`
+---@field buttonSignalDefinitions (System.Collections.Generic.IReadOnlyList*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Signals (System.String-arr)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ActivatingItems System.String
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Container Barotrauma.Items.Components.ItemContainer
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ActivatingItemPrefabs (System.Collections.Generic.HashSet*1Barotrauma*ItemPrefab)|(Barotrauma.ItemPrefab[])
+---`Getter Private Instance`
+---@field IsActivated System.Boolean
+_G['Components']['ButtonTerminal'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['ButtonTerminal'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ButtonTerminal'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ButtonTerminal'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ButtonTerminal'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['ButtonTerminal'].LoadSignals = function() end
+
+---`Method Private Instance`
+_G['Components']['ButtonTerminal'].LoadActivatingItems = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ButtonTerminal'].Reset = function() end
+
+---`Method Private Instance`
+---@param signalIndex System.Int32
+---@param sender Barotrauma.Character
+---@param ignoreState? System.Boolean
+---@param overrideSignal? System.String
+---@return System.Boolean
+_G['Components']['ButtonTerminal'].SendSignal = function(signalIndex, sender, ignoreState, overrideSignal) end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['ButtonTerminal'].ValidateEventData = function(data) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ButtonTerminal'].Write = function(msg, extraData) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ButtonTerminal
+_G['Components']['ButtonTerminal'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ButtonTerminal
+_G['Components']['ButtonTerminal'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96927778.lua b/Meta/Types/server/_00007FFD96927778.lua
new file mode 100644
index 0000000..afbb0c4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96927778.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Items.Components.ColorComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field receivedSignal (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseHSV System.Boolean
+_G['Components']['ColorComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ColorComponent'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['ColorComponent'].UpdateOutput = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ColorComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ColorComponent
+_G['Components']['ColorComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ColorComponent
+_G['Components']['ColorComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969279B0.lua b/Meta/Types/server/_00007FFD969279B0.lua
new file mode 100644
index 0000000..b35e4a6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969279B0.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.Items.Components.StringComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field receivedSignal (System.String-arr)|(System.String[])
+---`Field NonPublic Instance`
+---@field timeFrame System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimeFrame System.Single
+_G['Components']['StringComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['StringComponent'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Abstract Virtual`
+---@param signal1 System.String
+---@param signal2 System.String
+---@return System.String
+_G['Components']['StringComponent'].Calculate = function(signal1, signal2) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['StringComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.StringComponent
+_G['Components']['StringComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.StringComponent
+_G['Components']['StringComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96927B90.lua b/Meta/Types/server/_00007FFD96927B90.lua
new file mode 100644
index 0000000..ca0fd47
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96927B90.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Items.Components.ConcatComponent : Barotrauma.Items.Components.StringComponent
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Separator System.String
+_G['Components']['ConcatComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.String
+---@param signal2 System.String
+---@return System.String
+_G['Components']['ConcatComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConcatComponent
+_G['Components']['ConcatComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConcatComponent
+_G['Components']['ConcatComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969282F8.lua b/Meta/Types/server/_00007FFD969282F8.lua
new file mode 100644
index 0000000..99ba099
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969282F8.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.Items.Components.Signal : System.ValueType
+---`Field Public Instance`
+---@field value System.String
+---`Field Public Instance`
+---@field stepsTaken System.Int32
+---`Field Public Instance`
+---@field sender Barotrauma.Character
+---`Field Public Instance`
+---@field source Barotrauma.Item
+---`Field Public Instance`
+---@field power System.Single
+---`Field Public Instance`
+---@field strength System.Single
+---`Field Public Instance`
+---@field CreationTime System.Double
+---`Getter Public Instance`
+---@field TimeSinceCreated System.Double
+_G['Signal'] = {}
+
+---`Method Public Static`
+---@param value System.String
+---@param stepsTaken? System.Int32
+---@param sender? Barotrauma.Character
+---@param source? Barotrauma.Item
+---@param power? System.Single
+---@param strength? System.Single
+---@return Barotrauma.Items.Components.Signal
+_G['Signal'].Create = function(value, stepsTaken, sender, source, power, strength) end
+
+---`Method NonPublic Instance`
+---@param stepsTaken System.Int32
+---@return Barotrauma.Items.Components.Signal
+_G['Signal'].WithStepsTaken = function(stepsTaken) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@param stepsTaken? System.Int32
+---@param sender? Barotrauma.Character
+---@param source? Barotrauma.Item
+---@param power? System.Single
+---@param strength? System.Single
+---@return Barotrauma.Items.Components.Signal
+_G['Signal'] = function(value, stepsTaken, sender, source, power, strength) end
+
+---`Constructor Public Instance`
+---@param value System.String
+---@param stepsTaken? System.Int32
+---@param sender? Barotrauma.Character
+---@param source? Barotrauma.Item
+---@param power? System.Single
+---@param strength? System.Single
+---@return Barotrauma.Items.Components.Signal
+_G['Signal'].__new = function(value, stepsTaken, sender, source, power, strength) end
+
diff --git a/Meta/Types/server/_00007FFD969283A8.lua b/Meta/Types/server/_00007FFD969283A8.lua
new file mode 100644
index 0000000..a22c5ca
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969283A8.lua
@@ -0,0 +1,125 @@
+---@meta
+---@class Barotrauma.Items.Components.Connection : System.Object
+---`Field Public Instance`
+---@field MaxPlayerConnectableWires System.Int32
+---`Field Public Instance`
+---@field MaxWires System.Int32
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field wires (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire)|(Barotrauma.Items.Components.Wire[])
+---`Field Public Instance`
+---@field CircuitBoxConnections (System.Collections.Generic.List*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---`Field Private Instance`
+---@field enumeratingWires System.Boolean
+---`Field Private Instance`
+---@field removedWires (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire)|(Barotrauma.Items.Components.Wire[])
+---`Field Private Instance`
+---@field item Barotrauma.Item
+---`Field Public Instance`
+---@field IsOutput System.Boolean
+---`Field Public Instance`
+---@field Effects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Public Instance`
+---@field LoadedWires (System.Collections.Generic.List*1System*ValueTuple*2System*UInt16*2System*Nullable*3System*Int32)|(System.ValueTuple*1System*UInt16*1System*Nullable*2System*Int32[])
+---`Field Public Instance`
+---@field Grid Barotrauma.Items.Components.GridInfo
+---`Field Public Instance`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Field Private Instance`
+---@field recipientsDirty System.Boolean
+---`Field Private Instance`
+---@field recipients (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Static`
+---@field DefaultMaxWires System.Int32
+---`Getter Public Instance`
+---@field Wires (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Wire)|(fun():(Barotrauma.Items.Components.Wire))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastSentSignal Barotrauma.Items.Components.Signal
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastReceivedSignal Barotrauma.Items.Components.Signal
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsPower System.Boolean
+---`Getter Public Instance`
+---@field Recipients (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---@field Item Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ConnectionPanel Barotrauma.Items.Components.ConnectionPanel
+_G['Components']['Connection'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Components']['Connection'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Connection'].IsConnectedToSomething = function() end
+
+---`Method Public Instance`
+_G['Components']['Connection'].SetRecipientsDirty = function() end
+
+---`Method Private Instance`
+_G['Components']['Connection'].RefreshRecipients = function() end
+
+---`Method Public Instance`
+---@param it Barotrauma.Item
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Connection'].FindWireByItem = function(it) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Connection'].WireSlotsAvailable = function() end
+
+---`Method Public Instance`
+---@param wire Barotrauma.Items.Components.Wire
+---@return System.Boolean
+_G['Components']['Connection'].TryAddLink = function(wire) end
+
+---`Method Public Instance`
+---@param wire Barotrauma.Items.Components.Wire
+_G['Components']['Connection'].DisconnectWire = function(wire) end
+
+---`Method Public Instance`
+---@param wire Barotrauma.Items.Components.Wire
+_G['Components']['Connection'].ConnectWire = function(wire) end
+
+---`Method Public Instance`
+---@param signal Barotrauma.Items.Components.Signal
+_G['Components']['Connection'].SendSignal = function(signal) end
+
+---`Method Public Static`
+---@param signal Barotrauma.Items.Components.Signal
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['Connection'].SendSignalIntoConnection = function(signal, conn) end
+
+---`Method Public Instance`
+_G['Components']['Connection'].ClearConnections = function() end
+
+---`Method Public Instance`
+_G['Components']['Connection'].InitializeFromLoaded = function() end
+
+---`Method Public Instance`
+---@param parentElement System.Xml.Linq.XElement
+_G['Components']['Connection'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param connectionPanel Barotrauma.Items.Components.ConnectionPanel
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Items.Components.Connection
+_G['Components']['Connection'] = function(element, connectionPanel, idRemap) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param connectionPanel Barotrauma.Items.Components.ConnectionPanel
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Items.Components.Connection
+_G['Components']['Connection'].__new = function(element, connectionPanel, idRemap) end
+
diff --git a/Meta/Types/server/_00007FFD96928750.lua b/Meta/Types/server/_00007FFD96928750.lua
new file mode 100644
index 0000000..cb43b55
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96928750.lua
@@ -0,0 +1,122 @@
+---@meta
+---@class Barotrauma.Items.Components.ConnectionPanel : Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field Connections (System.Collections.Generic.List*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Public Instance`
+---@field DisconnectedWires (System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire)|(Barotrauma.Items.Components.Wire[])
+---`Field Private Instance`
+---@field disconnectedWireIds (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Private Instance`
+---@field linksInitialized System.Boolean
+---`Field Private Static`
+---@field MaxConnectionCount System.Int32
+---`Getter Public Instance`
+---@field AlwaysAllowRewiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Locked System.Boolean
+---`Getter Public Instance`
+---@field TemporarilyLocked System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---@field User Barotrauma.Character
+_G['Components']['ConnectionPanel'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['ConnectionPanel'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ConnectionPanel'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ConnectionPanel'].OnMapLoaded = function() end
+
+---`Method Public Instance`
+_G['Components']['ConnectionPanel'].InitializeLinks = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ConnectionPanel'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Components']['ConnectionPanel'].MoveConnectedWires = function(amount) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ConnectionPanel'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ConnectionPanel'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].CanRewire = function() end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].Select = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].Use = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ConnectionPanel'].CheckCharacterSuccess = function(character) end
+
+---`Method Public Instance Virtual`
+---@param element Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['ConnectionPanel'].Load = function(element, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['ConnectionPanel'].Save = function(parentElement) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ConnectionPanel'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ConnectionPanel'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ConnectionPanel'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ConnectionPanel'].ClientEventWrite = function(msg, extraData) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConnectionPanel
+_G['Components']['ConnectionPanel'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ConnectionPanel
+_G['Components']['ConnectionPanel'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96928C60.lua b/Meta/Types/server/_00007FFD96928C60.lua
new file mode 100644
index 0000000..31f8d0e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96928C60.lua
@@ -0,0 +1,107 @@
+---@meta
+---@class Barotrauma.Items.Components.CustomInterface : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field labels (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field signals (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field elementStates (System.Boolean-arr)|(System.Boolean[])
+---`Field Private Instance`
+---@field customInterfaceElementList (System.Collections.Generic.List*1Barotrauma*Items*Components*CustomInterface*CustomInterfaceElement)|(Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Labels System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Signals System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ElementStates System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowInsufficientPowerWarning System.Boolean
+_G['Components']['CustomInterface'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['CustomInterface'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['CustomInterface'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+---@param newLabels (System.String-arr)|(System.String[])
+_G['Components']['CustomInterface'].UpdateLabels = function(newLabels) end
+
+---`Method Private Instance`
+---@param newSignals (System.String-arr)|(System.String[])
+_G['Components']['CustomInterface'].UpdateSignals = function(newSignals) end
+
+---`Method Private Instance`
+---@param element Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+_G['Components']['CustomInterface'].SetPropertyValueToSignal = function(element) end
+
+---`Method Private Instance`
+---@param element Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+_G['Components']['CustomInterface'].SetSignalToPropertyValue = function(element) end
+
+---`Method Public Instance Virtual`
+_G['Components']['CustomInterface'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+---@param btnElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+_G['Components']['CustomInterface'].ButtonClicked = function(btnElement) end
+
+---`Method Private Instance`
+---@param tickBoxElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+---@param state System.Boolean
+_G['Components']['CustomInterface'].TickBoxToggled = function(tickBoxElement, state) end
+
+---`Method Private Instance`
+---@param textElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+---@param text System.String
+_G['Components']['CustomInterface'].TextChanged = function(textElement, text) end
+
+---`Method Private Instance`
+---@overload fun(numberInputElement:Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement, value:System.Int32)
+---@param numberInputElement Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement
+---@param value System.Single
+_G['Components']['CustomInterface'].ValueChanged = function(numberInputElement, value) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['CustomInterface'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['CustomInterface'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['CustomInterface'].Save = function(parentElement) end
+
+---`Method Private Static`
+---@param s System.String
+---@param f System.Single-ref
+---@return System.Boolean
+_G['Components']['CustomInterface'].TryParseFloatInvariantCulture = function(s, f) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CustomInterface
+_G['Components']['CustomInterface'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.CustomInterface
+_G['Components']['CustomInterface'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96928F98.lua b/Meta/Types/server/_00007FFD96928F98.lua
new file mode 100644
index 0000000..3305e4a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96928F98.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.Items.Components.DelayComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field signalQueueSize System.Int32
+---`Field Private Instance`
+---@field delayTicks System.Int32
+---`Field Private Instance`
+---@field signalQueue (System.Collections.Generic.Queue*1Barotrauma*Items*Components*DelayComponent*DelayedSignal)|(fun():(Barotrauma.Items.Components.DelayComponent.DelayedSignal))
+---`Field Private Instance`
+---@field prevQueuedSignal Barotrauma.Items.Components.DelayComponent.DelayedSignal
+---`Field Private Instance`
+---@field delay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Delay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResetWhenSignalReceived System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResetWhenDifferentSignalReceived System.Boolean
+_G['Components']['DelayComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['DelayComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['DelayComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DelayComponent
+_G['Components']['DelayComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DelayComponent
+_G['Components']['DelayComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96929150.lua b/Meta/Types/server/_00007FFD96929150.lua
new file mode 100644
index 0000000..2ba9de9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96929150.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.DivideComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['DivideComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['DivideComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DivideComponent
+_G['Components']['DivideComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.DivideComponent
+_G['Components']['DivideComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96929418.lua b/Meta/Types/server/_00007FFD96929418.lua
new file mode 100644
index 0000000..7244327
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96929418.lua
@@ -0,0 +1,52 @@
+---@meta
+---@class Barotrauma.Items.Components.EqualsComponent : Barotrauma.Items.Components.ItemComponent
+---`Field NonPublic Instance`
+---@field output System.String
+---`Field NonPublic Instance`
+---@field falseOutput System.String
+---`Field NonPublic Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field receivedSignal (System.String-arr)|(System.String[])
+---`Field Private Instance`
+---@field signalSender (Barotrauma.Character-arr)|(Barotrauma.Character[])
+---`Field NonPublic Instance`
+---@field timeFrame System.Single
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TimeFrame System.Single
+_G['Components']['EqualsComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['EqualsComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['EqualsComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EqualsComponent
+_G['Components']['EqualsComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EqualsComponent
+_G['Components']['EqualsComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96929600.lua b/Meta/Types/server/_00007FFD96929600.lua
new file mode 100644
index 0000000..a21f5c5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96929600.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Items.Components.ExponentiationComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field exponent System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Exponent System.Single
+_G['Components']['ExponentiationComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ExponentiationComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ExponentiationComponent
+_G['Components']['ExponentiationComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ExponentiationComponent
+_G['Components']['ExponentiationComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96929938.lua b/Meta/Types/server/_00007FFD96929938.lua
new file mode 100644
index 0000000..0042151
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96929938.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Barotrauma.Items.Components.FunctionComponent : Barotrauma.Items.Components.ItemComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Function Barotrauma.Items.Components.FunctionComponent.FunctionType
+_G['Components']['FunctionComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['FunctionComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.FunctionComponent
+_G['Components']['FunctionComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.FunctionComponent
+_G['Components']['FunctionComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96929B20.lua b/Meta/Types/server/_00007FFD96929B20.lua
new file mode 100644
index 0000000..7c0c926
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96929B20.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Items.Components.GreaterComponent : Barotrauma.Items.Components.EqualsComponent
+---`Field Private Instance`
+---@field val1 System.Single
+---`Field Private Instance`
+---@field val2 System.Single
+_G['Components']['GreaterComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['GreaterComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['GreaterComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GreaterComponent
+_G['Components']['GreaterComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GreaterComponent
+_G['Components']['GreaterComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692A218.lua b/Meta/Types/server/_00007FFD9692A218.lua
new file mode 100644
index 0000000..381b958
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692A218.lua
@@ -0,0 +1,164 @@
+---@meta
+---@class Barotrauma.Items.Components.LightComponent : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field sendStateCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field lastSentState System.Boolean
+---`Field Private Instance`
+---@field sendStateTimer System.Single
+---`Field Private Instance`
+---@field lightColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field lightBrightness System.Single
+---`Field Private Instance`
+---@field blinkFrequency System.Single
+---`Field Private Instance`
+---@field pulseFrequency System.Single
+---`Field Private Instance`
+---@field pulseAmount System.Single
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field flicker System.Single
+---`Field Private Instance`
+---@field flickerSpeed System.Single
+---`Field Private Instance`
+---@field castShadows System.Boolean
+---`Field Private Instance`
+---@field drawBehindSubs System.Boolean
+---`Field Private Instance`
+---@field lastToggleSignalTime System.Double
+---`Field Private Instance`
+---@field prevColorSignal System.String
+---`Field Public Instance`
+---@field ParentBody Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field isOn System.Boolean
+---`Field Private Instance`
+---@field turret Barotrauma.Items.Components.Turret
+---`Field Private Instance`
+---@field rotation System.Single
+---`Field Public Instance`
+---@field TemporaryFlickerTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CastShadows System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawBehindSubs System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Flicker System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlickerSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PulseAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BlinkFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreContinuousToggle System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlphaBlend System.Boolean
+---`Getter Public Instance`
+---@field IsRed System.Boolean
+---`Getter Public Instance`
+---@field IsGreen System.Boolean
+---`Getter Public Instance`
+---@field IsBlue System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+_G['Components']['LightComponent'] = {}
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Components']['LightComponent'].SendStateAfterDelay = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['LightComponent'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['LightComponent'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+_G['Components']['LightComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['LightComponent'].OnMapLoaded = function() end
+
+---`Method Public Instance`
+_G['Components']['LightComponent'].CheckIfNeedsUpdate = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['LightComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['LightComponent'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['LightComponent'].Use = function(deltaTime, character) end
+
+---`Method Private Instance`
+_G['Components']['LightComponent'].OnStateChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['LightComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Private Instance`
+---@param target Barotrauma.AITarget
+_G['Components']['LightComponent'].UpdateAITarget = function(target) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['LightComponent'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance`
+_G['Components']['LightComponent'].SetLightSourceTransform = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LightComponent
+_G['Components']['LightComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.LightComponent
+_G['Components']['LightComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692A5E8.lua b/Meta/Types/server/_00007FFD9692A5E8.lua
new file mode 100644
index 0000000..db91d07
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692A5E8.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.Items.Components.MemoryComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field sendStateCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field lastSentValue System.String
+---`Field Private Instance`
+---@field sendStateTimer System.Single
+---`Field Private Instance`
+---@field maxValueLength System.Int32
+---`Field Private Instance`
+---@field value System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxValueLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Value System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Writeable System.Boolean
+_G['Components']['MemoryComponent'] = {}
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Components']['MemoryComponent'].SendStateAfterDelay = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['MemoryComponent'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MemoryComponent'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['MemoryComponent'].OnStateChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['MemoryComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MemoryComponent
+_G['Components']['MemoryComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MemoryComponent
+_G['Components']['MemoryComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692A7F0.lua b/Meta/Types/server/_00007FFD9692A7F0.lua
new file mode 100644
index 0000000..32964d5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692A7F0.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Items.Components.ModuloComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field modulus System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Modulus System.Single
+_G['Components']['ModuloComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ModuloComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ModuloComponent
+_G['Components']['ModuloComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ModuloComponent
+_G['Components']['ModuloComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692AEB0.lua b/Meta/Types/server/_00007FFD9692AEB0.lua
new file mode 100644
index 0000000..24e2525
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692AEB0.lua
@@ -0,0 +1,103 @@
+---@meta
+---@class Barotrauma.Items.Components.MotionSensor : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field rangeX System.Single
+---`Field Private Instance`
+---@field rangeY System.Single
+---`Field Private Instance`
+---@field detectOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field updateTimer System.Single
+---`Field Private Instance`
+---@field targetCharacters (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MotionDetected System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Target Barotrauma.Items.Components.MotionSensor.TargetType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCharacters System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreDead System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeX System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeY System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DetectOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field TransformedDetectOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UpdateInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinimumVelocity System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DetectOwnMotion System.Boolean
+_G['Components']['MotionSensor'] = {}
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['MotionSensor'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['MotionSensor'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['MotionSensor'].TriggersOn = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param triggerFromHumans System.Boolean
+---@param triggerFromPets System.Boolean
+---@param triggerFromMonsters System.Boolean
+---@return System.Boolean
+_G['Components']['MotionSensor'].TriggersOn = function(character, triggerFromHumans, triggerFromPets, triggerFromMonsters) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['MotionSensor'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MotionSensor
+_G['Components']['MotionSensor'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MotionSensor
+_G['Components']['MotionSensor'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692B0A8.lua b/Meta/Types/server/_00007FFD9692B0A8.lua
new file mode 100644
index 0000000..eea46c0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692B0A8.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.MultiplyComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['MultiplyComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['MultiplyComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MultiplyComponent
+_G['Components']['MultiplyComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.MultiplyComponent
+_G['Components']['MultiplyComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692B280.lua b/Meta/Types/server/_00007FFD9692B280.lua
new file mode 100644
index 0000000..528f5c2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692B280.lua
@@ -0,0 +1,33 @@
+---@meta
+---@class Barotrauma.Items.Components.NotComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field signalReceived System.Boolean
+---`Field Private Instance`
+---@field continuousOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContinuousOutput System.Boolean
+_G['Components']['NotComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['NotComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['NotComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NotComponent
+_G['Components']['NotComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NotComponent
+_G['Components']['NotComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692B438.lua b/Meta/Types/server/_00007FFD9692B438.lua
new file mode 100644
index 0000000..d4fc3be
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692B438.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Items.Components.OrComponent : Barotrauma.Items.Components.BooleanOperatorComponent
+_G['Components']['OrComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param numTrueInputs System.Int32
+---@return System.Boolean
+_G['Components']['OrComponent'].GetOutput = function(numTrueInputs) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OrComponent
+_G['Components']['OrComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OrComponent
+_G['Components']['OrComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692B7A0.lua b/Meta/Types/server/_00007FFD9692B7A0.lua
new file mode 100644
index 0000000..f90cb72
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692B7A0.lua
@@ -0,0 +1,36 @@
+---@meta
+---@class Barotrauma.Items.Components.OscillatorComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field frequency System.Single
+---`Field Private Instance`
+---@field phase System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutputType Barotrauma.Items.Components.OscillatorComponent.WaveType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Frequency System.Single
+_G['Components']['OscillatorComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OscillatorComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['OscillatorComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OscillatorComponent
+_G['Components']['OscillatorComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OscillatorComponent
+_G['Components']['OscillatorComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692B9A8.lua b/Meta/Types/server/_00007FFD9692B9A8.lua
new file mode 100644
index 0000000..6231146
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692B9A8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Barotrauma.Items.Components.OxygenDetector : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field prevSentOxygenValue System.Int32
+---`Field Public Static`
+---@field LowOxygenPercentage System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OxygenSignal System.String
+_G['Components']['OxygenDetector'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['OxygenDetector'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenDetector
+_G['Components']['OxygenDetector'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.OxygenDetector
+_G['Components']['OxygenDetector'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692BDB0.lua b/Meta/Types/server/_00007FFD9692BDB0.lua
new file mode 100644
index 0000000..79fefee
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692BDB0.lua
@@ -0,0 +1,75 @@
+---@meta
+---@class Barotrauma.Items.Components.RegExFindComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field expression System.String
+---`Field Private Instance`
+---@field receivedSignal System.String
+---`Field Private Instance`
+---@field previousReceivedSignal System.String
+---`Field Private Instance`
+---@field previousResult System.Boolean
+---`Field Private Instance`
+---@field previousGroups System.Text.RegularExpressions.GroupCollection
+---`Field Private Instance`
+---@field regex System.Text.RegularExpressions.Regex
+---`Field Private Instance`
+---@field nonContinuousOutputSent System.Boolean
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Static`
+---@field timeout System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseCaptureGroup System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutputEmptyCaptureGroup System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContinuousOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Expression System.String
+_G['Components']['RegExFindComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RegExFindComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['RegExFindComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RegExFindComponent
+---@return Barotrauma.Items.Components.RegExFindComponent
+_G['Components']['RegExFindComponent'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9692C1A8.lua b/Meta/Types/server/_00007FFD9692C1A8.lua
new file mode 100644
index 0000000..19cd8a6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692C1A8.lua
@@ -0,0 +1,120 @@
+---@meta
+---@class Barotrauma.Items.Components.RelayComponent : Barotrauma.Items.Components.PowerTransfer
+---`Field Private Instance`
+---@field maxPower System.Single
+---`Field Private Instance`
+---@field isOn System.Boolean
+---`Field Private Instance`
+---@field prevVoltage System.Single
+---`Field Private Instance`
+---@field newVoltage System.Nullable*1System*Single
+---`Field Private Instance`
+---@field internalLoadBuffer System.Single
+---`Field Private Instance`
+---@field prevInternalLoad System.Single
+---`Field Private Instance`
+---@field prevExternalLoad System.Single
+---`Field Private Instance`
+---@field bufferDiff System.Single
+---`Field Private Instance`
+---@field thirdInverseMax System.Single
+---`Field Private Instance`
+---@field loadEqnConstant System.Single
+---`Field Private Static`
+---@field connectionPairs (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Getter NonPublic Instance Virtual`
+---@field Priority Barotrauma.Items.Components.PowerPriority
+---`Getter Public Instance`
+---@field DisplayLoad System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPower System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsOn System.Boolean
+_G['Components']['RelayComponent'] = {}
+
+---`Method Private Instance`
+_G['Components']['RelayComponent'].SetLoadFormulaValues = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['RelayComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RelayComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param connection? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['RelayComponent'].GetCurrentPowerConsumption = function(connection) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['RelayComponent'].RelayCanOutput = function() end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param load? System.Single
+---@return Barotrauma.Items.Components.PowerRange
+_G['Components']['RelayComponent'].MinMaxPowerOut = function(connection, load) end
+
+---`Method Public Instance Virtual`
+---@param connection Barotrauma.Items.Components.Connection
+---@param power System.Single
+---@param minMaxPower Barotrauma.Items.Components.PowerRange
+---@param load System.Single
+---@return System.Single
+_G['Components']['RelayComponent'].GetConnectionPowerOut = function(connection, power, minMaxPower, load) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Items.Components.Connection
+_G['Components']['RelayComponent'].GridResolved = function(conn) end
+
+---`Method Private Instance`
+---@param addToBuffer System.Single
+---@param newVoltage System.Single
+_G['Components']['RelayComponent'].UpdateBuffer = function(addToBuffer, newVoltage) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['RelayComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+---@param on System.Boolean
+---@param isNetworkMessage System.Boolean
+_G['Components']['RelayComponent'].SetState = function(on, isNetworkMessage) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['RelayComponent'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['RelayComponent'].ClientEventRead = function(msg, sendingTime) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.RelayComponent
+---@return Barotrauma.Items.Components.RelayComponent
+_G['Components']['RelayComponent'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9692C550.lua b/Meta/Types/server/_00007FFD9692C550.lua
new file mode 100644
index 0000000..b2bd35a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692C550.lua
@@ -0,0 +1,39 @@
+---@meta
+---@class Barotrauma.Items.Components.SignalCheckComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetSignal System.String
+_G['Components']['SignalCheckComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['SignalCheckComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SignalCheckComponent
+_G['Components']['SignalCheckComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SignalCheckComponent
+_G['Components']['SignalCheckComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692C830.lua b/Meta/Types/server/_00007FFD9692C830.lua
new file mode 100644
index 0000000..84aff89
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692C830.lua
@@ -0,0 +1,47 @@
+---@meta
+---@class Barotrauma.Items.Components.SmokeDetector : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field fireCheckTimer System.Single
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Field Private Static`
+---@field FireCheckInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FireInRange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+_G['Components']['SmokeDetector'] = {}
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['SmokeDetector'].IsFireInRange = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['SmokeDetector'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SmokeDetector
+_G['Components']['SmokeDetector'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SmokeDetector
+_G['Components']['SmokeDetector'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692CA60.lua b/Meta/Types/server/_00007FFD9692CA60.lua
new file mode 100644
index 0000000..e5eb695
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692CA60.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Items.Components.SubtractComponent : Barotrauma.Items.Components.ArithmeticComponent
+_G['Components']['SubtractComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param signal1 System.Single
+---@param signal2 System.Single
+---@return System.Single
+_G['Components']['SubtractComponent'].Calculate = function(signal1, signal2) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SubtractComponent
+_G['Components']['SubtractComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.SubtractComponent
+_G['Components']['SubtractComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692CF38.lua b/Meta/Types/server/_00007FFD9692CF38.lua
new file mode 100644
index 0000000..246b3b2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692CF38.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.Items.Components.Terminal : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field messageHistory (System.Collections.Generic.List*1Barotrauma*Items*Components*TerminalMessage)|(Barotrauma.Items.Components.TerminalMessage[])
+---`Field Private Instance`
+---@field welcomeMessage System.String
+---`Field Private Instance`
+---@field textColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field prevColorSignal System.String
+---`Field Private Static`
+---@field MaxMessageLength System.Int32
+---`Field Private Static`
+---@field MaxMessages System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayedWelcomeMessage Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WelcomeMessage System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowMessage System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseMonospaceFont System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoHideScrollbar System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WelcomeMessageDisplayed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LineStartSymbol System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Readonly System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoScrollToBottom System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field OutputValue System.String
+_G['Components']['Terminal'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Terminal'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance`
+_G['Components']['Terminal'].SyncHistory = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Terminal'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+---@param input System.String
+---@param addToHistory System.Boolean
+---@param color Microsoft.Xna.Framework.Color
+---@param isWelcomeMessage System.Boolean
+_G['Components']['Terminal'].ShowOnDisplay = function(input, addToHistory, color, isWelcomeMessage) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Terminal'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Terminal'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Terminal'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Terminal'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Terminal
+_G['Components']['Terminal'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Terminal
+_G['Components']['Terminal'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692D370.lua b/Meta/Types/server/_00007FFD9692D370.lua
new file mode 100644
index 0000000..94a68e6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692D370.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Items.Components.TrigonometricFunctionComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field receivedSignal (System.Single-arr)|(System.Single[])
+---`Field Private Instance`
+---@field timeSinceReceived (System.Single-arr)|(System.Single[])
+---`Field NonPublic Instance`
+---@field signalSender Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Function Barotrauma.Items.Components.TrigonometricFunctionComponent.FunctionType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseRadians System.Boolean
+_G['Components']['TrigonometricFunctionComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['TrigonometricFunctionComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['TrigonometricFunctionComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TrigonometricFunctionComponent
+_G['Components']['TrigonometricFunctionComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TrigonometricFunctionComponent
+_G['Components']['TrigonometricFunctionComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692D670.lua b/Meta/Types/server/_00007FFD9692D670.lua
new file mode 100644
index 0000000..90ef761
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692D670.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.Items.Components.WaterDetector : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field prevSentWaterPercentageValue System.Int32
+---`Field Private Instance`
+---@field waterPercentageSignal System.String
+---`Field Private Instance`
+---@field isInWater System.Boolean
+---`Field Private Instance`
+---@field stateSwitchDelay System.Single
+---`Field Private Instance`
+---@field maxOutputLength System.Int32
+---`Field Private Instance`
+---@field output System.String
+---`Field Private Instance`
+---@field falseOutput System.String
+---`Field Private Static`
+---@field StateSwitchInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxOutputLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Output System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FalseOutput System.String
+---`Getter Public Instance`
+---@field WaterDetected System.Boolean
+---`Getter Public Instance`
+---@field WaterPercentage System.Int32
+_G['Components']['WaterDetector'] = {}
+
+---`Method Public Static`
+---@param hull Barotrauma.Hull
+---@return System.Int32
+_G['Components']['WaterDetector'].GetWaterPercentage = function(hull) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['WaterDetector'].Update = function(deltaTime, cam) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.WaterDetector
+_G['Components']['WaterDetector'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.WaterDetector
+_G['Components']['WaterDetector'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692DBE8.lua b/Meta/Types/server/_00007FFD9692DBE8.lua
new file mode 100644
index 0000000..44ebb6f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692DBE8.lua
@@ -0,0 +1,140 @@
+---@meta
+---@class Barotrauma.Items.Components.WifiComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field range System.Single
+---`Field Private Instance`
+---@field channel System.Int32
+---`Field Private Instance`
+---@field chatMsgCooldown System.Single
+---`Field Private Instance`
+---@field prevSignal System.String
+---`Field Private Instance`
+---@field channelMemory (System.Int32-arr)|(System.Int32[])
+---`Field Private Instance`
+---@field signalInConnection Barotrauma.Items.Components.Connection
+---`Field Private Instance`
+---@field signalOutConnection Barotrauma.Items.Components.Connection
+---`Field Private Instance`
+---@field jamTimer System.Single
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Items*Components*WifiComponent)|(Barotrauma.Items.Components.WifiComponent[])
+---`Field Private Static`
+---@field ChannelMemorySize System.Int32
+---`Field Private Static`
+---@field MinChannel System.Int32
+---`Field Private Static`
+---@field MaxChannel System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Channel System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowCrossTeamCommunication System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinkToChat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinChatMessageInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DiscardDuplicateChatMessages System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JamTimer System.Single
+_G['Components']['WifiComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['WifiComponent'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['WifiComponent'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['WifiComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@overload fun(ignoreJamming?:System.Boolean):(System.Boolean)
+---@param sender Barotrauma.Items.Components.WifiComponent
+---@return System.Boolean
+_G['Components']['WifiComponent'].CanTransmit = function(sender) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*WifiComponent)|(fun():(Barotrauma.Items.Components.WifiComponent))
+_G['Components']['WifiComponent'].GetReceiversInRange = function() end
+
+---`Method Public Instance`
+---@param sender Barotrauma.Items.Components.WifiComponent
+---@return System.Boolean
+_G['Components']['WifiComponent'].CanReceive = function(sender) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*WifiComponent)|(fun():(Barotrauma.Items.Components.WifiComponent))
+_G['Components']['WifiComponent'].GetTransmittersInRange = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['WifiComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@return System.Int32
+_G['Components']['WifiComponent'].GetChannelMemory = function(index) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param value System.Int32
+_G['Components']['WifiComponent'].SetChannelMemory = function(index, value) end
+
+---`Method Public Instance`
+---@param signal Barotrauma.Items.Components.Signal
+---@param sentFromChat System.Boolean
+_G['Components']['WifiComponent'].TransmitSignal = function(signal, sentFromChat) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['WifiComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['WifiComponent'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['WifiComponent'].Save = function(parentElement) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.WifiComponent
+---@return Barotrauma.Items.Components.WifiComponent
+_G['Components']['WifiComponent'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9692E408.lua b/Meta/Types/server/_00007FFD9692E408.lua
new file mode 100644
index 0000000..cb00570
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692E408.lua
@@ -0,0 +1,249 @@
+---@meta
+---@class Barotrauma.Items.Components.Wire : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field shouldClearConnections System.Boolean
+---`Field Private Instance`
+---@field nodes (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Private Instance`
+---@field sections (System.Collections.Generic.List*1Barotrauma*Items*Components*Wire*WireSection)|(Barotrauma.Items.Components.Wire.WireSection[])
+---`Field Private Instance`
+---@field connections (Barotrauma.Items.Components.Connection-arr)|(Barotrauma.Items.Components.Connection[])
+---`Field Private Instance`
+---@field canPlaceNode System.Boolean
+---`Field Private Instance`
+---@field newNodePos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field sectionExtents Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field currLength System.Single
+---`Field Public Instance`
+---@field Hidden System.Boolean
+---`Field Private Instance`
+---@field editNodeDelay System.Single
+---`Field Private Instance`
+---@field locked System.Boolean
+---`Field Private Static`
+---@field MaxAttachDistance System.Single
+---`Field Private Static`
+---@field MinNodeDistance System.Single
+---`Field Private Static`
+---@field MaxNodeCount System.Int32
+---`Field Private Static`
+---@field MaxNodesPerNetworkEvent System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Locked System.Boolean
+---`Getter Public Instance`
+---@field Connections (Barotrauma.Items.Components.Connection-arr)|(Barotrauma.Items.Components.Connection[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Length System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxLength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HiddenInGame System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NoAutoLock System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UseSpriteDepth System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DropOnConnect System.Boolean
+_G['Components']['Wire'] = {}
+
+---`Method Public Instance`
+_G['Components']['Wire'].CreateNetworkEvent = function() end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['Wire'].ValidateEventData = function(data) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Wire'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Wire'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance`
+---@param connection Barotrauma.Items.Components.Connection
+---@return Barotrauma.Items.Components.Connection
+_G['Components']['Wire'].OtherConnection = function(connection) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Components']['Wire'].IsConnectedTo = function(item) end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item)
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Wire'].RemoveConnection = function(connection) end
+
+---`Method Public Instance`
+---@param newConnection Barotrauma.Items.Components.Connection
+---@param addNode? System.Boolean
+---@param sendNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['Components']['Wire'].TryConnect = function(newConnection, addNode, sendNetworkEvent) end
+
+---`Method Public Instance`
+---@param newConnection Barotrauma.Items.Components.Connection
+---@param connectionIndex System.Int32
+---@param addNode? System.Boolean
+---@param sendNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['Components']['Wire'].Connect = function(newConnection, connectionIndex, addNode, sendNetworkEvent) end
+
+---`Method Private Instance`
+---@param newConnection Barotrauma.Items.Components.Connection
+---@param selectedIndex System.Int32
+_G['Components']['Wire'].AddNode = function(newConnection, selectedIndex) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wire'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wire'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Wire'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Wire'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].GetAttachPosition = function(user) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Wire'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Wire'].SecondaryUse = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Wire'].Pick = function(picker) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['Components']['Wire'].GetNodes = function() end
+
+---`Method Public Instance`
+---@param nodes (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['Components']['Wire'].SetNodes = function(nodes) end
+
+---`Method Public Instance`
+---@param index System.Int32
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].MoveNode = function(index, amount) end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].MoveNodes = function(amount) end
+
+---`Method Public Instance`
+_G['Components']['Wire'].UpdateSections = function() end
+
+---`Method Private Instance`
+_G['Components']['Wire'].CalculateExtents = function() end
+
+---`Method Public Instance`
+---@param user? Barotrauma.Character
+_G['Components']['Wire'].ClearConnections = function(user) end
+
+---`Method Private Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Wire'].RoundNode = function(position) end
+
+---`Method Public Instance`
+_G['Components']['Wire'].SetConnectedDirty = function() end
+
+---`Method Private Instance`
+_G['Components']['Wire'].CleanNodes = function() end
+
+---`Method Public Instance`
+_G['Components']['Wire'].FixNodeEnds = function() end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param maxDist System.Single
+---@param closestDist System.Single-ref
+---@return System.Int32
+_G['Components']['Wire'].GetClosestNodeIndex = function(pos, maxDist, closestDist) end
+
+---`Method Private Instance`
+---@param mousePos Microsoft.Xna.Framework.Vector2
+---@param maxDist System.Single
+---@param closestDist System.Single-ref
+---@return System.Int32
+_G['Components']['Wire'].GetClosestSectionIndex = function(mousePos, maxDist, closestDist) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Wire'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Wire'].FlipY = function(relativeToSub) end
+
+---`Method Public Static`
+---@param element System.Xml.Linq.XElement
+---@return (System.Collections.Generic.IEnumerable*1Microsoft*Xna*Framework*Vector2)|(fun():(Microsoft.Xna.Framework.Vector2))
+_G['Components']['Wire'].ExtractNodes = function(element) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Wire'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Wire'].Save = function(parentElement) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Wire'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Wire'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Wire'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Wire
+_G['Components']['Wire'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692E6B8.lua b/Meta/Types/server/_00007FFD9692E6B8.lua
new file mode 100644
index 0000000..ade06b0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692E6B8.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Items.Components.XorComponent : Barotrauma.Items.Components.BooleanOperatorComponent
+_G['Components']['XorComponent'] = {}
+
+---`Method NonPublic Instance Virtual`
+---@param numTrueInputs System.Int32
+---@return System.Boolean
+_G['Components']['XorComponent'].GetOutput = function(numTrueInputs) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.XorComponent
+_G['Components']['XorComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.XorComponent
+_G['Components']['XorComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9692F160.lua b/Meta/Types/server/_00007FFD9692F160.lua
new file mode 100644
index 0000000..0aea172
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692F160.lua
@@ -0,0 +1,185 @@
+---@meta
+---@class Barotrauma.Items.Components.DockingPort : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field overlaySprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field dockingState System.Single
+---`Field Private Instance`
+---@field joint FarseerPhysics.Dynamics.Joints.Joint
+---`Field Private Instance`
+---@field hulls (Barotrauma.Hull-arr)|(Barotrauma.Hull[])
+---`Field Private Instance`
+---@field gap Barotrauma.Gap
+---`Field Private Instance`
+---@field bodies (FarseerPhysics.Dynamics.Body-arr)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field outsideBlocker FarseerPhysics.Dynamics.Fixture
+---`Field Private Instance`
+---@field doorBody FarseerPhysics.Dynamics.Body
+---`Field Private Instance`
+---@field dockingCooldown System.Single
+---`Field Private Instance`
+---@field docked System.Boolean
+---`Field Private Instance`
+---@field obstructedWayPointsDisabled System.Boolean
+---`Field Private Instance`
+---@field forceLockTimer System.Single
+---`Field Private Instance`
+---@field OnDocked (System.Action)|(fun())
+---`Field Private Instance`
+---@field OnUnDocked (System.Action)|(fun())
+---`Field Private Instance`
+---@field outpostAutoDockingPromptShown System.Boolean
+---`Field Private Instance`
+---@field allowOutpostAutoDocking Barotrauma.Items.Components.DockingPort.AllowOutpostAutoDocking
+---`Field Private Instance`
+---@field initialized System.Boolean
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Items*Components*DockingPort)|(Barotrauma.Items.Components.DockingPort[])
+---`Field Private Static`
+---@field ForceLockDelay System.Single
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*DockingPort)|(fun():(Barotrauma.Items.Components.DockingPort))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockingDir System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceTolerance Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DockedDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MainDockingPort System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyEffectsOnDocking System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceDockingDirection Barotrauma.Items.Components.DockingPort.DirectionType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DockingTarget Barotrauma.Items.Components.DockingPort
+---`Getter Public Instance`
+---@field AtStartExit System.Boolean
+---`Getter Public Instance`
+---@field AtEndExit System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Door Barotrauma.Items.Components.Door
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Docked System.Boolean
+---`Getter Public Instance`
+---@field IsLocked System.Boolean
+---`Getter Public Instance`
+---@field AnotherPortInProximity System.Boolean
+_G['Components']['DockingPort'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['DockingPort'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['DockingPort'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['DockingPort'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['DockingPort'].FlipY = function(relativeToSub) end
+
+---`Method Private Instance`
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].FindAdjacentPort = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].AttemptDock = function() end
+
+---`Method Public Instance`
+---@param target Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].Dock = function(target) end
+
+---`Method Public Instance`
+---@param isNetworkMessage System.Boolean
+---@param applyEffects? System.Boolean
+_G['Components']['DockingPort'].Lock = function(isNetworkMessage, applyEffects) end
+
+---`Method Private Instance`
+---@param useWeldJoint System.Boolean
+_G['Components']['DockingPort'].CreateJoint = function(useWeldJoint) end
+
+---`Method Public Instance`
+---@param dockingTarget? Barotrauma.Items.Components.DockingPort
+---@return System.Int32
+_G['Components']['DockingPort'].GetDir = function(dockingTarget) end
+
+---`Method Private Instance`
+---@return System.Int32
+_G['Components']['DockingPort'].GetForcedDockingDir = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].ConnectWireBetweenPorts = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].CreateDoorBody = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].CreateHulls = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].LinkHullsToGaps = function() end
+
+---`Method Public Instance`
+---@param applyEffects? System.Boolean
+_G['Components']['DockingPort'].Undock = function(applyEffects) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['DockingPort'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['DockingPort'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+_G['Components']['DockingPort'].InitializeLinks = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['DockingPort'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['DockingPort'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.DockingPort
+---@return Barotrauma.Items.Components.DockingPort
+_G['Components']['DockingPort'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9692F7C0.lua b/Meta/Types/server/_00007FFD9692F7C0.lua
new file mode 100644
index 0000000..918f29b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9692F7C0.lua
@@ -0,0 +1,129 @@
+---@meta
+---@class Barotrauma.Items.Components.ElectricalDischarger : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field nodes (System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger*Node)|(Barotrauma.Items.Components.ElectricalDischarger.Node[])
+---`Field Private Instance`
+---@field charactersInRange (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*Items*Components*ElectricalDischarger*Node)|(System.ValueTuple*1Barotrauma*Character*1Barotrauma*Items*Components*ElectricalDischarger*Node[])
+---`Field Private Instance`
+---@field charging System.Boolean
+---`Field Private Instance`
+---@field timer System.Single
+---`Field Private Instance`
+---@field attack Barotrauma.Attack
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field reloadTimer System.Single
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger)|(Barotrauma.Items.Components.ElectricalDischarger[])
+---`Field Private Static`
+---@field MaxNodes System.Int32
+---`Field Private Static`
+---@field MaxNodeDistance System.Single
+---`Getter Public Static`
+---@field List (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger)|(fun():(Barotrauma.Items.Components.ElectricalDischarger))
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeMultiplierInWalls System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RaycastRange System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Duration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutdoorsOnly System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreUser System.Boolean
+---`Getter Public Instance`
+---@field Nodes (System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger*Node)|(fun():(Barotrauma.Items.Components.ElectricalDischarger.Node))
+_G['Components']['ElectricalDischarger'] = {}
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ElectricalDischarger'].Use = function(deltaTime, character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ElectricalDischarger'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param conn? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['ElectricalDischarger'].GetCurrentPowerConsumption = function(conn) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ElectricalDischarger'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+_G['Components']['ElectricalDischarger'].Discharge = function() end
+
+---`Method Public Instance`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param range System.Single
+_G['Components']['ElectricalDischarger'].FindNodes = function(worldPosition, range) end
+
+---`Method Private Instance`
+---@param entitiesInRange (System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---@param currPos Microsoft.Xna.Framework.Vector2
+---@param parentNodeIndex System.Int32
+---@param currentRange System.Single
+_G['Components']['ElectricalDischarger'].FindNodes = function(entitiesInRange, currPos, parentNodeIndex, currentRange) end
+
+---`Method Private Instance`
+---@param currPos Microsoft.Xna.Framework.Vector2
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@param variance System.Single
+---@param parentNodeIndex System.Int32-ref
+_G['Components']['ElectricalDischarger'].AddNodesBetweenPoints = function(currPos, targetPos, variance, parentNodeIndex) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ElectricalDischarger'].ReceiveSignal = function(signal, connection) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ElectricalDischarger'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ElectricalDischarger'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.ElectricalDischarger
+---@return Barotrauma.Items.Components.ElectricalDischarger
+_G['Components']['ElectricalDischarger'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96940630.lua b/Meta/Types/server/_00007FFD96940630.lua
new file mode 100644
index 0000000..f33c0fe
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96940630.lua
@@ -0,0 +1,119 @@
+---@meta
+---@class Barotrauma.Items.Components.EntitySpawnerComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field spawnTimer System.Single
+---`Field Private Instance`
+---@field spawnTimerGoal System.Nullable*1System*Single
+---`Field Private Instance`
+---@field spawnedAmount System.Int32
+---`Field Private Instance`
+---@field preloadedCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field preloadInitiated System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemIdentifier System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpeciesName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnlySpawnWhenCrewInRange System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaShape Barotrauma.Items.Components.EntitySpawnerComponent.AreaShape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaBounds Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaRadius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrewAreaOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaShape Barotrauma.Items.Components.EntitySpawnerComponent.AreaShape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaBounds Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaRadius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAreaOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnTimerRange Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnAmountRange Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumAmountInArea System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumAmountRangePadding System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CanSpawn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PreloadCharacter System.Boolean
+_G['Components']['EntitySpawnerComponent'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['EntitySpawnerComponent'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['EntitySpawnerComponent'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['EntitySpawnerComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Method Private Instance`
+---@param size Microsoft.Xna.Framework.Vector2
+---@param offset Microsoft.Xna.Framework.Vector2
+---@param draw System.Boolean
+---@return Microsoft.Xna.Framework.RectangleF
+_G['Components']['EntitySpawnerComponent'].GetAreaRectangle = function(size, offset, draw) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['EntitySpawnerComponent'].CanSpawnMore = function() end
+
+---`Method Private Instance`
+---@param worldPos Microsoft.Xna.Framework.Vector2
+---@param crewArea? System.Boolean
+---@param rangePad? System.Boolean
+---@return System.Boolean
+_G['Components']['EntitySpawnerComponent'].IsInRange = function(worldPos, crewArea, rangePad) end
+
+---`Method Public Instance`
+_G['Components']['EntitySpawnerComponent'].Spawn = function() end
+
+---`Method Private Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param onSpawn? (System.Action*1Barotrauma*Character)|(fun(obj:Barotrauma.Character))
+_G['Components']['EntitySpawnerComponent'].SpawnCharacter = function(pos, onSpawn) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EntitySpawnerComponent
+_G['Components']['EntitySpawnerComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.EntitySpawnerComponent
+_G['Components']['EntitySpawnerComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96940D08.lua b/Meta/Types/server/_00007FFD96940D08.lua
new file mode 100644
index 0000000..d0428f5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96940D08.lua
@@ -0,0 +1,134 @@
+---@meta
+---@class Barotrauma.Items.Components.GeneticMaterial : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field materialName Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field targetCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field selectedEffect Barotrauma.AfflictionPrefab
+---`Field Private Instance`
+---@field selectedTaintedEffect Barotrauma.AfflictionPrefab
+---`Field Private Instance`
+---@field tainted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Effect System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TaintedEffect Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tainted System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SetTaintedOnDeath System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanBeUntainted System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedTaintedEffect Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnCombineMin System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnCombineMax System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnLowQualityCombine System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ConditionIncreaseOnHighQualityCombine System.Single
+---`Getter Private Instance`
+---@field AllMaterialTypes (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Private Instance`
+---@field NestedMaterial Barotrauma.Items.Components.GeneticMaterial
+---`Getter Private Instance`
+---@field IsCombined System.Boolean
+_G['Components']['GeneticMaterial'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['GeneticMaterial'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return System.Boolean
+_G['Components']['GeneticMaterial'].SharesTypeWith = function(otherGeneticMaterial) end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return Barotrauma.ItemPrefab
+_G['Components']['GeneticMaterial'].GetSharedTypeOrDefault = function(otherGeneticMaterial) end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return Barotrauma.Items.Components.GeneticMaterial.CombineResult
+_G['Components']['GeneticMaterial'].GetCombineRefineResult = function(otherGeneticMaterial) end
+
+---`Method Public Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@return System.Boolean
+_G['Components']['GeneticMaterial'].CanBeCombinedWith = function(otherGeneticMaterial) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['GeneticMaterial'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['GeneticMaterial'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@param user Barotrauma.Character
+---@param itemToDestroy Barotrauma.Item-ref
+---@return Barotrauma.Items.Components.GeneticMaterial.CombineResult
+_G['Components']['GeneticMaterial'].Combine = function(otherGeneticMaterial, user, itemToDestroy) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetCombinedEffectStrength = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetCombinedTaintedEffectStrength = function() end
+
+---`Method Private Instance`
+---@param otherGeneticMaterial Barotrauma.Items.Components.GeneticMaterial
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetTaintedProbabilityOnRefine = function(otherGeneticMaterial, user) end
+
+---`Method Private Static`
+---@param user Barotrauma.Character
+---@return System.Single
+_G['Components']['GeneticMaterial'].GetTaintedProbabilityOnCombine = function(user) end
+
+---`Method Public Instance`
+---@param newValue System.Boolean
+---@param affectsNestedGene? System.Boolean
+_G['Components']['GeneticMaterial'].SetTainted = function(newValue, affectsNestedGene) end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+---@param element System.Xml.Linq.XElement
+---@return Barotrauma.LocalizedString
+_G['Components']['GeneticMaterial'].TryCreateName = function(prefab, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GeneticMaterial
+_G['Components']['GeneticMaterial'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.GeneticMaterial
+_G['Components']['GeneticMaterial'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96941748.lua b/Meta/Types/server/_00007FFD96941748.lua
new file mode 100644
index 0000000..bc6cc89
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96941748.lua
@@ -0,0 +1,229 @@
+---@meta
+---@class Barotrauma.Items.Components.Growable : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field serverHealthUpdateTimer System.Int32
+---`Field Public Instance`
+---@field FailedRectangles (System.Collections.Generic.HashSet*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Instance`
+---@field accelerateDeath System.Boolean
+---`Field Private Instance`
+---@field health System.Single
+---`Field Private Instance`
+---@field flowerVariants System.Int32
+---`Field Private Instance`
+---@field leafVariants System.Int32
+---`Field Private Instance`
+---@field flowerTiles (System.Int32-arr)|(System.Int32[])
+---`Field Private Instance`
+---@field productDelay System.Int32
+---`Field Private Instance`
+---@field vineDelay System.Int32
+---`Field Private Instance`
+---@field fireCheckCooldown System.Single
+---`Field Public Instance`
+---@field ProducedItems (System.Collections.Generic.List*1Barotrauma*Items*Components*ProducedItem)|(Barotrauma.Items.Components.ProducedItem[])
+---`Field Public Instance`
+---@field Vines (System.Collections.Generic.List*1Barotrauma*Items*Components*VineTile)|(Barotrauma.Items.Components.VineTile[])
+---`Field Private Instance`
+---@field ProducedSeed Barotrauma.Items.Components.ProducedItem
+---`Field Private Static`
+---@field MinFlowerScale System.Single
+---`Field Private Static`
+---@field MaxFlowerScale System.Single
+---`Field Private Static`
+---@field MinLeafScale System.Single
+---`Field Private Static`
+---@field MaxLeafScale System.Single
+---`Field Private Static`
+---@field serverHealthUpdateDelay System.Int32
+---`Field Private Static`
+---@field increasedDeathSpeed System.Single
+---`Field Private Static`
+---@field maxProductDelay System.Int32
+---`Field Private Static`
+---@field maxVineGrowthDelay System.Int32
+---`Field Private Static`
+---@field VineChunkSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrowthSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FloodTolerance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hardiness System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeedRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProductRate System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MutationProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowerTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FlowerQuantity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseFlowerScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseLeafScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LeafTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LeafProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VineTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumVines System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VineScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeadTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GrowthWeights Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FireVulnerability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Health System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Decayed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FullyGrown System.Boolean
+_G['Components']['Growable'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Growable'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Growable'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+---@param random? System.Random
+_G['Components']['Growable'].GenerateFlowerTiles = function(random) end
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['Growable'].LoadVines = function(element) end
+
+---`Method Public Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+_G['Components']['Growable'].OnGrowthTick = function(planter, slot) end
+
+---`Method Private Instance`
+_G['Components']['Growable'].UpdateBranchHealth = function() end
+
+---`Method Private Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+_G['Components']['Growable'].TryGenerateProduct = function(planter, slot) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Growable'].CheckPlantState = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Growable'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Growable'].UpdateFires = function(deltaTime) end
+
+---`Method Private Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+_G['Components']['Growable'].GrowVines = function(planter, slot) end
+
+---`Method Private Instance`
+_G['Components']['Growable'].GenerateStem = function() end
+
+---`Method Private Instance`
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+---@param random? System.Random
+---@param flowerRandom? System.Random
+_G['Components']['Growable'].TryGenerateBranches = function(planter, slot, random, flowerRandom) end
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param planter Barotrauma.Items.Components.Planter
+---@param slot Barotrauma.Items.Components.PlantSlot
+---@return System.Boolean
+_G['Components']['Growable'].CollidesWithWorld = function(rect, planter, slot) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Growable'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Growable'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Growable'].CanGrowMore = function() end
+
+---`Method Public Static`
+---@param min System.Int32
+---@param max System.Int32
+---@param random? System.Random
+---@return System.Int32
+_G['Components']['Growable'].RandomInt = function(min, max, random) end
+
+---`Method Public Static`
+---@param min System.Double
+---@param max System.Double
+---@param random? System.Random
+---@return System.Double
+_G['Components']['Growable'].RandomDouble = function(min, max, random) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Growable
+---@return Barotrauma.Items.Components.Growable
+_G['Components']['Growable'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969419E8.lua b/Meta/Types/server/_00007FFD969419E8.lua
new file mode 100644
index 0000000..a3c7c68
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969419E8.lua
@@ -0,0 +1,31 @@
+---@meta
+---@class Barotrauma.Items.Components.ProducedItem : System.Object
+---`Field Public Instance`
+---@field StatusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Public Instance`
+---@field Producer Barotrauma.Item
+---`Field Public Instance`
+---@field Prefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Probability System.Single
+_G['Components']['ProducedItem'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ProducedItem'].LoadSubElements = function(element) end
+
+---`Constructor Public Instance`
+---@overload fun(producer:Barotrauma.Item, prefab:Barotrauma.ItemPrefab, probability:System.Single):Barotrauma.Items.Components.ProducedItem
+---@param producer Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ProducedItem
+_G['Components']['ProducedItem'] = function(producer, element) end
+
+---`Constructor Public Instance`
+---@overload fun(producer:Barotrauma.Item, prefab:Barotrauma.ItemPrefab, probability:System.Single):Barotrauma.Items.Components.ProducedItem
+---@param producer Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ProducedItem
+_G['Components']['ProducedItem'].__new = function(producer, element) end
+
diff --git a/Meta/Types/server/_00007FFD96941BA0.lua b/Meta/Types/server/_00007FFD96941BA0.lua
new file mode 100644
index 0000000..ee70eeb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96941BA0.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.Items.Components.GrowthSideExtension : System.Object
+_G['GrowthSideExtension'] = {}
+
+---`Method Public Static`
+---@param side Barotrauma.Items.Components.TileSide
+---@return System.Int32
+_G['GrowthSideExtension'].Count = function(side) end
+
+---`Method Public Static`
+---@param side Barotrauma.Items.Components.TileSide
+---@return Barotrauma.Items.Components.TileSide
+_G['GrowthSideExtension'].GetOppositeSide = function(side) end
+
diff --git a/Meta/Types/server/_00007FFD96942910.lua b/Meta/Types/server/_00007FFD96942910.lua
new file mode 100644
index 0000000..232ed22
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96942910.lua
@@ -0,0 +1,331 @@
+---@meta
+---@class Barotrauma.Items.Components.ItemContainer : Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field OnContainedItemsChanged Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemContainer
+---`Field Private Instance`
+---@field alwaysContainedItemsSpawned System.Boolean
+---`Field Public Instance`
+---@field Inventory Barotrauma.ItemInventory
+---`Field Private Instance`
+---@field activeContainedItems (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ActiveContainedItem)|(Barotrauma.Items.Components.ItemContainer.ActiveContainedItem[])
+---`Field Private Instance`
+---@field containedItems (System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ContainedItem)|(Barotrauma.Items.Components.ItemContainer.ContainedItem[])
+---`Field Private Instance`
+---@field itemIds (System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[])
+---`Field Private Instance`
+---@field capacity System.Int32
+---`Field Private Instance`
+---@field maxStackSize System.Int32
+---`Field Private Instance`
+---@field hideItems System.Boolean
+---`Field Private Instance`
+---@field autoInteractWithContainedTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field containableRestrictions (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field itemRotation System.Single
+---`Field Private Instance`
+---@field slotRestrictions (System.Collections.Immutable.ImmutableArray*1Barotrauma*Items*Components*ItemContainer*SlotRestrictions)|(Barotrauma.Items.Components.ItemContainer.SlotRestrictions[])
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field prevContainedItemRefreshRotation System.Single
+---`Field Private Instance`
+---@field prevContainedItemRefreshPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field autoInjectCooldown System.Single
+---`Field Private Instance`
+---@field subContainersCanAutoInject System.Boolean
+---`Field Private Instance`
+---@field containableItemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field HasSubContainers System.Boolean
+---`Field Public Instance`
+---@field hasSignalConnections System.Boolean
+---`Field Private Instance`
+---@field totalConditionValueString System.String
+---`Field Private Instance`
+---@field totalConditionPercentageString System.String
+---`Field Private Instance`
+---@field totalItemsString System.String
+---`Field Private Instance`
+---@field prevTotalConditionValue System.Single
+---`Field Private Instance`
+---@field prevTotalConditionPercentage System.Single
+---`Field Private Instance`
+---@field prevTotalItems System.Int32
+---`Field Private Static`
+---@field AutoInjectInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Capacity System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MainContainerCapacity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxStackSize System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HideItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemInterval Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemsPerRow System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DrawInventory System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDragAndDrop System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSwappingContainedItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field QuickUseMovesItemsInside System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInteractWithContained System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInteractWithContainedTags System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowAccess System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AccessOnlyWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowAccessWhenDropped System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SlotsPerRow System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ContainableRestrictions System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoFill System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnWithId System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpawnWithIdWhenBroken System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInject System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoInjectThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveContainedItemsOnDeconstruct System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Locked System.Boolean
+---`Getter Public Instance`
+---@field ContainedItemCount System.Int32
+---`Getter Public Instance`
+---@field ContainedNonBrokenItemCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtraStackSize System.Int32
+---`Getter Public Instance`
+---@field ContainableItemIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field ContainableItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Getter Public Instance`
+---@field AllSubContainableItems (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+_G['Components']['ItemContainer'] = {}
+
+---`Method Public Instance`
+---@param itemTagOrIdentifier Barotrauma.Identifier
+---@return System.Nullable*1System*Int32
+_G['Components']['ItemContainer'].FindSuitableSubContainerIndex = function(itemTagOrIdentifier) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ItemContainer'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance`
+_G['Components']['ItemContainer'].SetContainedItemPositions = function() end
+
+---`Method Private Instance`
+---@param drawPosition System.Boolean
+---@param transformedItemIntervalHorizontal Microsoft.Xna.Framework.Vector2-ref
+---@param transformedItemIntervalVertical Microsoft.Xna.Framework.Vector2-ref
+---@param flippedX System.Boolean-ref
+---@param flippedY System.Boolean-ref
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['ItemContainer'].GetContainedPosition = function(drawPosition, transformedItemIntervalHorizontal, transformedItemIntervalVertical, flippedX, flippedY) end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemContainer'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['ItemContainer'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['ItemContainer'].SpawnAlwaysContainedItems = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemContainer'].ShallowRemoveComponentSpecific = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['ItemContainer'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['ItemContainer'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['ItemContainer'].Save = function(parentElement) end
+
+---`Method Public Instance`
+---@overload fun(identifiersOrTags:(System.String-arr)|(System.String[]), isRestrictionsDefined:System.Boolean-ref):(System.Boolean)
+---@param item Barotrauma.Item
+---@param isRestrictionsDefined System.Boolean-ref
+---@return System.Boolean
+_G['Components']['ItemContainer'].ShouldBeContained = function(item, isRestrictionsDefined) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['Components']['ItemContainer'].ReloadContainableRestrictions = function(element) end
+
+---`Method Public Instance`
+---@param slotIndex System.Int32
+---@return System.Int32
+_G['Components']['ItemContainer'].GetMaxStackSize = function(slotIndex) end
+
+---`Method Public Instance`
+---@param containedItem Barotrauma.Item
+_G['Components']['ItemContainer'].OnItemContained = function(containedItem) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['ItemContainer'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance`
+---@param containedItem Barotrauma.Item
+_G['Components']['ItemContainer'].OnItemRemoved = function(containedItem) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['ItemContainer'].BlameEquipperForDeath = function() end
+
+---`Method Public Instance`
+---@overload fun(item:Barotrauma.Item):(System.Boolean)
+---@overload fun(item:Barotrauma.Item, index:System.Int32):(System.Boolean)
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab):(System.Boolean)
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param index System.Int32
+---@return System.Boolean
+_G['Components']['ItemContainer'].CanBeContained = function(itemPrefab, index) end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['Components']['ItemContainer'].ContainsItemsWithSameIdentifier = function(item) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['ItemContainer'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemContainer'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param activeContainedItem Barotrauma.Items.Components.ItemContainer.ActiveContainedItem
+---@return System.Boolean
+_G['Components']['ItemContainer'].ShouldApplyEffects = function(activeContainedItem) end
+
+---`Method Private Instance`
+_G['Components']['ItemContainer'].SetContainedItemPositionsIfNeeded = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['ItemContainer'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['ItemContainer'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['ItemContainer'].IsAccessible = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemContainer'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param picker Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemContainer'].Pick = function(picker) end
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@param user Barotrauma.Character
+---@return System.Boolean
+_G['Components']['ItemContainer'].Combine = function(item, user) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['ItemContainer'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['ItemContainer'].Equip = function(character) end
+
+---`Method Private Instance`
+---@param containedItem Barotrauma.Item
+---@return System.Boolean
+_G['Components']['ItemContainer'].CanAutoInteractWithContained = function(containedItem) end
+
+---`Method Private Instance`
+---@param active System.Boolean
+_G['Components']['ItemContainer'].SetContainedActive = function(active) end
+
+---`Method Private Instance`
+---@param item Barotrauma.Item
+---@return Barotrauma.RelatedItem
+_G['Components']['ItemContainer'].FindContainableItem = function(item) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemContainer
+_G['Components']['ItemContainer'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemContainer
+_G['Components']['ItemContainer'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969435F8.lua b/Meta/Types/server/_00007FFD969435F8.lua
new file mode 100644
index 0000000..4f6c2f0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969435F8.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.Items.Components.ItemLabel : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field sendStateCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field lastSentText System.String
+---`Field Private Instance`
+---@field sendStateTimer System.Single
+---`Field Private Instance`
+---@field prevColorSignal System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Text System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreLocalization System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextScale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Padding Microsoft.Xna.Framework.Vector4
+---`Getter Public Instance`
+---@field DrawSize Microsoft.Xna.Framework.Vector2
+_G['Components']['ItemLabel'] = {}
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['ItemLabel'].Move = function(amount, ignoreContacts) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['Components']['ItemLabel'].SendStateAfterDelay = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['ItemLabel'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+_G['Components']['ItemLabel'].OnStateChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['ItemLabel'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemLabel
+_G['Components']['ItemLabel'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.ItemLabel
+_G['Components']['ItemLabel'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96943850.lua b/Meta/Types/server/_00007FFD96943850.lua
new file mode 100644
index 0000000..1da705b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96943850.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Items.Components.Ladder : Barotrauma.Items.Components.ItemComponent
+---`Getter Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*Items*Components*Ladder)|(Barotrauma.Items.Components.Ladder[])
+_G['Components']['Ladder'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Ladder'].Select = function(character) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Ladder'].RemoveComponentSpecific = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Ladder
+---@return Barotrauma.Items.Components.Ladder
+_G['Components']['Ladder'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96943A78.lua b/Meta/Types/server/_00007FFD96943A78.lua
new file mode 100644
index 0000000..dc057b0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96943A78.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Items.Components.NameTag : Barotrauma.Items.Components.ItemComponent
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WrittenName System.String
+_G['Components']['NameTag'] = {}
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NameTag
+_G['Components']['NameTag'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.NameTag
+_G['Components']['NameTag'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96944110.lua b/Meta/Types/server/_00007FFD96944110.lua
new file mode 100644
index 0000000..d93c3ae
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96944110.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.Items.Components.Planter : Barotrauma.Items.Components.Pickable
+---`Field Public Instance`
+---@field PlantSlots (System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*PlantSlot)|({[System.Int32]:(Barotrauma.Items.Components.PlantSlot)})
+---`Field Private Instance`
+---@field fertilizer System.Single
+---`Field Public Instance`
+---@field GrowableSeeds (Barotrauma.Items.Components.Growable-arr)|(Barotrauma.Items.Components.Growable[])
+---`Field Private Instance`
+---@field SuitableFertilizer (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Private Instance`
+---@field SuitableSeeds (System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])
+---`Field Private Instance`
+---@field container Barotrauma.Items.Components.ItemContainer
+---`Field Private Instance`
+---@field growthTickTimer System.Single
+---`Field Private Instance`
+---@field lightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Field Public Static`
+---@field NullSlot Barotrauma.Items.Components.PlantSlot
+---`Field Private Static`
+---@field NullItem Barotrauma.Items.Components.SuitablePlantItem
+---`Field Public Static`
+---@field GrowthTickDelay System.Single
+---`Field Private Static`
+---@field MsgFertilizer System.String
+---`Field Private Static`
+---@field MsgSeed System.String
+---`Field Private Static`
+---@field MsgHarvest System.String
+---`Field Private Static`
+---@field MsgUprooting System.String
+---`Field Private Static`
+---@field MsgFertilizing System.String
+---`Field Private Static`
+---@field MsgPlanting System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Fertilizer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FertilizerCapacity System.Single
+---`Getter Public Instance Virtual`
+---@field DontTransferInventoryBetweenSubs System.Boolean
+_G['Components']['Planter'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['Planter'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@param addMessage System.Boolean
+---@param msg? Barotrauma.LocalizedString
+---@return System.Boolean
+_G['Components']['Planter'].HasRequiredItems = function(character, addMessage, msg) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Planter'].Pick = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Planter'].OnPicked = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Planter'].TryHarvest = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Planter'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.Items.Components.SuitablePlantItem
+_G['Components']['Planter'].GetSuitableItem = function(character) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Planter'].HasAnyFinishedGrowing = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.Planter
+---@return Barotrauma.Items.Components.Planter
+_G['Components']['Planter'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969466E8.lua b/Meta/Types/server/_00007FFD969466E8.lua
new file mode 100644
index 0000000..47d421f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969466E8.lua
@@ -0,0 +1,319 @@
+---@meta
+---@class Barotrauma.Items.Components.Projectile : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field launchRot System.Single
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1Barotrauma*Items*Components*Projectile*Impact)|(fun():(Barotrauma.Items.Components.Projectile.Impact))
+---`Field Private Instance`
+---@field removePending System.Boolean
+---`Field Private Instance`
+---@field spreadIndex System.Byte
+---`Field Private Instance`
+---@field stickJoint FarseerPhysics.Dynamics.Joints.Joint
+---`Field Private Instance`
+---@field jointAxis Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field launchPos Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field LaunchSub Barotrauma.Submarine
+---`Field Private Instance`
+---@field hits (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Public Instance`
+---@field IgnoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Public Instance`
+---@field Launcher Barotrauma.Item
+---`Field Private Instance`
+---@field stickTargetCharacter Barotrauma.Character
+---`Field Private Instance`
+---@field _user Barotrauma.Character
+---`Field Private Instance`
+---@field deactivationTimer System.Single
+---`Field Private Instance`
+---@field stickTimer System.Single
+---`Field Private Instance`
+---@field maxJointTranslationInSimUnits System.Single
+---`Field Private Instance`
+---@field originalCollisionCategories FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field originalCollisionTargets FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field lastTarget FarseerPhysics.Dynamics.Fixture
+---`Field Private Static`
+---@field spreadPool (System.Collections.Immutable.ImmutableArray*1System*Single)|(System.Single[])
+---`Field Public Static`
+---@field WaterDragCoefficient System.Single
+---`Field Private Static`
+---@field ContinuousCollisionThreshold System.Single
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field SpreadCounter System.Byte
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Attack Barotrauma.Attack
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field User Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Attacker Barotrauma.Character
+---`Getter Public Instance`
+---@field Hits (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpulseSpread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchRotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LaunchRotationRadians System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DoesStick System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToStructures System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToDeflective System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickToLightTargets System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GoThroughLightTargets System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LightTargetMassThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hitscan System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HitScanCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxTargetsToHit System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RemoveOnHit System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StaticSpread System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FriendlyFire System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeactivationTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StickDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxJointTranslation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JointBreakPoint System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Prismatic System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IgnoreProjectilesWhileActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StickTarget FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageDoors System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageUser System.Boolean
+---`Getter Public Instance`
+---@field IsStuckToTarget System.Boolean
+_G['Components']['Projectile'] = {}
+
+---`Method Public Instance`
+---@param target FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Projectile'].ShouldIgnoreSubmarineCollision = function(target, contact) end
+
+---`Method Private Instance`
+---@param target FarseerPhysics.Dynamics.Fixture-ref
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Projectile'].ShouldIgnoreSubmarineCollision = function(target, contact) end
+
+---`Method Private Instance`
+---@param target FarseerPhysics.Dynamics.Fixture
+---@param collisionNormal Microsoft.Xna.Framework.Vector2
+---@param velocity Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Projectile'].HandleProjectileCollision = function(target, collisionNormal, velocity) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Projectile'].GetLightTargetMassThreshold = function() end
+
+---`Method Private Instance`
+_G['Components']['Projectile'].EnableProjectileCollisions = function() end
+
+---`Method Private Instance`
+_G['Components']['Projectile'].DisableProjectileCollisions = function() end
+
+---`Method Public Instance`
+---@param body Barotrauma.PhysicsBody
+---@return System.Boolean
+_G['Components']['Projectile'].IsAttachedTo = function(body) end
+
+---`Method Private Instance`
+---@param targetBody FarseerPhysics.Dynamics.Body
+---@param axis Microsoft.Xna.Framework.Vector2
+_G['Components']['Projectile'].StickToTarget = function(targetBody, axis) end
+
+---`Method Public Instance`
+_G['Components']['Projectile'].Unstick = function() end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Projectile'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param data Barotrauma.Networking.NetEntityEvent.IData
+---@return System.Boolean
+_G['Components']['Projectile'].ValidateEventData = function(data) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Projectile'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Static`
+_G['Components']['Projectile'].ResetSpreadCounter = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Projectile'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Components']['Projectile'].GetSpreadFromPool = function() end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param damageMultiplier? System.Single
+---@param launchImpulseModifier? System.Single
+_G['Components']['Projectile'].Launch = function(user, simPosition, rotation, damageMultiplier, launchImpulseModifier) end
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+---@param weaponPos Microsoft.Xna.Framework.Vector2
+---@param spawnPos Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param ignoredBodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---@param createNetworkEvent System.Boolean
+---@param damageMultiplier? System.Single
+---@param launchImpulseModifier? System.Single
+_G['Components']['Projectile'].Shoot = function(user, weaponPos, spawnPos, rotation, ignoredBodies, createNetworkEvent, damageMultiplier, launchImpulseModifier) end
+
+---`Method Public Instance`
+---@param character? Barotrauma.Character
+---@param launchImpulseModifier? System.Single
+---@return System.Boolean
+_G['Components']['Projectile'].Use = function(character, launchImpulseModifier) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Projectile'].Use = function(deltaTime, character) end
+
+---`Method Private Instance`
+---@param impulse Microsoft.Xna.Framework.Vector2
+_G['Components']['Projectile'].DoLaunch = function(impulse) end
+
+---`Method Private Instance`
+---@param dir Microsoft.Xna.Framework.Vector2
+_G['Components']['Projectile'].DoHitscan = function(dir) end
+
+---`Method Private Instance`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param submarine Barotrauma.Submarine
+---@return (System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile*HitscanResult)|(Barotrauma.Items.Components.Projectile.HitscanResult[])
+_G['Components']['Projectile'].DoRayCast = function(rayStart, rayEnd, submarine) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Projectile'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Projectile'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Projectile'].StickTargetRemoved = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param target FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['Projectile'].OnProjectileCollision = function(f1, target, contact) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Projectile'].ShouldIgnoreCharacterCollision = function(character) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'] = function(item, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'].__new = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Items.Components.Projectile
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Projectile
+_G['Components']['Projectile'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD969471B0.lua b/Meta/Types/server/_00007FFD969471B0.lua
new file mode 100644
index 0000000..f3b5068
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969471B0.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.Items.Components.Quality : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field statValues (System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Quality*StatType*1System*Single)|({[Barotrauma.Items.Components.Quality.StatType]:(System.Single)})
+---`Field Private Instance`
+---@field qualityLevel System.Int32
+---`Field Public Static`
+---@field MaxQuality System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field QualityLevel System.Int32
+_G['Components']['Quality'] = {}
+
+---`Method Public Instance`
+---@param statType Barotrauma.Items.Components.Quality.StatType
+---@param value System.Single
+_G['Components']['Quality'].SetValue = function(statType, value) end
+
+---`Method Public Instance`
+---@param statType Barotrauma.Items.Components.Quality.StatType
+---@return System.Single
+_G['Components']['Quality'].GetValue = function(statType) end
+
+---`Method Public Static`
+---@param submarine Barotrauma.Submarine
+---@param level Barotrauma.Level
+---@param randSync? Barotrauma.Rand.RandSync
+---@return System.Int32
+_G['Components']['Quality'].GetSpawnedItemQuality = function(submarine, level, randSync) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Quality
+_G['Components']['Quality'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Quality
+_G['Components']['Quality'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96947478.lua b/Meta/Types/server/_00007FFD96947478.lua
new file mode 100644
index 0000000..c06e811
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96947478.lua
@@ -0,0 +1,51 @@
+---@meta
+---@class Barotrauma.Items.Components.RemoteController : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field currentTarget Barotrauma.Item
+---`Field Private Instance`
+---@field currentUser Barotrauma.Character
+---`Field Private Instance`
+---@field currentSub Barotrauma.Submarine
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Target Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OnlyInOwnSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.Item
+_G['Components']['RemoteController'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['RemoteController'].Select = function(character) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['RemoteController'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['RemoteController'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param user Barotrauma.Character
+_G['Components']['RemoteController'].FindTarget = function(user) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RemoteController
+_G['Components']['RemoteController'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.RemoteController
+_G['Components']['RemoteController'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96947FC8.lua b/Meta/Types/server/_00007FFD96947FC8.lua
new file mode 100644
index 0000000..0ea21ac
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96947FC8.lua
@@ -0,0 +1,223 @@
+---@meta
+---@class Barotrauma.Items.Components.Repairable : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field prevLoggedFixer Barotrauma.Character
+---`Field Private Instance`
+---@field prevLoggedFixAction Barotrauma.Items.Components.Repairable.FixActions
+---`Field Private Instance`
+---@field header Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field deteriorationTimer System.Single
+---`Field Private Instance`
+---@field updateDeteriorationCounter System.Int32
+---`Field Private Instance`
+---@field prevSentConditionValue System.Int32
+---`Field Private Instance`
+---@field conditionSignal System.String
+---`Field Private Instance`
+---@field wasBroken System.Boolean
+---`Field Private Instance`
+---@field wasGoodCondition System.Boolean
+---`Field Public Instance`
+---@field LastActiveTime System.Single
+---`Field Private Instance`
+---@field skillRequirementMultiplier System.Single
+---`Field Private Instance`
+---@field isTinkering System.Boolean
+---`Field Private Instance`
+---@field currentRepairItem Barotrauma.Item
+---`Field Private Instance`
+---@field tinkeringDuration System.Single
+---`Field Private Instance`
+---@field tinkeringStrength System.Single
+---`Field Private Instance`
+---@field tinkeringPowersDevices System.Boolean
+---`Field Private Instance`
+---@field currentFixerAction Barotrauma.Items.Components.Repairable.FixActions
+---`Field Private Static`
+---@field UpdateDeteriorationInterval System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ForceDeteriorationTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeteriorationSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinDeteriorationDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxDeteriorationDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinDeteriorationCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinSabotageCondition System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SabotageDeteriorationDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RepairThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxStressDeteriorationMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StressDeteriorationThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StressDeteriorationIncreaseSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StressDeteriorationDecreaseSpeed System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FixDurationLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FixDurationHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SkillRequirementMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsTinkering System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentFixer Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StressDeteriorationMultiplier System.Single
+---`Getter Public Instance`
+---@field TinkeringStrength System.Single
+---`Getter Public Instance`
+---@field TinkeringPowersDevices System.Boolean
+---`Getter Public Instance`
+---@field IsBelowRepairThreshold System.Boolean
+---`Getter Public Instance`
+---@field IsBelowRepairIconThreshold System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentFixerAction Barotrauma.Items.Components.Repairable.FixActions
+_G['Components']['Repairable'] = {}
+
+---`Method Public Instance Virtual`
+_G['Components']['Repairable'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['Components']['Repairable'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Repairable'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Repairable'].OnItemLoaded = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param bestRepairItem Barotrauma.Item
+---@return System.Boolean
+_G['Components']['Repairable'].CheckCharacterSuccess = function(character, bestRepairItem) end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['Components']['Repairable'].GetSkillMultiplier = function() end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param skills (System.Collections.Generic.List*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---@return System.Single
+_G['Components']['Repairable'].RepairDegreeOfSuccess = function(character, skills) end
+
+---`Method Public Instance`
+---@param qteSuccess System.Boolean
+_G['Components']['Repairable'].RepairBoost = function(qteSuccess) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param action Barotrauma.Items.Components.Repairable.FixActions
+---@return System.Boolean
+_G['Components']['Repairable'].StartRepairing = function(character, action) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Repairable'].StopRepairing = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Repairable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance`
+_G['Components']['Repairable'].ResetDeterioration = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Repairable'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['Components']['Repairable'].UpdateDeterioration = function(deltaTime) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Single
+_G['Components']['Repairable'].GetMaxRepairConditionMultiplier = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Repairable'].IsTinkerable = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return Barotrauma.Affliction
+_G['Components']['Repairable'].GetTinkerExhaustion = function(character) end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Repairable'].CanTinker = function(character) end
+
+---`Method Public Instance`
+---@param powerConsumption System.Single-ref
+_G['Components']['Repairable'].AdjustPowerConsumption = function(powerConsumption) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['Components']['Repairable'].ShouldDeteriorate = function() end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Repairable'].GetDeteriorationDelayMultiplier = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+_G['Components']['Repairable'].UpdateFixAnimation = function(character) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Repairable'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Repairable
+_G['Components']['Repairable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Repairable
+_G['Components']['Repairable'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96948710.lua b/Meta/Types/server/_00007FFD96948710.lua
new file mode 100644
index 0000000..9901904
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96948710.lua
@@ -0,0 +1,120 @@
+---@meta
+---@class Barotrauma.Items.Components.Rope : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field source Barotrauma.ISpatialEntity
+---`Field Private Instance`
+---@field target Barotrauma.Item
+---`Field Private Instance`
+---@field launchDir System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field currentRopeLength System.Single
+---`Field Private Instance`
+---@field snapTimer System.Single
+---`Field Private Instance`
+---@field raycastTimer System.Single
+---`Field Private Instance`
+---@field isReelingIn System.Boolean
+---`Field Private Instance`
+---@field snapped System.Boolean
+---`Field Private Static`
+---@field RayCastInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapAnimDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProjectilePullForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetPullForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourcePullForce System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxLength System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinPullDistance System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapOnCollision System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapWhenNotAimed System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SnapWhenWeaponFiredAgain System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelLengthMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetMinMass System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LerpForces System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IncreaseForceForEscapingTargets System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Snapped System.Boolean
+_G['Components']['Rope'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Rope'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Private Instance`
+---@param source Barotrauma.ISpatialEntity
+_G['Components']['Rope'].SetSource = function(source) end
+
+---`Method Private Instance`
+_G['Components']['Rope'].ResetSource = function() end
+
+---`Method Public Instance`
+_G['Components']['Rope'].Snap = function() end
+
+---`Method Public Instance`
+---@param source Barotrauma.ISpatialEntity
+---@param target Barotrauma.Item
+_G['Components']['Rope'].Attach = function(source, target) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Rope'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Rope'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param useDrawPosition? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Rope'].GetSourcePos = function(useDrawPosition) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISpatialEntity
+---@return Barotrauma.PhysicsBody
+_G['Components']['Rope'].GetBodyToPull = function(target) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Rope
+_G['Components']['Rope'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Rope
+_G['Components']['Rope'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96948B00.lua b/Meta/Types/server/_00007FFD96948B00.lua
new file mode 100644
index 0000000..f9baaea
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96948B00.lua
@@ -0,0 +1,59 @@
+---@meta
+---@class Barotrauma.Items.Components.Scanner : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field scanTimer System.Single
+---`Field Public Instance`
+---@field OnScanStarted (System.Action*1Barotrauma*Items*Components*Scanner)|(fun(obj:Barotrauma.Items.Components.Scanner))
+---`Field Public Instance`
+---@field OnScanCompleted (System.Action*1Barotrauma*Items*Components*Scanner)|(fun(obj:Barotrauma.Items.Components.Scanner))
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field LastSentScanTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScanDuration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScanTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ScanRadius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlwaysDisplayProgressBar System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field Holdable Barotrauma.Items.Components.Holdable
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplayProgressBar System.Boolean
+---`Getter Private Instance`
+---@field IsScanCompleted System.Boolean
+_G['Components']['Scanner'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Scanner'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Scanner'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Scanner'].OnItemLoaded = function() end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Scanner
+_G['Components']['Scanner'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Scanner
+_G['Components']['Scanner'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96948CF8.lua b/Meta/Types/server/_00007FFD96948CF8.lua
new file mode 100644
index 0000000..50048ed
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96948CF8.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.Items.Components.StatusHUD : Barotrauma.Items.Components.ItemComponent
+_G['Components']['StatusHUD'] = {}
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.StatusHUD
+_G['Components']['StatusHUD'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.StatusHUD
+_G['Components']['StatusHUD'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD96949508.lua b/Meta/Types/server/_00007FFD96949508.lua
new file mode 100644
index 0000000..005ac9f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96949508.lua
@@ -0,0 +1,166 @@
+---@meta
+---@class Barotrauma.Items.Components.TriggerComponent : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field radius System.Single
+---`Field Private Instance`
+---@field width System.Single
+---`Field Private Instance`
+---@field height System.Single
+---`Field Private Instance`
+---@field currentRadius System.Single
+---`Field Private Instance`
+---@field currentWidth System.Single
+---`Field Private Instance`
+---@field currentHeight System.Single
+---`Field Private Instance`
+---@field bodyOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field triggeredBy Barotrauma.LevelTrigger.TriggererType
+---`Field Private Instance`
+---@field triggerSpeciesOrGroup Barotrauma.Identifier
+---`Field Private Instance`
+---@field conditionals Barotrauma.PropertyConditional.LogicalComparison
+---`Field Private Instance`
+---@field triggerers (System.Collections.Generic.HashSet*1Barotrauma*Entity)|(Barotrauma.Entity[])
+---`Field Private Instance`
+---@field triggerOnce System.Boolean
+---`Field Private Instance`
+---@field statusEffectTargets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Private Instance`
+---@field attacks (System.Collections.Generic.List*1Barotrauma*Attack)|(Barotrauma.Attack[])
+---`Field Private Instance`
+---@field forceFluctuationStrength System.Single
+---`Field Private Instance`
+---@field forceFluctuationFrequency System.Single
+---`Field Private Instance`
+---@field forceFluctuationInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DistanceBasedForce System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceFluctuation System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationStrength System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationFrequency System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Radius System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Width System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Height System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyOffset Microsoft.Xna.Framework.Vector2
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field RadiusInDisplayUnits System.Single
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field TriggeredOnce System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field CurrentForceFluctuation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TriggerActive System.Boolean
+---`Getter Private Instance`
+---
`Setter Private Instance`
+---@field ForceFluctuationTimer System.Single
+---`Getter Private Static`
+---@field TimeInLevel System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyEffectsToCharactersInsideSub System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MoveOutsideSub System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field IsActive System.Boolean
+_G['Components']['TriggerComponent'] = {}
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['TriggerComponent'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+_G['Components']['TriggerComponent'].OnItemLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['TriggerComponent'].RefreshPhysicsBodySize = function() end
+
+---`Method Public Instance`
+---@param ignoreContacts? System.Boolean
+_G['Components']['TriggerComponent'].SetPhysicsBodyPosition = function(ignoreContacts) end
+
+---`Method Public Instance Virtual`
+_G['Components']['TriggerComponent'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Components']['TriggerComponent'].OnCollision = function(sender, other, contact) end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+_G['Components']['TriggerComponent'].OnSeparation = function(sender, other, contact) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['TriggerComponent'].Update = function(deltaTime, cam) end
+
+---`Method Private Instance`
+---@param body Barotrauma.PhysicsBody
+---@param multiplier? System.Single
+_G['Components']['TriggerComponent'].ApplyForce = function(body, multiplier) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Components']['TriggerComponent'].Move = function(amount, ignoreContacts) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['TriggerComponent'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['TriggerComponent'].ReceiveSignal = function(signal, connection) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TriggerComponent
+_G['Components']['TriggerComponent'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.TriggerComponent
+_G['Components']['TriggerComponent'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9694AA58.lua b/Meta/Types/server/_00007FFD9694AA58.lua
new file mode 100644
index 0000000..8613397
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694AA58.lua
@@ -0,0 +1,436 @@
+---@meta
+---@class Barotrauma.Items.Components.Turret : Barotrauma.Items.Components.Powered
+---`Field Private Instance`
+---@field barrelSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field railSprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field barrelSpriteBroken Barotrauma.Sprite
+---`Field Private Instance`
+---@field railSpriteBroken Barotrauma.Sprite
+---`Field Private Instance`
+---@field chargeSprites (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Sprite*2Microsoft*Xna*Framework*Vector2)|(System.ValueTuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Vector2[])
+---`Field Private Instance`
+---@field spinningBarrelSprites (System.Collections.Generic.List*1Barotrauma*Sprite)|(Barotrauma.Sprite[])
+---`Field Private Instance`
+---@field barrelPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field transformedBarrelPos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field targetRotation System.Single
+---`Field Private Instance`
+---@field reload System.Single
+---`Field Private Instance`
+---@field shotCounter System.Int32
+---`Field Private Instance`
+---@field minRotation System.Single
+---`Field Private Instance`
+---@field maxRotation System.Single
+---`Field Private Instance`
+---@field cam Barotrauma.Camera
+---`Field Private Instance`
+---@field angularVelocity System.Single
+---`Field Private Instance`
+---@field failedLaunchAttempts System.Int32
+---`Field Private Instance`
+---@field currentChargeTime System.Single
+---`Field Private Instance`
+---@field tryingToCharge System.Boolean
+---`Field Private Instance`
+---@field currentChargingState Barotrauma.Items.Components.Turret.ChargingState
+---`Field Private Instance`
+---@field activeProjectiles (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+---`Field Private Instance`
+---@field user Barotrauma.Character
+---`Field Private Instance`
+---@field resetUserTimer System.Single
+---`Field Private Instance`
+---@field aiFindTargetTimer System.Single
+---`Field Private Instance`
+---@field currentTarget Barotrauma.ISpatialEntity
+---`Field Private Instance`
+---@field projectileSpeed System.Single
+---`Field Private Instance`
+---@field previousAmmo Barotrauma.Item
+---`Field Private Instance`
+---@field currentLoaderIndex System.Int32
+---`Field Public Instance`
+---@field ActiveUser Barotrauma.Character
+---`Field Private Instance`
+---@field resetActiveUserTimer System.Single
+---`Field Private Instance`
+---@field lightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Field Private Instance`
+---@field lastProjectile Barotrauma.Items.Components.Projectile
+---`Field Private Instance`
+---@field isSlowTurret System.Boolean
+---`Field Private Instance`
+---@field flipFiringOffset System.Boolean
+---`Field Private Instance`
+---@field prevScale System.Single
+---`Field Private Instance`
+---@field prevBaseRotation System.Single
+---`Field Private Instance`
+---@field _maxAngleOffset System.Single
+---`Field Private Instance`
+---@field isUseBeingCalled System.Boolean
+---`Field Private Instance`
+---@field waitTimer System.Single
+---`Field Private Instance`
+---@field randomAimTimer System.Single
+---`Field Private Instance`
+---@field prevTargetRotation System.Single
+---`Field Private Instance`
+---@field updateTimer System.Single
+---`Field Private Instance`
+---@field updatePending System.Boolean
+---`Field Private Instance`
+---@field loadedRotationLimits System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field Private Instance`
+---@field loadedBaseRotation System.Nullable*1System*Single
+---`Field Private Static`
+---@field LaunchWithoutProjectileId System.UInt16
+---`Field Private Static`
+---@field CrewAiFindTargetMaxInterval System.Single
+---`Field Private Static`
+---@field CrewAIFindTargetMinInverval System.Single
+---`Field Private Static`
+---@field MinimumProjectileVelocityForAimAhead System.Single
+---`Field Private Static`
+---@field MaximumAimAhead System.Single
+---`Field Private Static`
+---@field TinkeringPowerCostReduction System.Single
+---`Field Private Static`
+---@field TinkeringDamageIncrease System.Single
+---`Field Private Static`
+---@field TinkeringReloadDecrease System.Single
+---`Field Private Static`
+---@field SetAutoOperateConnection System.String
+---`Field Private Static`
+---@field ToggleAutoOperateConnection System.String
+---`Getter Public Instance`
+---@field ActiveProjectiles (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FiringOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AlternatingFiringOffset System.Boolean
+---`Getter Public Instance`
+---@field TransformedBarrelPos Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ProjectileCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LaunchWithoutProjectile System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Spread System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FiringRotationSpeedModifier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SingleChargedShot System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BaseRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AIRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxAngleOffset System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AICurrentTargetPriorityMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxActiveProjectiles System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxChargeTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Reload System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShotsPerBurst System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DelayBetweenBursts System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RetractionDurationMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RecoilTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RetractionDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RotationLimits Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringStiffnessLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringStiffnessHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringDampingLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpringDampingHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationSpeedLowSkill System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RotationSpeedHighSkill System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HudTint Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoOperate System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowAutoOperateWithWiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomAimAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomAimMinTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomAimMaxTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomMovement System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimDelay System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetCharacters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetMonsters System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetHumans System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetSubmarines System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FriendlyTag Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FriendlyTeam Barotrauma.CharacterTeamType
+_G['Components']['Turret'] = {}
+
+---`Method Private Instance`
+_G['Components']['Turret'].UpdateTransformedBarrelPos = function() end
+
+---`Method Public Instance Virtual`
+_G['Components']['Turret'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+_G['Components']['Turret'].FindLightComponents = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Turret'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance`
+_G['Components']['Turret'].UpdateLightComponents = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@return System.Boolean
+_G['Components']['Turret'].Use = function(deltaTime, character) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['Components']['Turret'].GetPowerRequiredToShoot = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Components']['Turret'].HasPowerToShoot = function() end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Turret'].GetBarrelDir = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@param character? Barotrauma.Character
+---@param ignorePower? System.Boolean
+---@return System.Boolean
+_G['Components']['Turret'].TryLaunch = function(deltaTime, character, ignorePower) end
+
+---`Method Private Instance`
+---@param projectile Barotrauma.Item
+---@param user? Barotrauma.Character
+---@param launchRotation? System.Nullable*1System*Single
+---@param tinkeringStrength? System.Single
+_G['Components']['Turret'].Launch = function(projectile, user, launchRotation, tinkeringStrength) end
+
+---`Method Private Instance`
+---@param projectile Barotrauma.Items.Components.Projectile
+_G['Components']['Turret'].TryDetermineProjectileSpeed = function(projectile) end
+
+---`Method Private Static`
+---@param container Barotrauma.Items.Components.ItemContainer
+_G['Components']['Turret'].ShiftItemsInProjectileContainer = function(container) end
+
+---`Method Private Instance`
+---@return System.Single
+_G['Components']['Turret'].GetTargetPriorityModifier = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param ignorePower System.Boolean
+---@param friendlyTag? Barotrauma.Identifier
+_G['Components']['Turret'].UpdateAutoOperate = function(deltaTime, ignorePower, friendlyTag) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+---@param objective Barotrauma.AIObjectiveOperateItem
+---@return System.Boolean
+_G['Components']['Turret'].CrewAIOperate = function(deltaTime, character, objective) end
+
+---`Method Private Instance`
+---@param targetPos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Turret'].IsPointingTowards = function(targetPos) end
+
+---`Method Private Instance`
+---@param target Barotrauma.Item
+---@param sqrDist System.Single
+---@return System.Boolean
+_G['Components']['Turret'].IsTargetItemCloseEnough = function(target, sqrDist) end
+
+---`Method Public Instance Virtual`
+---@param conn? Barotrauma.Items.Components.Connection
+---@return System.Single
+_G['Components']['Turret'].GetCurrentPowerConsumption = function(conn) end
+
+---`Method Private Static`
+---@param target Barotrauma.ISpatialEntity
+---@return System.Boolean
+_G['Components']['Turret'].IsValidTarget = function(target) end
+
+---`Method Private Instance`
+---@param target Barotrauma.Character
+---@param friendlyTag Barotrauma.Identifier
+---@return System.Boolean
+_G['Components']['Turret'].IsValidTargetForAutoOperate = function(target, friendlyTag) end
+
+---`Method Private Instance`
+---@param targetBody FarseerPhysics.Dynamics.Body
+---@param user? Barotrauma.Character
+---@param friendlyTag? Barotrauma.Identifier
+---@param targetSubmarines? System.Boolean
+---@param allowShootingIfNothingInWay? System.Boolean
+---@return System.Boolean
+_G['Components']['Turret'].CanShoot = function(targetBody, user, friendlyTag, targetSubmarines, allowShootingIfNothingInWay) end
+
+---`Method Private Instance`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@return FarseerPhysics.Dynamics.Body
+_G['Components']['Turret'].CheckLineOfSight = function(start, luaKey__end) end
+
+---`Method Private Instance`
+---@param useOffset? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Components']['Turret'].GetRelativeFiringPosition = function(useOffset) end
+
+---`Method Private Instance`
+---@param angle System.Single
+---@return System.Boolean
+_G['Components']['Turret'].IsWithinAimingRadius = function(angle) end
+
+---`Method Public Instance`
+---@param target Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Components']['Turret'].IsWithinAimingRadius = function(target) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Turret'].RemoveComponentSpecific = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile)|(Barotrauma.Items.Components.Projectile[])
+_G['Components']['Turret'].GetLoadedProjectiles = function() end
+
+---`Method Private Static`
+---@param projectileContainer Barotrauma.Item
+---@param projectiles (System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile)|(Barotrauma.Items.Components.Projectile[])
+---@param stopSearching System.Boolean-ref
+_G['Components']['Turret'].CheckProjectileContainer = function(projectileContainer, projectiles, stopSearching) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Turret'].FlipX = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Components']['Turret'].FlipY = function(relativeToSub) end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['Components']['Turret'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Turret'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Turret'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Turret'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Turret
+_G['Components']['Turret'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Turret
+_G['Components']['Turret'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9694AF90.lua b/Meta/Types/server/_00007FFD9694AF90.lua
new file mode 100644
index 0000000..0d28bff
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694AF90.lua
@@ -0,0 +1,104 @@
+---@meta
+---@class Barotrauma.Items.Components.Wearable : Barotrauma.Items.Components.Pickable
+---`Field Private Instance`
+---@field wearableElements (Barotrauma.ContentXElement-arr)|(Barotrauma.ContentXElement[])
+---`Field Private Instance`
+---@field wearableSprites (Barotrauma.WearableSprite-arr)|(Barotrauma.WearableSprite[])
+---`Field Private Instance`
+---@field limbType (Barotrauma.LimbType-arr)|(Barotrauma.LimbType[])
+---`Field Private Instance`
+---@field limb (Barotrauma.Limb-arr)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field damageModifiers (System.Collections.Generic.List*1Barotrauma*DamageModifier)|(Barotrauma.DamageModifier[])
+---`Field Public Instance`
+---@field SkillModifiers (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single)|({[Barotrauma.Identifier]:(System.Single)})
+---`Field Public Instance`
+---@field WearableStatValues (System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single)|({[Barotrauma.StatTypes]:(System.Single)})
+---`Field Public Instance`
+---@field Variants System.Int32
+---`Field Private Instance`
+---@field variant System.Int32
+---`Field Public Instance`
+---@field PressureProtection System.Single
+---`Field Private Instance`
+---@field loadedVariant System.Int32
+---`Getter Public Instance`
+---@field DamageModifiers (System.Collections.Generic.IEnumerable*1Barotrauma*DamageModifier)|(fun():(Barotrauma.DamageModifier))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AutoEquipWhenFull System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisplayContainedStatus System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowUseWhenWorn System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Variant System.Int32
+_G['Components']['Wearable'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wearable'].Equip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param dropper Barotrauma.Character
+---@param setTransform? System.Boolean
+_G['Components']['Wearable'].Drop = function(dropper, setTransform) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+_G['Components']['Wearable'].Unequip = function(character) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Wearable'].UpdateBroken = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Components']['Wearable'].Update = function(deltaTime, cam) end
+
+---`Method NonPublic Instance Virtual`
+_G['Components']['Wearable'].RemoveComponentSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Components']['Wearable'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['Components']['Wearable'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['Components']['Wearable'].OnItemLoaded = function() end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Components']['Wearable'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param sendingTime System.Single
+_G['Components']['Wearable'].ClientEventRead = function(msg, sendingTime) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Wearable
+_G['Components']['Wearable'] = function(item, element) end
+
+---`Constructor Public Instance`
+---@param item Barotrauma.Item
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.Items.Components.Wearable
+_G['Components']['Wearable'].__new = function(item, element) end
+
diff --git a/Meta/Types/server/_00007FFD9694BA88.lua b/Meta/Types/server/_00007FFD9694BA88.lua
new file mode 100644
index 0000000..8cac3a7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694BA88.lua
@@ -0,0 +1,389 @@
+---@meta
+---@class Barotrauma.Items.Components.CircuitBox : Barotrauma.Items.Components.ItemComponent
+---`Field Private Instance`
+---@field needsServerInitialization System.Boolean
+---`Field Public Instance`
+---@field Inputs (System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxInputConnection)|(Barotrauma.CircuitBoxInputConnection[])
+---`Field Public Instance`
+---@field Outputs (System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxOutputConnection)|(Barotrauma.CircuitBoxOutputConnection[])
+---`Field Public Instance`
+---@field Components (System.Collections.Generic.List*1Barotrauma*CircuitBoxComponent)|(Barotrauma.CircuitBoxComponent[])
+---`Field Public Instance`
+---@field InputOutputNodes (System.Collections.Generic.List*1Barotrauma*CircuitBoxInputOutputNode)|(Barotrauma.CircuitBoxInputOutputNode[])
+---`Field Public Instance`
+---@field Labels (System.Collections.Generic.List*1Barotrauma*CircuitBoxLabelNode)|(Barotrauma.CircuitBoxLabelNode[])
+---`Field Public Instance`
+---@field Wires (System.Collections.Generic.List*1Barotrauma*CircuitBoxWire)|(Barotrauma.CircuitBoxWire[])
+---`Field Public Instance`
+---@field containers (Barotrauma.Items.Components.ItemContainer-arr)|(Barotrauma.Items.Components.ItemContainer[])
+---`Field Public Instance`
+---@field TemporarilyLocked System.Boolean
+---`Field Private Instance`
+---@field delayedElementToLoad Barotrauma.Option*1Barotrauma*ContentXElement
+---`Field Public Static`
+---@field UnrealiableOpcodes (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxOpcode)|(Barotrauma.CircuitBoxOpcode[])
+---`Field Private Static`
+---@field ComponentContainerIndex System.Int32
+---`Field Private Static`
+---@field WireContainerIndex System.Int32
+---`Getter Public Instance Virtual`
+---@field IsActive System.Boolean
+---`Getter Public Instance Virtual`
+---@field DontTransferInventoryBetweenSubs System.Boolean
+---`Getter Public Instance Virtual`
+---@field DisallowSellingItemsFromContainer System.Boolean
+---`Getter Public Instance`
+---@field ComponentContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field WireContainer Barotrauma.Items.Components.ItemContainer
+---`Getter Public Instance`
+---@field IsFull System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Locked System.Boolean
+_G['CircuitBox'] = {}
+
+---`Method Public Instance`
+_G['CircuitBox'].MarkServerRequiredInitialization = function() end
+
+---`Method Public Instance`
+---@param data Barotrauma.INetSerializableStruct
+---@param c Barotrauma.Networking.Client
+_G['CircuitBox'].ServerRead = function(data, c) end
+
+---`Method Private Instance`
+---@param data Barotrauma.NetCircuitBoxCursorInfo
+---@param sender Barotrauma.Networking.Client
+_G['CircuitBox'].RelayCursorState = function(data, sender) end
+
+---`Method Public Instance`
+---@param opcode Barotrauma.CircuitBoxOpcode
+---@param data Barotrauma.INetSerializableStruct
+---@param targetClient Barotrauma.Networking.Client
+_G['CircuitBox'].SendToClient = function(opcode, data, targetClient) end
+
+---`Method Public Instance`
+---@param opcode Barotrauma.CircuitBoxOpcode
+---@param data Barotrauma.INetSerializableStruct
+---@param predicate? (System.Func*1Barotrauma*Networking*Client*1System*Boolean)|(fun(arg:Barotrauma.Networking.Client):(System.Boolean))
+_G['CircuitBox'].SendToAll = function(opcode, data, predicate) end
+
+---`Method Private Instance`
+---@param opcode Barotrauma.CircuitBoxOpcode
+---@param data Barotrauma.INetSerializableStruct
+---@return System.ValueTuple*1Barotrauma*Networking*IWriteMessage*1Barotrauma*Networking*DeliveryMethod
+_G['CircuitBox'].PrepareToSend = function(opcode, data) end
+
+---`Method Public Instance`
+---@param data Barotrauma.INetSerializableStruct
+_G['CircuitBox'].CreateServerEvent = function(data) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['CircuitBox'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['CircuitBox'].ServerEventRead = function(msg, c) end
+
+---`Method Public Instance`
+_G['CircuitBox'].CreateInitializationEvent = function() end
+
+---`Method Private Instance`
+---@param message System.String
+---@param c Barotrauma.Networking.Client
+_G['CircuitBox'].ThrowError = function(message, c) end
+
+---`Method Private Instance`
+_G['CircuitBox'].BroadcastSelectionStatus = function() end
+
+---`Method Public Instance`
+---@overload fun(connectionName:Barotrauma.Identifier):(Barotrauma.Option*1Barotrauma*CircuitBoxConnection)
+---@param connection Barotrauma.Items.Components.Connection
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxConnection
+_G['CircuitBox'].FindInputOutputConnection = function(connection) end
+
+---`Method Public Instance Virtual`
+---@param componentElement Barotrauma.ContentXElement
+---@param usePrefabValues System.Boolean
+---@param idRemap Barotrauma.IdRemap
+---@param isItemSwap System.Boolean
+_G['CircuitBox'].Load = function(componentElement, usePrefabValues, idRemap, isItemSwap) end
+
+---`Method Public Instance Virtual`
+_G['CircuitBox'].OnInventoryChanged = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['CircuitBox'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+_G['CircuitBox'].OnMapLoaded = function() end
+
+---`Method Private Instance`
+_G['CircuitBox'].TryInitializeNodes = function() end
+
+---`Method Public Instance`
+---@param loadElement Barotrauma.ContentXElement
+_G['CircuitBox'].LoadFromXML = function(loadElement) end
+
+---`Method Public Instance`
+---@param original Barotrauma.Items.Components.CircuitBox
+---@param clonedContainedItems (System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Item)|({[System.UInt16]:(Barotrauma.Item)})
+_G['CircuitBox'].CloneFrom = function(original, clonedContainedItems) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['CircuitBox'].Save = function(parentElement) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Character
+_G['CircuitBox'].OnDeselected = function(c) end
+
+---`Method Public Instance`
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@param onCreated (System.Action*1Barotrauma*Items*Components*CircuitBox*CreatedWire)|(fun(obj:Barotrauma.Items.Components.CircuitBox.CreatedWire))
+---@param selectedWirePrefab Barotrauma.ItemPrefab
+---@return System.Boolean
+_G['CircuitBox'].Connect = function(one, two, onCreated, selectedWirePrefab) end
+
+---`Method Private Static`
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@return System.Boolean
+_G['CircuitBox'].VerifyConnection = function(one, two) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param color Microsoft.Xna.Framework.Color
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param header Barotrauma.NetLimitedString
+---@param body Barotrauma.NetLimitedString
+_G['CircuitBox'].AddLabelInternal = function(id, color, pos, header, body) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+_G['CircuitBox'].RemoveLabelInternal = function(ids) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].ResizeLabelInternal = function(id, pos, size) end
+
+---`Method Private Instance`
+---@param type Barotrauma.CircuitBoxInputOutputNode.Type
+---@param overrides (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+_G['CircuitBox'].RenameConnectionLabelsInternal = function(type, overrides) end
+
+---`Method Private Static`
+---@param conn Barotrauma.CircuitBoxConnection
+---@return System.Boolean
+_G['CircuitBox'].IsExternalConnection = function(conn) end
+
+---`Method Private Instance`
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@param id System.UInt16
+---@param prefab Barotrauma.ItemPrefab
+_G['CircuitBox'].CreateWireWithoutItem = function(one, two, id, prefab) end
+
+---`Method Private Instance`
+---@overload fun(one:Barotrauma.CircuitBoxConnection, two:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab, wireId:System.UInt16, onItemSpawned:(System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item)))
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+---@param wireId System.UInt16
+---@param it Barotrauma.Item
+_G['CircuitBox'].CreateWireWithItem = function(one, two, wireId, it) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param prefab Barotrauma.ItemPrefab
+---@param backingItem Barotrauma.Option*1Barotrauma*Item
+---@param one Barotrauma.CircuitBoxConnection
+---@param two Barotrauma.CircuitBoxConnection
+_G['CircuitBox'].AddWireDirect = function(id, prefab, backingItem, one, two) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param color Microsoft.Xna.Framework.Color
+---@param header Barotrauma.NetLimitedString
+---@param body Barotrauma.NetLimitedString
+_G['CircuitBox'].RenameLabelInternal = function(id, color, header, body) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param prefab Barotrauma.ItemPrefab
+---@param usedResource Barotrauma.ItemPrefab
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param user Barotrauma.Character
+---@param onItemSpawned (System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item))
+---@return System.Boolean
+_G['CircuitBox'].AddComponentInternal = function(id, prefab, usedResource, pos, user, onItemSpawned) end
+
+---`Method Private Instance`
+---@param id System.UInt16
+---@param backingItem Barotrauma.Item
+---@param usedResource Barotrauma.ItemPrefab
+---@param pos Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].AddComponentInternalUnsafe = function(id, backingItem, usedResource, pos) end
+
+---`Method Private Static`
+---@param characterId System.UInt16
+---@param nodes (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxSelectable)|(fun():(Barotrauma.CircuitBoxSelectable))
+_G['CircuitBox'].ClearSelectionFor = function(characterId, nodes) end
+
+---`Method Private Instance`
+---@param characterId System.UInt16
+_G['CircuitBox'].ClearAllSelectionsInternal = function(characterId) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectLabelsInternal = function(ids, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectComponentsInternal = function(ids, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param nodeIds (System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16)|({[System.UInt16]:(Barotrauma.Option*1System*UInt16)})
+---@param wireIds (System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16)|({[System.UInt16]:(Barotrauma.Option*1System*UInt16)})
+---@param inputOutputs (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*CircuitBoxInputOutputNode*Type*1Barotrauma*Option*2System*UInt16)|({[Barotrauma.CircuitBoxInputOutputNode.Type]:(Barotrauma.Option*1System*UInt16)})
+---@param labels (System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16)|({[System.UInt16]:(Barotrauma.Option*1System*UInt16)})
+_G['CircuitBox'].UpdateSelections = function(nodeIds, wireIds, inputOutputs, labels) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectWiresInternal = function(ids, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param io (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxInputOutputNode*Type)|(fun():(Barotrauma.CircuitBoxInputOutputNode.Type))
+---@param characterId System.UInt16
+---@param overwrite System.Boolean
+_G['CircuitBox'].SelectInputOutputInternal = function(io, characterId, overwrite) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+_G['CircuitBox'].RemoveComponentInternal = function(ids) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+_G['CircuitBox'].RemoveWireInternal = function(ids) end
+
+---`Method Private Instance`
+---@param wire Barotrauma.CircuitBoxWire
+_G['CircuitBox'].RemoveWireCollectionUnsafe = function(wire) end
+
+---`Method Private Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param ios (System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxInputOutputNode*Type)|(fun():(Barotrauma.CircuitBoxInputOutputNode.Type))
+---@param labels (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+_G['CircuitBox'].MoveNodesInternal = function(ids, ios, labels, moveAmount) end
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CircuitBox'].Select = function(character) end
+
+---`Method Public Instance`
+_G['CircuitBox'].OnViewUpdateProjSpecific = function() end
+
+---`Method Public Instance Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+---@param connection Barotrauma.Items.Components.Connection
+_G['CircuitBox'].ReceiveSignal = function(signal, connection) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['CircuitBox'].IsRoundRunning = function() end
+
+---`Method Public Static`
+---@param itemId System.UInt16
+---@param componentIndex System.Byte
+---@return Barotrauma.Option*1Barotrauma*Items*Components*CircuitBox
+_G['CircuitBox'].FindCircuitBox = function(itemId, componentIndex) end
+
+---`Method Private Instance`
+---@param index System.Int32
+---@return Barotrauma.Items.Components.ItemContainer
+_G['CircuitBox'].GetContainerOrNull = function(index) end
+
+---`Method Public Instance`
+---@param ids (System.Collections.Generic.IReadOnlyCollection*1System*UInt16)|(fun():(System.UInt16))
+---@param character Barotrauma.Character
+_G['CircuitBox'].CreateRefundItemsForUsedResources = function(ids, character) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['CircuitBox'].GetSortedCircuitBoxItemsFromPlayer = function(character) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['CircuitBox'].CanItemBeAccessed = function(item) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['CircuitBox'].IsLocked = function() end
+
+---`Method Public Static`
+---@overload fun(prefab:Barotrauma.ItemPrefab, character:Barotrauma.Character):(Barotrauma.Option*1Barotrauma*Item)
+---@param prefab Barotrauma.ItemPrefab
+---@param playerItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*Item)|(Barotrauma.Item[])
+---@return Barotrauma.Option*1Barotrauma*Item
+_G['CircuitBox'].GetApplicableResourcePlayerHas = function(prefab, playerItems) end
+
+---`Method Public Static`
+---@param prefab Barotrauma.ItemPrefab
+---@param user Barotrauma.Character
+---@param container Barotrauma.Items.Components.ItemContainer
+---@param onSpawned (System.Action*1Barotrauma*Item)|(fun(obj:Barotrauma.Item))
+_G['CircuitBox'].SpawnItem = function(prefab, user, container, onSpawned) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+_G['CircuitBox'].RemoveItem = function(item) end
+
+---`Method Public Static`
+---@return System.Boolean
+_G['CircuitBox'].IsInGame = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['CircuitBox'].IsCircuitBoxSelected = function(character) end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(item:Barotrauma.Item, element:Barotrauma.ContentXElement):Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Items.Components.CircuitBox
+_G['CircuitBox'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9694C360.lua b/Meta/Types/server/_00007FFD9694C360.lua
new file mode 100644
index 0000000..f333ce8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694C360.lua
@@ -0,0 +1,61 @@
+---@meta
+---@class Barotrauma.CircuitBoxConnection : System.Object
+---`Field Public Instance`
+---@field Connection Barotrauma.Items.Components.Connection
+---`Field Public Instance`
+---@field Rect Microsoft.Xna.Framework.RectangleF
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ExternallyConnectedFrom (System.Collections.Generic.List*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---`Field Public Instance`
+---@field CircuitBox Barotrauma.Items.Components.CircuitBox
+---`Field Public Static`
+---@field Size System.Single
+---`Getter Public Instance`
+---@field Name System.String
+---`Getter Public Instance Abstract Virtual`
+---@field IsOutput System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Length System.Single
+---`Getter Public Instance`
+---@field AnchorPoint Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxConnection'] = {}
+
+---`Method Private Instance`
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+_G['CircuitBoxConnection'].InitProjSpecific = function(circuitBox) end
+
+---`Method Public Instance Abstract Virtual`
+---@param signal Barotrauma.Items.Components.Signal
+_G['CircuitBoxConnection'].ReceiveSignal = function(signal) end
+
+---`Method Public Instance`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['CircuitBoxConnection'].Contains = function(pos) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(position:Microsoft.Xna.Framework.Vector2, connection:Barotrauma.Items.Components.Connection, circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxConnection
+---@return Barotrauma.CircuitBoxConnection
+_G['CircuitBoxConnection'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9694D6E8.lua b/Meta/Types/server/_00007FFD9694D6E8.lua
new file mode 100644
index 0000000..77b34ef
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694D6E8.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.CircuitBoxSelectable : System.Object
+---`Field Public Instance`
+---@field IsSelected System.Boolean
+---`Field Public Instance`
+---@field SelectedBy System.UInt16
+---`Getter Public Instance`
+---@field IsSelectedByMe System.Boolean
+_G['CircuitBoxSelectable'] = {}
+
+---`Method Public Instance`
+---@param selectedBy Barotrauma.Option*1System*UInt16
+_G['CircuitBoxSelectable'].SetSelected = function(selectedBy) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CircuitBoxSelectable
+_G['CircuitBoxSelectable'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.CircuitBoxSelectable
+_G['CircuitBoxSelectable'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9694D8D0.lua b/Meta/Types/server/_00007FFD9694D8D0.lua
new file mode 100644
index 0000000..3e13cf9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694D8D0.lua
@@ -0,0 +1,60 @@
+---@meta
+---@class Barotrauma.CircuitBoxNode : Barotrauma.CircuitBoxSelectable
+---`Field Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Rect Microsoft.Xna.Framework.RectangleF
+---`Field Private Instance`
+---@field position Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Connectors (System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---`Field Public Instance`
+---@field CircuitBox Barotrauma.Items.Components.CircuitBox
+---`Field Public Static`
+---@field Opacity System.Single
+---`Getter Public Instance Virtual`
+---@field IsResizable System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxNode'] = {}
+
+---`Method Public Instance`
+---@param directions Barotrauma.CircuitBoxResizeDirection
+---@param amount Microsoft.Xna.Framework.Vector2
+---@return System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2
+_G['CircuitBoxNode'].ResizeBy = function(directions, amount) end
+
+---`Method Public Instance`
+---@param newSize Microsoft.Xna.Framework.Vector2
+---@param newPos Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxNode'].ApplyResize = function(newSize, newPos) end
+
+---`Method Public Static`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---@return Microsoft.Xna.Framework.Vector2
+_G['CircuitBoxNode'].CalculateSize = function(conns) end
+
+---`Method NonPublic Instance`
+_G['CircuitBoxNode'].UpdatePositions = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox):Barotrauma.CircuitBoxNode
+---@return Barotrauma.CircuitBoxNode
+_G['CircuitBoxNode'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9694DB00.lua b/Meta/Types/server/_00007FFD9694DB00.lua
new file mode 100644
index 0000000..815fc2e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694DB00.lua
@@ -0,0 +1,41 @@
+---@meta
+---@class Barotrauma.CircuitBoxComponent : Barotrauma.CircuitBoxNode
+---`Field Public Instance`
+---@field Item Barotrauma.Item
+---`Field Public Instance`
+---@field UsedResource Barotrauma.ItemPrefab
+---`Getter Public Instance Virtual`
+---@field ID System.UInt16
+_G['CircuitBoxComponent'] = {}
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxComponent
+_G['CircuitBoxComponent'].TryLoadFromXML = function(element, circuitBox) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['CircuitBoxComponent'].Save = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxComponent'].Remove = function() end
+
+---`Constructor Public Instance`
+---@param id System.UInt16
+---@param item Barotrauma.Item
+---@param position Microsoft.Xna.Framework.Vector2
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@param usedResource Barotrauma.ItemPrefab
+---@return Barotrauma.CircuitBoxComponent
+_G['CircuitBoxComponent'] = function(id, item, position, circuitBox, usedResource) end
+
+---`Constructor Public Instance`
+---@param id System.UInt16
+---@param item Barotrauma.Item
+---@param position Microsoft.Xna.Framework.Vector2
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@param usedResource Barotrauma.ItemPrefab
+---@return Barotrauma.CircuitBoxComponent
+_G['CircuitBoxComponent'].__new = function(id, item, position, circuitBox, usedResource) end
+
diff --git a/Meta/Types/server/_00007FFD9694E558.lua b/Meta/Types/server/_00007FFD9694E558.lua
new file mode 100644
index 0000000..c253279
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694E558.lua
@@ -0,0 +1,58 @@
+---@meta
+---@class Barotrauma.CircuitBoxWire : Barotrauma.CircuitBoxSelectable
+---`Field Public Instance`
+---@field From Barotrauma.CircuitBoxConnection
+---`Field Public Instance`
+---@field To Barotrauma.CircuitBoxConnection
+---`Field Public Instance`
+---@field BackingWire Barotrauma.Option*1Barotrauma*Item
+---`Field Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Field Public Instance`
+---@field UsedItemPrefab Barotrauma.ItemPrefab
+---`Field Public Static`
+---@field SelectedWirePrefab Barotrauma.ItemPrefab
+---`Field Public Static`
+---@field DefaultWireColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance Virtual`
+---@field ID System.UInt16
+---`Getter Public Static`
+---@field DefaultWirePrefab Barotrauma.ItemPrefab
+_G['CircuitBoxWire'] = {}
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['CircuitBoxWire'].Save = function() end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.Option*1Barotrauma*CircuitBoxWire
+_G['CircuitBoxWire'].TryLoadFromXML = function(element, circuitBox) end
+
+---`Method Public Instance`
+_G['CircuitBoxWire'].EnsureWireConnected = function() end
+
+---`Method Public Instance`
+_G['CircuitBoxWire'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(circuitBox:Barotrauma.Items.Components.CircuitBox, Id:System.UInt16, backingItem:Barotrauma.Option*1Barotrauma*Item, from:Barotrauma.CircuitBoxConnection, to:Barotrauma.CircuitBoxConnection, prefab:Barotrauma.ItemPrefab):Barotrauma.CircuitBoxWire
+---@return Barotrauma.CircuitBoxWire
+_G['CircuitBoxWire'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9694E9A8.lua b/Meta/Types/server/_00007FFD9694E9A8.lua
new file mode 100644
index 0000000..1827694
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694E9A8.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.CircuitBoxInputOutputNode : Barotrauma.CircuitBoxNode
+---`Field Public Instance`
+---@field NodeType Barotrauma.CircuitBoxInputOutputNode.Type
+---`Field Public Instance`
+---@field ConnectionLabelOverrides (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+---`Field Private Static`
+---@field MaxConnectionLabelLength System.Int32
+---`Field Private Static`
+---@field ConnectionLabelOverrideElementName System.String
+_G['CircuitBoxInputOutputNode'] = {}
+
+---`Method Public Instance`
+---@param replace (System.Collections.Generic.Dictionary*1System*String*1System*String)|({[System.String]:(System.String)})
+_G['CircuitBoxInputOutputNode'].ReplaceAllConnectionLabelOverrides = function(replace) end
+
+---`Method Private Instance`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+_G['CircuitBoxInputOutputNode'].InitSize = function(conns) end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['CircuitBoxInputOutputNode'].Save = function() end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['CircuitBoxInputOutputNode'].Load = function(element) end
+
+---`Constructor Public Instance`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---@param initialPosition Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.CircuitBoxInputOutputNode.Type
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.CircuitBoxInputOutputNode
+_G['CircuitBoxInputOutputNode'] = function(conns, initialPosition, type, circuitBox) end
+
+---`Constructor Public Instance`
+---@param conns (System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection)|(Barotrauma.CircuitBoxConnection[])
+---@param initialPosition Microsoft.Xna.Framework.Vector2
+---@param type Barotrauma.CircuitBoxInputOutputNode.Type
+---@param circuitBox Barotrauma.Items.Components.CircuitBox
+---@return Barotrauma.CircuitBoxInputOutputNode
+_G['CircuitBoxInputOutputNode'].__new = function(conns, initialPosition, type, circuitBox) end
+
diff --git a/Meta/Types/server/_00007FFD9694EAF0.lua b/Meta/Types/server/_00007FFD9694EAF0.lua
new file mode 100644
index 0000000..1a7477a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694EAF0.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.CircuitBoxSizes : System.Object
+---`Field Public Static`
+---@field ConnectorSize System.Int32
+---`Field Public Static`
+---@field AnchorOffset System.Int32
+---`Field Public Static`
+---@field NodeHeaderHeight System.Int32
+---`Field Public Static`
+---@field NodeInitialPadding System.Int32
+---`Field Public Static`
+---@field WireWidth System.Int32
+---`Field Public Static`
+---@field WireKnobLength System.Int32
+---`Field Public Static`
+---@field NodeHeaderTextPadding System.Int32
+---`Field Public Static`
+---@field NodeBodyTextPadding System.Int32
+---`Field Public Static`
+---@field PlayableAreaSize System.Single
+_G['CircuitBoxSizes'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9694F978.lua b/Meta/Types/server/_00007FFD9694F978.lua
new file mode 100644
index 0000000..2426064
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9694F978.lua
@@ -0,0 +1,266 @@
+---@meta
+---@class Barotrauma.SubmarineInfo : System.Object
+---`Field Private Instance`
+---@field hashTask System.Threading.Tasks.Task
+---`Field Private Instance`
+---@field hash Barotrauma.Md5Hash
+---`Field Public Instance`
+---@field LastModifiedTime System.DateTime
+---`Field Public Instance`
+---@field RecommendedCrewSizeMin System.Int32
+---`Field Public Instance`
+---@field RecommendedCrewSizeMax System.Int32
+---`Field Public Instance`
+---@field RecommendedCrewExperience Barotrauma.SubmarineInfo.CrewExperienceLevel
+---`Field Public Instance`
+---@field RequiredContentPackages (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field SubmarineClass Barotrauma.SubmarineClass
+---`Field Private Instance`
+---@field requiredContentPackagesInstalled System.Nullable*1System*Boolean
+---`Field Private Instance`
+---@field subsLeftBehind System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field LeftBehindDockingPortIDs (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Public Instance`
+---@field BlockedDockingPortIDs (System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])
+---`Field Public Instance`
+---@field OutpostGenerationParams Barotrauma.OutpostGenerationParams
+---`Field Public Instance`
+---@field OutpostNPCs (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Character)|({[Barotrauma.Identifier]:((System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[]))})
+---`Field Private Static`
+---@field savedSubmarines (System.Collections.Generic.List*1Barotrauma*SubmarineInfo)|(Barotrauma.SubmarineInfo[])
+---`Field Public Static`
+---@field HighestTier System.Int32
+---`Getter Public Static`
+---@field SavedSubmarines (System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo)|(fun():(Barotrauma.SubmarineInfo))
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Tags Barotrauma.SubmarineTag
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Tier System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EqualityCheckVal System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Name System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Price System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InitialSuppliesSpawned System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NoItems System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LowFuel System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GameVersion System.Version
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Type Barotrauma.SubmarineType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsManuallyOutfitted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutpostModuleInfo Barotrauma.OutpostModuleInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BeaconStationInfo Barotrauma.BeaconStationInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WreckInfo Barotrauma.WreckInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field EnemySubmarineInfo Barotrauma.EnemySubmarineInfo
+---`Getter Public Instance`
+---@field GetExtraSubmarineInfo Barotrauma.ExtraSubmarineInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OutpostTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field IsOutpost System.Boolean
+---`Getter Public Instance`
+---@field IsWreck System.Boolean
+---`Getter Public Instance`
+---@field IsBeacon System.Boolean
+---`Getter Public Instance`
+---@field IsEnemySubmarine System.Boolean
+---`Getter Public Instance`
+---@field IsPlayer System.Boolean
+---`Getter Public Instance`
+---@field IsRuin System.Boolean
+---`Getter Public Instance`
+---@field ShouldBeRuin System.Boolean
+---`Getter Public Instance`
+---@field IsCampaignCompatible System.Boolean
+---`Getter Public Instance`
+---@field IsCampaignCompatibleIgnoreClass System.Boolean
+---`Getter Public Instance`
+---@field AllowPreviewImage System.Boolean
+---`Getter Public Instance`
+---@field MD5Hash Barotrauma.Md5Hash
+---`Getter Public Instance`
+---@field CalculatingHash System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Dimensions Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CargoCapacity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field FilePath System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SubmarineElement System.Xml.Linq.XElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsFileCorrupted System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequiredContentPackagesInstalled System.Boolean
+---`Getter Public Instance`
+---@field SubsLeftBehind System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LeftBehindSubDockingPortOccupied System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LayersHiddenByDefault (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['SubmarineInfo'] = {}
+
+---`Method Public Static`
+---@param filePath System.String
+_G['SubmarineInfo'].RefreshSavedSub = function(filePath) end
+
+---`Method Public Static`
+_G['SubmarineInfo'].RefreshSavedSubs = function() end
+
+---`Method Public Static`
+---@overload fun(file:System.String):(System.Xml.Linq.XDocument)
+---@param file System.String
+---@param exception System.Exception-ref
+---@return System.Xml.Linq.XDocument
+_G['SubmarineInfo'].OpenFile = function(file, exception) end
+
+---`Method Public Instance`
+---@param location? Barotrauma.Location
+---@param characterList? (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---@return System.Int32
+_G['SubmarineInfo'].GetPrice = function(location, characterList) end
+
+---`Method Public Static`
+---@param price System.Int32
+---@return System.Int32
+_G['SubmarineInfo'].GetDefaultTier = function(price) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['SubmarineInfo'].ToString = function() end
+
+---`Method Public Instance`
+_G['SubmarineInfo'].Reload = function() end
+
+---`Method Private Instance`
+_G['SubmarineInfo'].Init = function() end
+
+---`Method Public Instance Virtual`
+_G['SubmarineInfo'].Dispose = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['SubmarineInfo'].IsVanillaSubmarine = function() end
+
+---`Method Public Instance`
+---@param doc System.Xml.Linq.XDocument
+_G['SubmarineInfo'].StartHashDocTask = function(doc) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.SubmarineTag
+---@return System.Boolean
+_G['SubmarineInfo'].HasTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.SubmarineTag
+_G['SubmarineInfo'].AddTag = function(tag) end
+
+---`Method Public Instance`
+---@param tag Barotrauma.SubmarineTag
+_G['SubmarineInfo'].RemoveTag = function(tag) end
+
+---`Method Public Instance`
+---@param element? System.Xml.Linq.XElement
+_G['SubmarineInfo'].CheckSubsLeftBehind = function(element) end
+
+---`Method Public Instance`
+---@param realWorldCrushDepth System.Single-ref
+---@return System.Boolean
+_G['SubmarineInfo'].IsCrushDepthDefinedInStructures = function(realWorldCrushDepth) end
+
+---`Method Public Instance`
+---@param npc Barotrauma.Character
+---@param idOrTag Barotrauma.Identifier
+_G['SubmarineInfo'].AddOutpostNPCIdentifierOrTag = function(npc, idOrTag) end
+
+---`Method Public Instance`
+---@param filePath System.String
+---@param previewImage? System.IO.MemoryStream
+_G['SubmarineInfo'].SaveAs = function(filePath, previewImage) end
+
+---`Method Public Static`
+---@param subInfo Barotrauma.SubmarineInfo
+_G['SubmarineInfo'].AddToSavedSubs = function(subInfo) end
+
+---`Method Public Static`
+---@param filePath System.String
+_G['SubmarineInfo'].RemoveSavedSub = function(filePath) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'] = function(original) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'].__new = function(original) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'] = function(original) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun():Barotrauma.SubmarineInfo
+---@overload fun(filePath:System.String, hash?:System.String, element?:System.Xml.Linq.XElement, tryLoad?:System.Boolean):Barotrauma.SubmarineInfo
+---@overload fun(sub:Barotrauma.Submarine):Barotrauma.SubmarineInfo
+---@param original Barotrauma.SubmarineInfo
+---@return Barotrauma.SubmarineInfo
+_G['SubmarineInfo'].__new = function(original) end
+
diff --git a/Meta/Types/server/_00007FFD96950E30.lua b/Meta/Types/server/_00007FFD96950E30.lua
new file mode 100644
index 0000000..857d8be
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96950E30.lua
@@ -0,0 +1,570 @@
+---@meta
+---@class Barotrauma.Submarine : Barotrauma.Entity
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Private Instance`
+---@field upgradeEventIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field subBody Barotrauma.SubmarineBody
+---`Field Public Instance`
+---@field ConnectedDockingPorts (System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1Barotrauma*Items*Components*DockingPort)|({[Barotrauma.Submarine]:(Barotrauma.Items.Components.DockingPort)})
+---`Field Private Instance`
+---@field prevPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field networkUpdateTimer System.Single
+---`Field Private Instance`
+---@field entityGrid Barotrauma.EntityGrid
+---`Field Public Instance`
+---@field ShowSonarMarker System.Boolean
+---`Field Public Instance`
+---@field ForcedOutpostModuleWayPoints (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field realWorldCrushDepth System.Nullable*1System*Single
+---`Field Private Instance`
+---@field submarineSpecificIDTag System.Nullable*1System*Int32
+---`Field Private Instance`
+---@field exitPoints (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Field Private Instance`
+---@field ballastFloraTimer System.Single
+---`Field Private Instance`
+---@field connectedSubs (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Instance`
+---@field flippedX System.Boolean
+---`Field Private Instance`
+---@field outdoorNodes (System.Collections.Generic.List*1Barotrauma*PathNode)|(Barotrauma.PathNode[])
+---`Field Private Instance`
+---@field obstructedNodes (System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*HashSet*2Barotrauma*PathNode)|({[Barotrauma.Submarine]:((System.Collections.Generic.HashSet*1Barotrauma*PathNode)|(Barotrauma.PathNode[]))})
+---`Field Public Static`
+---@field HiddenSubStartPosition Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field LockX System.Boolean
+---`Field Public Static`
+---@field LockY System.Boolean
+---`Field Public Static`
+---@field GridSize Microsoft.Xna.Framework.Vector2
+---`Field Public Static`
+---@field MainSubs (Barotrauma.Submarine-arr)|(Barotrauma.Submarine[])
+---`Field Private Static`
+---@field loaded (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Static`
+---@field visibleEntities (System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])
+---`Field Private Static`
+---@field lastPickedPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field lastPickedFraction System.Single
+---`Field Private Static`
+---@field lastPickedFixture FarseerPhysics.Dynamics.Fixture
+---`Field Private Static`
+---@field lastPickedNormal Microsoft.Xna.Framework.Vector2
+---`Field Private Static`
+---@field checkSubmarineBorders (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Private Static`
+---@field bodyDist (System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1System*Single)|({[FarseerPhysics.Dynamics.Body]:(System.Single)})
+---`Field Private Static`
+---@field bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Info Barotrauma.SubmarineInfo
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HiddenSubPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IdOffset System.UInt16
+---`Getter Public Static`
+---
`Setter Public Static`
+---@field MainSub Barotrauma.Submarine
+---`Getter Public Static`
+---@field VisibleEntities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+---`Getter Public Instance`
+---@field DockedTo (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+---`Getter Public Static`
+---@field LastPickedPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Static`
+---@field LastPickedFraction System.Single
+---`Getter Public Static`
+---@field LastPickedFixture FarseerPhysics.Dynamics.Fixture
+---`Getter Public Static`
+---@field LastPickedNormal Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Loading System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GodMode System.Boolean
+---`Getter Public Static`
+---@field Loaded (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Getter Public Instance`
+---@field SubBody Barotrauma.SubmarineBody
+---`Getter Public Instance`
+---@field PhysicsBody Barotrauma.PhysicsBody
+---`Getter Public Instance`
+---@field Borders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field VisibleBorders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field RealWorldCrushDepth System.Single
+---`Getter Public Instance`
+---@field RealWorldDepth System.Single
+---`Getter Public Instance`
+---@field IsAboveLevel System.Boolean
+---`Getter Public Instance`
+---@field AtEndExit System.Boolean
+---`Getter Public Instance`
+---@field AtStartExit System.Boolean
+---`Getter Public Instance`
+---@field AtEitherExit System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Velocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field HullVertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Getter Public Instance`
+---@field SubmarineSpecificIDTag System.Int32
+---`Getter Public Instance`
+---@field AtDamageDepth System.Boolean
+---`Getter Public Instance`
+---@field IsRespawnShuttle System.Boolean
+---`Getter Public Instance`
+---@field ExitPoints (System.Collections.Generic.IReadOnlyList*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImmuneToBallastFlora System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field WreckAI Barotrauma.WreckAI
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TurretAI Barotrauma.SubmarineTurretAI
+---`Getter Public Instance`
+---@field FlippedX System.Boolean
+---`Getter Public Static`
+---
`Setter Private Static`
+---@field Unloading System.Boolean
+---`Getter Private Instance`
+---@field OutdoorNodes (System.Collections.Generic.List*1Barotrauma*PathNode)|(Barotrauma.PathNode[])
+_G['Submarine'] = {}
+
+---`Method Public Instance`
+_G['Submarine'].NeutralizeBallast = function() end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+_G['Submarine'].SetPrevTransform = function(position) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param checkd? (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---@param forceUndockFromStaticSubmarines? System.Boolean
+_G['Submarine'].SetPosition = function(position, checkd, forceUndockFromStaticSubmarines) end
+
+---`Method Public Static`
+---@param sub Barotrauma.Submarine
+---@param dockedSub Barotrauma.Submarine
+---@return System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['Submarine'].CalculateDockOffset = function(sub, dockedSub) end
+
+---`Method Public Instance`
+---@param amount Microsoft.Xna.Framework.Vector2
+_G['Submarine'].Translate = function(amount) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param ignoreOutposts? System.Boolean
+---@param ignoreOutsideLevel? System.Boolean
+---@param ignoreRespawnShuttle? System.Boolean
+---@param teamType? System.Nullable*1Barotrauma*CharacterTeamType
+---@return Barotrauma.Submarine
+_G['Submarine'].FindClosest = function(worldPosition, ignoreOutposts, ignoreOutsideLevel, ignoreRespawnShuttle, teamType) end
+
+---`Method Public Instance`
+---@param otherSub Barotrauma.Submarine
+---@return System.Boolean
+_G['Submarine'].IsConnectedTo = function(otherSub) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Hull)|(Barotrauma.Hull[])
+_G['Submarine'].GetHulls = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Gap)|(Barotrauma.Gap[])
+_G['Submarine'].GetGaps = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['Submarine'].GetItems = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*WayPoint)|(Barotrauma.WayPoint[])
+_G['Submarine'].GetWaypoints = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@param alsoFromConnectedSubs System.Boolean
+---@return (System.Collections.Generic.List*1Barotrauma*Structure)|(Barotrauma.Structure[])
+_G['Submarine'].GetWalls = function(alsoFromConnectedSubs) end
+
+---`Method Public Instance`
+---@overload fun(includingConnectedSubs:System.Boolean, list:(System.Collections.Generic.List*1Barotrauma*Submarine*T)|(Barotrauma.Submarine.T[])):((System.Collections.Generic.List*1Barotrauma*Submarine*T)|(Barotrauma.Submarine.T[]))
+---@param includingConnectedSubs System.Boolean
+---@param list (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine*T)|(fun():(Barotrauma.Submarine.T))
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine*T)|(fun():(Barotrauma.Submarine.T))
+_G['Submarine'].GetEntities = function(includingConnectedSubs, list) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*ItemContainer*2System*Int32)|(System.ValueTuple*1Barotrauma*Items*Components*ItemContainer*1System*Int32[])
+_G['Submarine'].GetCargoContainers = function() end
+
+---`Method Public Instance`
+---@param entity Barotrauma.MapEntity
+---@param includingConnectedSubs System.Boolean
+---@param allowDifferentTeam? System.Boolean
+---@param allowDifferentType? System.Boolean
+---@return System.Boolean
+_G['Submarine'].IsEntityFoundOnThisSub = function(entity, includingConnectedSubs, allowDifferentTeam, allowDifferentType) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param inflate? System.Single
+---@return Barotrauma.Submarine
+_G['Submarine'].FindContainingInLocalCoordinates = function(position, inflate) end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param inflate? System.Single
+---@return Barotrauma.Submarine
+_G['Submarine'].FindContaining = function(worldPosition, inflate) end
+
+---`Method Public Static`
+---@param submarineElement System.Xml.Linq.XElement
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].GetBorders = function(submarineElement) end
+
+---`Method NonPublic Instance Virtual`
+---@param id System.UInt16
+---@param submarine Barotrauma.Submarine
+---@return System.UInt16
+_G['Submarine'].DetermineID = function(id, submarine) end
+
+---`Method Public Static`
+---@param info Barotrauma.SubmarineInfo
+---@param unloadPrevious System.Boolean
+---@param linkedRemap? Barotrauma.IdRemap
+---@return Barotrauma.Submarine
+_G['Submarine'].Load = function(info, unloadPrevious, linkedRemap) end
+
+---`Method Private Instance`
+_G['Submarine'].ResetCrushDepth = function() end
+
+---`Method Public Instance`
+---@param realWorldCrushDepth System.Single
+_G['Submarine'].SetCrushDepth = function(realWorldCrushDepth) end
+
+---`Method Public Static`
+---@param moveAmount Microsoft.Xna.Framework.Vector2
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['Submarine'].RepositionEntities = function(moveAmount, entities) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Submarine'].CheckFuel = function() end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Submarine'].SaveToXElement = function(element) end
+
+---`Method Public Instance`
+---@param filePath System.String
+---@param previewImage? System.IO.MemoryStream
+---@return System.Boolean
+_G['Submarine'].TrySaveAs = function(filePath, previewImage) end
+
+---`Method Public Static`
+_G['Submarine'].Unload = function() end
+
+---`Method Public Instance Virtual`
+_G['Submarine'].Remove = function() end
+
+---`Method Public Instance`
+_G['Submarine'].Dispose = function() end
+
+---`Method Private Instance`
+_G['Submarine'].GenerateOutdoorNodes = function() end
+
+---`Method Public Instance`
+---@overload fun()
+---@param otherSub Barotrauma.Submarine
+_G['Submarine'].DisableObstructedWayPoints = function(otherSub) end
+
+---`Method Public Instance`
+---@param otherSub Barotrauma.Submarine
+_G['Submarine'].EnableObstructedWaypoints = function(otherSub) end
+
+---`Method Public Instance`
+_G['Submarine'].RefreshOutdoorNodes = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param onlyPrimary System.Boolean
+---@param checkTransferConditions? System.Boolean
+---@param allowConnectedSubs? System.Boolean
+---@return Barotrauma.Item
+_G['Submarine'].FindContainerFor = function(item, onlyPrimary, checkTransferConditions, allowConnectedSubs) end
+
+---`Method Public Static`
+---@overload fun(from:Barotrauma.ISpatialEntity, to:Barotrauma.ISpatialEntity, targetWorldPos?:System.Nullable*1Microsoft*Xna*Framework*Vector2):(Microsoft.Xna.Framework.Vector2)
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@param fromSub Barotrauma.Submarine
+---@param toSub Barotrauma.Submarine
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].GetRelativeSimPosition = function(targetSimPos, fromSub, toSub) end
+
+---`Method Public Static`
+---@param targetWorldPos Microsoft.Xna.Framework.Vector2
+---@param fromSub Barotrauma.Submarine
+---@param toSub Barotrauma.Submarine
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].GetRelativeSimPositionFromWorldPosition = function(targetWorldPos, fromSub, toSub) end
+
+---`Method Public Instance Virtual`
+---@param tempBuffer Barotrauma.Networking.ReadWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['Submarine'].ServerWritePosition = function(tempBuffer, c) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Submarine'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Static`
+---@param teamPerks (System.Collections.Immutable.ImmutableArray*1Barotrauma*DisembarkPerkPrefab)|(Barotrauma.DisembarkPerkPrefab[])
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*PerkBehaviors*SubItemSwapPerk)|(Barotrauma.PerkBehaviors.SubItemSwapPerk[])
+_G['Submarine'].GetSubItemSwapPerksFromTeamPerks = function(teamPerks) end
+
+---`Method Private Instance`
+---@param outpost Barotrauma.Submarine
+---@return System.Boolean
+_G['Submarine'].IsAtOutpostExit = function(outpost) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Submarine'].ToString = function() end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['Submarine'].CalculateBasePrice = function() end
+
+---`Method Public Instance`
+---@param identifier Barotrauma.Identifier
+---@param deltaTime System.Single
+---@param probability System.Single
+_G['Submarine'].AttemptBallastFloraInfection = function(identifier, deltaTime, probability) end
+
+---`Method Public Instance`
+_G['Submarine'].MakeWreck = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Submarine'].CreateWreckAI = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Submarine'].CreateTurretAI = function() end
+
+---`Method Public Instance`
+_G['Submarine'].DisableWreckAI = function() end
+
+---`Method Public Instance`
+---@param allowDifferentTeam? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].GetDockedBorders = function(allowDifferentTeam) end
+
+---`Method Private Instance`
+---@param allowDifferentTeam System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].GetDockedBordersRecursive = function(allowDifferentTeam) end
+
+---`Method Public Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+_G['Submarine'].GetConnectedSubs = function() end
+
+---`Method Public Instance`
+_G['Submarine'].RefreshConnectedSubs = function() end
+
+---`Method Private Instance`
+---@param subs (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+_G['Submarine'].GetConnectedSubsRecursive = function(subs) end
+
+---`Method Public Instance`
+---@param spawnPos Microsoft.Xna.Framework.Vector2
+---@param submarineSize? System.Nullable*1Microsoft*Xna*Framework*Point
+---@param subDockingPortOffset? System.Single
+---@param verticalMoveDir? System.Int32
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].FindSpawnPos = function(spawnPos, submarineSize, subDockingPortOffset, verticalMoveDir) end
+
+---`Method Public Instance`
+---@param interpolate? System.Boolean
+_G['Submarine'].UpdateTransform = function(interpolate) end
+
+---`Method Public Static`
+---@param position Microsoft.Xna.Framework.Vector2
+---@param sub? Barotrauma.Submarine
+---@param round? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Submarine'].VectorToWorldGrid = function(position, sub, round) end
+
+---`Method Public Instance`
+---@param onlyHulls? System.Boolean
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].CalculateDimensions = function(onlyHulls) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Submarine'].AbsRect = function(pos, size) end
+
+---`Method Public Static`
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param size Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.RectangleF
+_G['Submarine'].AbsRectF = function(pos, size) end
+
+---`Method Public Static`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param pos Microsoft.Xna.Framework.Vector2
+---@param inclusive? System.Boolean
+---@return System.Boolean
+_G['Submarine'].RectContains = function(rect, pos, inclusive) end
+
+---`Method Public Static`
+---@overload fun(rect1:Microsoft.Xna.Framework.Rectangle, rect2:Microsoft.Xna.Framework.Rectangle, inclusive?:System.Boolean):(System.Boolean)
+---@param rect1 Microsoft.Xna.Framework.RectangleF
+---@param rect2 Microsoft.Xna.Framework.RectangleF
+---@param inclusive? System.Boolean
+---@return System.Boolean
+_G['Submarine'].RectsOverlap = function(rect1, rect2, inclusive) end
+
+---`Method Public Static`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param ignoredBodies? (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---@param collisionCategory? System.Nullable*1FarseerPhysics*Dynamics*Category
+---@param ignoreSensors? System.Boolean
+---@param customPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@param allowInsideFixture? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['Submarine'].PickBody = function(rayStart, rayEnd, ignoredBodies, collisionCategory, ignoreSensors, customPredicate, allowInsideFixture) end
+
+---`Method Public Static`
+---@param body FarseerPhysics.Dynamics.Body
+---@return System.Single
+_G['Submarine'].LastPickedBodyDist = function(body) end
+
+---`Method Public Static`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param ignoredBodies? (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---@param collisionCategory? System.Nullable*1FarseerPhysics*Dynamics*Category
+---@param ignoreSensors? System.Boolean
+---@param customPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@param allowInsideFixture? System.Boolean
+---@return (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+_G['Submarine'].PickBodies = function(rayStart, rayEnd, ignoredBodies, collisionCategory, ignoreSensors, customPredicate, allowInsideFixture) end
+
+---`Method Private Static`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@param ignoredBodies? (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body)|(fun():(FarseerPhysics.Dynamics.Body))
+---@param collisionCategory? System.Nullable*1FarseerPhysics*Dynamics*Category
+---@param ignoreSensors? System.Boolean
+---@param customPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@return System.Boolean
+_G['Submarine'].CheckFixtureCollision = function(fixture, ignoredBodies, collisionCategory, ignoreSensors, customPredicate) end
+
+---`Method Public Static`
+---@param rayStart Microsoft.Xna.Framework.Vector2
+---@param rayEnd Microsoft.Xna.Framework.Vector2
+---@param ignoreLevel? System.Boolean
+---@param ignoreSubs? System.Boolean
+---@param ignoreSensors? System.Boolean
+---@param ignoreDisabledWalls? System.Boolean
+---@param ignoreBranches? System.Boolean
+---@param blocksVisibilityPredicate? (System.Predicate*1FarseerPhysics*Dynamics*Fixture)|(fun(obj:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---@return FarseerPhysics.Dynamics.Body
+_G['Submarine'].CheckVisibility = function(rayStart, rayEnd, ignoreLevel, ignoreSubs, ignoreSensors, ignoreDisabledWalls, ignoreBranches, blocksVisibilityPredicate) end
+
+---`Method Public Instance`
+---@param parents? (System.Collections.Generic.List*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+_G['Submarine'].FlipX = function(parents) end
+
+---`Method Public Instance`
+---@param factionIdentifier Barotrauma.Identifier
+_G['Submarine'].EnableFactionSpecificEntities = function(factionIdentifier) end
+
+---`Method Public Static`
+---@param layer Barotrauma.Identifier
+---@return System.Boolean
+_G['Submarine'].LayerExistsInAnySub = function(layer) end
+
+---`Method Public Instance`
+---@param layer Barotrauma.Identifier
+---@return System.Boolean
+_G['Submarine'].LayerExists = function(layer) end
+
+---`Method Public Instance`
+---@param layer Barotrauma.Identifier
+---@param enabled System.Boolean
+---@param sendNetworkEvent? System.Boolean
+_G['Submarine'].SetLayerEnabled = function(layer, enabled, sendNetworkEvent) end
+
+---`Method Public Static`
+---@param layer Barotrauma.Identifier
+---@param enabled System.Boolean
+---@param entities (System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity)|(fun():(Barotrauma.MapEntity))
+_G['Submarine'].SetLayerEnabled = function(layer, enabled, entities) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Submarine'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+---@param force Microsoft.Xna.Framework.Vector2
+_G['Submarine'].ApplyForce = function(force) end
+
+---`Method Public Instance`
+_G['Submarine'].EnableMaintainPosition = function() end
+
+---`Constructor Public Instance`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(info:Barotrauma.SubmarineInfo, showErrorMessages?:System.Boolean, loadEntities?:(System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity)|(fun(arg:Barotrauma.Submarine):((System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[]))), linkedRemap?:Barotrauma.IdRemap):Barotrauma.Submarine
+---@return Barotrauma.Submarine
+_G['Submarine'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969513C8.lua b/Meta/Types/server/_00007FFD969513C8.lua
new file mode 100644
index 0000000..5325c7e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969513C8.lua
@@ -0,0 +1,148 @@
+---@meta
+---@class Barotrauma.SubmarineBody : System.Object
+---`Field Private Instance`
+---@field levelContacts (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Contacts*Contact)|(FarseerPhysics.Dynamics.Contacts.Contact[])
+---`Field Private Instance`
+---@field depthDamageTimer System.Single
+---`Field Private Instance`
+---@field damageSoundTimer System.Single
+---`Field Private Instance`
+---@field submarine Barotrauma.Submarine
+---`Field Public Instance`
+---@field Body Barotrauma.PhysicsBody
+---`Field Private Instance`
+---@field positionBuffer (System.Collections.Generic.List*1Barotrauma*PosInfo)|(Barotrauma.PosInfo[])
+---`Field Private Instance`
+---@field impactQueue (System.Collections.Generic.Queue*1Barotrauma*SubmarineBody*Impact)|(fun():(Barotrauma.SubmarineBody.Impact))
+---`Field Private Instance`
+---@field forceUpwardsTimer System.Single
+---`Field Public Static`
+---@field NeutralBallastPercentage System.Single
+---`Field Public Static`
+---@field CollidesWith FarseerPhysics.Dynamics.Category
+---`Field Private Static`
+---@field HorizontalDrag System.Single
+---`Field Private Static`
+---@field VerticalDrag System.Single
+---`Field Private Static`
+---@field MaxDrag System.Single
+---`Field Private Static`
+---@field ImpactDamageMultiplier System.Single
+---`Field Private Static`
+---@field MinImpactLimbMass System.Single
+---`Field Private Static`
+---@field MinCollisionImpact System.Single
+---`Field Private Static`
+---@field MaxCollisionImpact System.Single
+---`Field Private Static`
+---@field Friction System.Single
+---`Field Private Static`
+---@field Restitution System.Single
+---`Field Private Static`
+---@field ForceUpwardsDelay System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HullVertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Borders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VisibleBorders Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Velocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field PositionBuffer (System.Collections.Generic.List*1Barotrauma*PosInfo)|(Barotrauma.PosInfo[])
+---`Getter Public Instance`
+---@field Submarine Barotrauma.Submarine
+_G['SubmarineBody'] = {}
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+_G['SubmarineBody'].GenerateConvexHull = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['SubmarineBody'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param subTranslation Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].DisplaceCharacters = function(subTranslation) end
+
+---`Method Private Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].CalculateBuoyancy = function() end
+
+---`Method Public Instance`
+---@param force Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].ApplyForce = function(force) end
+
+---`Method Public Instance`
+---@param position Microsoft.Xna.Framework.Vector2
+_G['SubmarineBody'].SetPosition = function(position) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['SubmarineBody'].UpdateDepthDamage = function(deltaTime) end
+
+---`Method Public Instance`
+_G['SubmarineBody'].FlipX = function() end
+
+---`Method Public Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['SubmarineBody'].OnCollision = function(f1, f2, contact) end
+
+---`Method Private Instance`
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['SubmarineBody'].CheckCharacterCollision = function(contact, character) end
+
+---`Method Private Instance`
+---@param collision Barotrauma.SubmarineBody.Impact
+---@param limb Barotrauma.Limb
+_G['SubmarineBody'].HandleLimbCollision = function(collision, limb) end
+
+---`Method Private Static`
+---@param body Barotrauma.PhysicsBody
+---@return (System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Contacts*Contact)|(fun():(FarseerPhysics.Dynamics.Contacts.Contact))
+_G['SubmarineBody'].GetLevelContacts = function(body) end
+
+---`Method Private Instance`
+---@param impact Barotrauma.SubmarineBody.Impact
+---@param cell? Voronoi2.VoronoiCell
+_G['SubmarineBody'].HandleLevelCollision = function(impact, cell) end
+
+---`Method Private Instance`
+---@param impact Barotrauma.SubmarineBody.Impact
+---@param otherSub Barotrauma.Submarine
+_G['SubmarineBody'].HandleSubCollision = function(impact, otherSub) end
+
+---`Method Private Instance`
+---@param impact System.Single
+---@param direction Microsoft.Xna.Framework.Vector2
+---@param impactPos Microsoft.Xna.Framework.Vector2
+---@param applyDamage? System.Boolean
+_G['SubmarineBody'].ApplyImpact = function(impact, direction, impactPos, applyDamage) end
+
+---`Method Public Instance`
+_G['SubmarineBody'].Remove = function() end
+
+---`Constructor Public Instance`
+---@param sub Barotrauma.Submarine
+---@param showErrorMessages? System.Boolean
+---@return Barotrauma.SubmarineBody
+_G['SubmarineBody'] = function(sub, showErrorMessages) end
+
+---`Constructor Public Instance`
+---@param sub Barotrauma.Submarine
+---@param showErrorMessages? System.Boolean
+---@return Barotrauma.SubmarineBody
+_G['SubmarineBody'].__new = function(sub, showErrorMessages) end
+
diff --git a/Meta/Types/server/_00007FFD96951608.lua b/Meta/Types/server/_00007FFD96951608.lua
new file mode 100644
index 0000000..10833bc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96951608.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.WallSection : System.Object
+---`Field Public Instance`
+---@field rect Microsoft.Xna.Framework.Rectangle
+---`Field Public Instance`
+---@field damage System.Single
+---`Field Public Instance`
+---@field gap Barotrauma.Gap
+---`Field Public Instance`
+---@field NoPhysicsBody System.Boolean
+---`Getter Public Instance`
+---@field Wall Barotrauma.Structure
+---`Getter Public Instance Virtual`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field WorldPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---@field Submarine Barotrauma.Submarine
+---`Getter Public Instance`
+---@field WorldRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field OrderedToBeIgnored System.Boolean
+_G['WallSection'] = {}
+
+---`Method Public Instance Virtual`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['WallSection'].IgnoreByAI = function(character) end
+
+---`Constructor Public Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param wall Barotrauma.Structure
+---@param damage? System.Single
+---@return Barotrauma.WallSection
+_G['WallSection'] = function(rect, wall, damage) end
+
+---`Constructor Public Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param wall Barotrauma.Structure
+---@param damage? System.Single
+---@return Barotrauma.WallSection
+_G['WallSection'].__new = function(rect, wall, damage) end
+
diff --git a/Meta/Types/server/_00007FFD969521D0.lua b/Meta/Types/server/_00007FFD969521D0.lua
new file mode 100644
index 0000000..360cd66
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969521D0.lua
@@ -0,0 +1,368 @@
+---@meta
+---@class Barotrauma.Structure : Barotrauma.MapEntity
+---`Field Private Instance`
+---@field bodyDimensions (System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1Microsoft*Xna*Framework*Vector2)|({[FarseerPhysics.Dynamics.Body]:(Microsoft.Xna.Framework.Vector2)})
+---`Field Private Instance`
+---@field maxHealth System.Nullable*1System*Single
+---`Field Private Instance`
+---@field crushDepth System.Single
+---`Field NonPublic Instance`
+---@field spriteColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field scale System.Single
+---`Field NonPublic Instance`
+---@field rotationRad System.Single
+---`Field NonPublic Instance`
+---@field textureScale Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field textureOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field defaultRect Microsoft.Xna.Framework.Rectangle
+---`Field Public Static`
+---@field WallList (System.Collections.Generic.List*1Barotrauma*Structure)|(Barotrauma.Structure[])
+---`Field Private Static`
+---@field explosionOnBroken Barotrauma.Explosion
+---`Field Public Static`
+---@field WallSectionSize System.Int32
+---`Field Private Static`
+---@field LeakThreshold System.Single
+---`Field Private Static`
+---@field BigGapThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Indestructible System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sections (Barotrauma.WallSection-arr)|(Barotrauma.WallSection[])
+---`Getter Public Instance Virtual`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field IsPlatform System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StairDirection Barotrauma.Direction
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance`
+---@field HasBody System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Bodies (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CastShadow System.Boolean
+---`Getter Public Instance`
+---@field IsHorizontal System.Boolean
+---`Getter Public Instance`
+---@field SectionCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxHealth System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CrushDepth System.Single
+---`Getter Public Instance Virtual`
+---@field Health System.Single
+---`Getter Public Instance Virtual`
+---@field DrawBelowWater System.Boolean
+---`Getter Public Instance Virtual`
+---@field DrawOverWater System.Boolean
+---`Getter Public Instance`
+---@field DrawDamageEffect System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HasDamage System.Boolean
+---`Getter Public Instance`
+---@field Prefab Barotrauma.StructurePrefab
+---`Getter Public Instance`
+---@field Tags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpecialTag System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpriteColor Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseDropShadow System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DropShadowOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextureScale Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ScaleWhenTextureOffsetSet System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TextureOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DefaultRect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Rect Microsoft.Xna.Framework.Rectangle
+---`Getter Public Instance`
+---@field BodyWidth System.Single
+---`Getter Public Instance`
+---@field BodyHeight System.Single
+---`Getter Public Instance`
+---@field BodyRotation System.Single
+---`Getter Public Instance`
+---@field BodyOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NoAITarget System.Boolean
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter NonPublic Instance`
+---@field DirectionUnit Microsoft.Xna.Framework.Vector2
+_G['Structure'] = {}
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Structure'].FlipY = function(relativeToSub) end
+
+---`Method Public Static`
+---@param element Barotrauma.ContentXElement
+---@param submarine Barotrauma.Submarine
+---@param idRemap Barotrauma.IdRemap
+---@return Barotrauma.Structure
+_G['Structure'].Load = function(element, submarine, idRemap) end
+
+---`Method Public Static`
+---@param name System.String
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.StructurePrefab
+_G['Structure'].FindPrefab = function(name, identifier) end
+
+---`Method Public Instance Virtual`
+---@param parentElement System.Xml.Linq.XElement
+---@return System.Xml.Linq.XElement
+_G['Structure'].Save = function(parentElement) end
+
+---`Method Public Instance Virtual`
+_G['Structure'].OnMapLoaded = function() end
+
+---`Method Public Instance Virtual`
+_G['Structure'].Reset = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+---@param cam Barotrauma.Camera
+_G['Structure'].Update = function(deltaTime, cam) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['Structure'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance Virtual`
+---@param amount Microsoft.Xna.Framework.Vector2
+---@param ignoreContacts? System.Boolean
+_G['Structure'].Move = function(amount, ignoreContacts) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Structure'].ToString = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.MapEntity
+_G['Structure'].Clone = function() end
+
+---`Method Private Instance`
+_G['Structure'].CreateStairBodies = function() end
+
+---`Method Private Instance`
+_G['Structure'].CreateSections = function() end
+
+---`Method Private Instance`
+---@param mergedSections (System.Collections.Generic.List*1Barotrauma*WallSection)|(Barotrauma.WallSection[])
+---@return Microsoft.Xna.Framework.Rectangle
+_G['Structure'].GenerateMergedRect = function(mergedSections) end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Quad2D
+_G['Structure'].GetTransformedQuad = function() end
+
+---`Method Public Static`
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Structure
+_G['Structure'].GetAttachTarget = function(worldPosition) end
+
+---`Method Public Instance Virtual`
+---@param position Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Structure'].IsMouseOn = function(position) end
+
+---`Method Public Instance Virtual`
+_G['Structure'].ShallowRemove = function() end
+
+---`Method Public Instance Virtual`
+_G['Structure'].Remove = function() end
+
+---`Method Private Instance`
+---@param f1 FarseerPhysics.Dynamics.Fixture
+---@param f2 FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['Structure'].OnWallCollision = function(f1, f2, contact) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return Barotrauma.WallSection
+_G['Structure'].GetSection = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['Structure'].SectionBodyDisabled = function(sectionIndex) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Structure'].AllSectionBodiesDisabled = function() end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['Structure'].SectionIsLeaking = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Boolean
+_G['Structure'].SectionIsLeakingFromOutside = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Int32
+_G['Structure'].SectionLength = function(sectionIndex) end
+
+---`Method Public Instance Virtual`
+---@param upgrade Barotrauma.Upgrade
+---@param createNetworkEvent? System.Boolean
+---@return System.Boolean
+_G['Structure'].AddUpgrade = function(upgrade, createNetworkEvent) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@param damage System.Single
+---@param attacker? Barotrauma.Character
+---@param emitParticles? System.Boolean
+---@param createWallDamageProjectiles? System.Boolean
+_G['Structure'].AddDamage = function(sectionIndex, damage, attacker, emitParticles, createWallDamageProjectiles) end
+
+---`Method Public Instance Virtual`
+---@param attacker Barotrauma.Character
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param attack Barotrauma.Attack
+---@param impulseDirection Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@return Barotrauma.AttackResult
+_G['Structure'].AddDamage = function(attacker, worldPosition, attack, impulseDirection, deltaTime, playSound) end
+
+---`Method Public Instance`
+---@param displayPos Microsoft.Xna.Framework.Vector2
+---@param world? System.Boolean
+---@param clamp? System.Boolean
+---@return System.Int32
+_G['Structure'].FindSectionIndex = function(displayPos, world, clamp) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@return System.Single
+_G['Structure'].SectionDamage = function(sectionIndex) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@param world? System.Boolean
+---@return Microsoft.Xna.Framework.Vector2
+_G['Structure'].SectionPosition = function(sectionIndex, world) end
+
+---`Method Public Instance`
+---@param sectionIndex System.Int32
+---@param damage System.Single
+---@param attacker? Barotrauma.Character
+---@param createNetworkEvent? System.Boolean
+---@param isNetworkEvent? System.Boolean
+---@param createExplosionEffect? System.Boolean
+---@param createWallDamageProjectiles? System.Boolean
+_G['Structure'].SetDamage = function(sectionIndex, damage, attacker, createNetworkEvent, isNetworkEvent, createExplosionEffect, createWallDamageProjectiles) end
+
+---`Method Private Static`
+---@param gap Barotrauma.Gap
+---@param attacker Barotrauma.Character
+---@param createProjectiles System.Boolean
+_G['Structure'].CreateWallDamageExplosion = function(gap, attacker, createProjectiles) end
+
+---`Method Private Instance`
+---@param attacker Barotrauma.Character
+---@param damageAmount System.Single
+_G['Structure'].OnHealthChangedProjSpecific = function(attacker, damageAmount) end
+
+---`Method Public Instance`
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+_G['Structure'].SetCollisionCategory = function(collisionCategory) end
+
+---`Method Private Instance`
+_G['Structure'].UpdateSections = function() end
+
+---`Method Private Instance`
+---@param rect Microsoft.Xna.Framework.Rectangle
+---@param createConvexHull System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['Structure'].CreateRectBody = function(rect, createConvexHull) end
+
+---`Method Public Instance Virtual`
+---@param relativeToSub System.Boolean
+_G['Structure'].FlipX = function(relativeToSub) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'] = function(rectangle, sp, submarine, id, element) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'].__new = function(rectangle, sp, submarine, id, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'] = function(rectangle, sp, submarine, id, element) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Structure
+---@param rectangle Microsoft.Xna.Framework.Rectangle
+---@param sp Barotrauma.StructurePrefab
+---@param submarine Barotrauma.Submarine
+---@param id? System.UInt16
+---@param element? System.Xml.Linq.XElement
+---@return Barotrauma.Structure
+_G['Structure'].__new = function(rectangle, sp, submarine, id, element) end
+
diff --git a/Meta/Types/server/_00007FFD96952728.lua b/Meta/Types/server/_00007FFD96952728.lua
new file mode 100644
index 0000000..67b872f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96952728.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.AfflictionPrefabHusk : Barotrauma.AfflictionPrefab
+---`Field Public Instance`
+---@field AttachLimbId System.Int32
+---`Field Public Instance`
+---@field AttachLimbName System.String
+---`Field Public Instance`
+---@field AttachLimbType Barotrauma.LimbType
+---`Field Public Instance`
+---@field DormantThreshold System.Single
+---`Field Public Instance`
+---@field ActiveThreshold System.Single
+---`Field Public Instance`
+---@field TransitionThreshold System.Single
+---`Field Public Instance`
+---@field TransformThresholdOnDeath System.Single
+---`Field Public Instance`
+---@field HuskedSpeciesName Barotrauma.Identifier
+---`Field Public Instance`
+---@field TransferBuffs System.Boolean
+---`Field Public Instance`
+---@field SendMessages System.Boolean
+---`Field Public Instance`
+---@field CauseSpeechImpediment System.Boolean
+---`Field Public Instance`
+---@field NeedsAir System.Boolean
+---`Field Public Instance`
+---@field ControlHusk System.Boolean
+_G['AfflictionPrefabHusk'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.AfflictionsFile
+---@param type? System.Type
+---@return Barotrauma.AfflictionPrefabHusk
+_G['AfflictionPrefabHusk'] = function(element, file, type) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.AfflictionsFile
+---@param type? System.Type
+---@return Barotrauma.AfflictionPrefabHusk
+_G['AfflictionPrefabHusk'].__new = function(element, file, type) end
+
diff --git a/Meta/Types/server/_00007FFD96952E58.lua b/Meta/Types/server/_00007FFD96952E58.lua
new file mode 100644
index 0000000..c6dee7b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96952E58.lua
@@ -0,0 +1,102 @@
+---@meta
+---@class Barotrauma.AfflictionHusk : Barotrauma.Affliction
+---`Field Private Instance`
+---@field subscribedToDeathEvent System.Boolean
+---`Field Private Instance`
+---@field state Barotrauma.AfflictionHusk.InfectionState
+---`Field Private Instance`
+---@field huskAppendage (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Private Instance`
+---@field stun System.Boolean
+---`Field Private Instance`
+---@field highestStrength System.Single
+---`Field Public Instance`
+---@field HuskPrefab Barotrauma.AfflictionPrefabHusk
+---`Field Private Instance`
+---@field prevDisplayedMessage System.Nullable*1Barotrauma*AfflictionHusk*InfectionState
+---`Field Private Instance`
+---@field damageCooldownTimer System.Single
+---`Field Private Static`
+---@field DamageCooldown System.Single
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field Strength System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field State Barotrauma.AfflictionHusk.InfectionState
+---`Getter Private Instance`
+---@field DormantThreshold System.Single
+---`Getter Private Instance`
+---@field ActiveThreshold System.Single
+---`Getter Private Instance`
+---@field TransitionThreshold System.Single
+---`Getter Private Instance`
+---@field TransformThresholdOnDeath System.Single
+_G['AfflictionHusk'] = {}
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionHusk'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Method Private Instance`
+_G['AfflictionHusk'].UpdateMessages = function() end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+_G['AfflictionHusk'].ApplyDamage = function(deltaTime) end
+
+---`Method Public Instance`
+_G['AfflictionHusk'].ActivateHusk = function() end
+
+---`Method Private Instance`
+_G['AfflictionHusk'].DeactivateHusk = function() end
+
+---`Method Public Instance`
+_G['AfflictionHusk'].UnsubscribeFromDeathEvent = function() end
+
+---`Method Private Instance`
+---@param character Barotrauma.Character
+---@param causeOfDeath Barotrauma.CauseOfDeath
+_G['AfflictionHusk'].CharacterDead = function(character, causeOfDeath) end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['AfflictionHusk'].CreateAIHusk = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@param matchingAffliction Barotrauma.AfflictionPrefabHusk
+---@param huskedSpeciesName Barotrauma.Identifier
+---@param appendageDefinition? Barotrauma.ContentXElement
+---@param ragdoll? Barotrauma.Ragdoll
+---@return (System.Collections.Generic.List*1Barotrauma*Limb)|(Barotrauma.Limb[])
+_G['AfflictionHusk'].AttachHuskAppendage = function(character, matchingAffliction, huskedSpeciesName, appendageDefinition, ragdoll) end
+
+---`Method Public Static`
+---@param character Barotrauma.CharacterParams
+---@param prefab Barotrauma.AfflictionPrefabHusk
+---@return Barotrauma.Identifier
+_G['AfflictionHusk'].GetHuskedSpeciesName = function(character, prefab) end
+
+---`Method Public Static`
+---@param character Barotrauma.CharacterParams
+---@param prefab Barotrauma.AfflictionPrefabHusk
+---@return Barotrauma.Identifier
+_G['AfflictionHusk'].GetNonHuskedSpeciesName = function(character, prefab) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionHusk
+_G['AfflictionHusk'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionHusk
+_G['AfflictionHusk'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/server/_00007FFD96953008.lua b/Meta/Types/server/_00007FFD96953008.lua
new file mode 100644
index 0000000..495a5e1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96953008.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.AfflictionBleeding : Barotrauma.Affliction
+_G['AfflictionBleeding'] = {}
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionBleeding'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionBleeding
+_G['AfflictionBleeding'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionBleeding
+_G['AfflictionBleeding'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/server/_00007FFD96953178.lua b/Meta/Types/server/_00007FFD96953178.lua
new file mode 100644
index 0000000..5024927
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96953178.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.AfflictionPsychosis : Barotrauma.Affliction
+_G['AfflictionPsychosis'] = {}
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionPsychosis'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionPsychosis
+_G['AfflictionPsychosis'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionPsychosis
+_G['AfflictionPsychosis'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/server/_00007FFD96953328.lua b/Meta/Types/server/_00007FFD96953328.lua
new file mode 100644
index 0000000..8ee6485
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96953328.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.AfflictionSpaceHerpes : Barotrauma.Affliction
+---`Field Private Instance`
+---@field invertControlsCooldown System.Single
+---`Field Private Instance`
+---@field stunCoolDown System.Single
+---`Field Private Instance`
+---@field invertControlsTimer System.Single
+---`Field Private Instance`
+---@field invertControlsToggleTimer System.Single
+_G['AfflictionSpaceHerpes'] = {}
+
+---`Method Public Instance Virtual`
+---@param characterHealth Barotrauma.CharacterHealth
+---@param targetLimb Barotrauma.Limb
+---@param deltaTime System.Single
+_G['AfflictionSpaceHerpes'].Update = function(characterHealth, targetLimb, deltaTime) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionSpaceHerpes
+_G['AfflictionSpaceHerpes'] = function(prefab, strength) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.AfflictionPrefab
+---@param strength System.Single
+---@return Barotrauma.AfflictionSpaceHerpes
+_G['AfflictionSpaceHerpes'].__new = function(prefab, strength) end
+
diff --git a/Meta/Types/server/_00007FFD96953428.lua b/Meta/Types/server/_00007FFD96953428.lua
new file mode 100644
index 0000000..59fa927
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96953428.lua
@@ -0,0 +1,16 @@
+---@meta
+---@class Barotrauma.AttackContext : System.Enum
+---`Field Public Static`
+---@field Any Barotrauma.AttackContext
+---`Field Public Static`
+---@field Water Barotrauma.AttackContext
+---`Field Public Static`
+---@field Ground Barotrauma.AttackContext
+---`Field Public Static`
+---@field Inside Barotrauma.AttackContext
+---`Field Public Static`
+---@field Outside Barotrauma.AttackContext
+---`Field Public Static`
+---@field NotDefined Barotrauma.AttackContext
+_G['AttackContext'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96953628.lua b/Meta/Types/server/_00007FFD96953628.lua
new file mode 100644
index 0000000..23203c3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96953628.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class Barotrauma.AttackTarget : System.Enum
+---`Field Public Static`
+---@field Any Barotrauma.AttackTarget
+---`Field Public Static`
+---@field Character Barotrauma.AttackTarget
+---`Field Public Static`
+---@field Structure Barotrauma.AttackTarget
+---`Field Public Static`
+---@field Item Barotrauma.AttackTarget
+_G['AttackTarget'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96954D50.lua b/Meta/Types/server/_00007FFD96954D50.lua
new file mode 100644
index 0000000..e81b1f1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96954D50.lua
@@ -0,0 +1,345 @@
+---@meta
+---@class Barotrauma.Attack : System.Object
+---`Field Private Instance`
+---@field _range System.Single
+---`Field Private Instance`
+---@field _damageRange System.Single
+---`Field Private Instance`
+---@field _structureDamage System.Single
+---`Field Private Instance`
+---@field _itemDamage System.Single
+---`Field Public Instance`
+---@field ForceOnLimbIndices (System.Collections.Generic.List*1System*Int32)|(System.Int32[])
+---`Field Public Instance`
+---@field Afflictions (System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1System*Xml*Linq*XElement)|({[Barotrauma.Affliction]:(System.Xml.Linq.XElement)})
+---`Field Private Instance`
+---@field statusEffects (System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])
+---`Field Private Instance`
+---@field targets (System.Collections.Generic.List*1Barotrauma*ISerializableEntity)|(Barotrauma.ISerializableEntity[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Context Barotrauma.AttackContext
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetType Barotrauma.AttackTarget
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetLimbType Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HitDetectionType Barotrauma.HitDetection
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttack Barotrauma.AIBehaviorAfterAttack
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackDelay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackSecondary Barotrauma.AIBehaviorAfterAttack
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackSecondaryDelay System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Reverse System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SnapRopeOnNewAttack System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Retreat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Range System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinRange System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Duration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SecondaryCoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CoolDownRandomFactor System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FullSpeedAfterAttack System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureDamage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CreateWallDamageProjectiles System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EmitStructureDamageParticles System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemDamage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Penetration System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RangeMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ImpactMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LevelWallDamage System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Ranged System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AvoidFriendlyFire System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequiredAngle System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequiredAngleToShoot System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AimRotationTorque System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RotationLimbIndex System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwayAmount System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SwayFrequency System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Stun System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field OnlyHumans System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ApplyForceOnLimbs System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Force System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootForceWorldStart Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootForceWorldMiddle Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootForceWorldEnd Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RootTransitionEasing Barotrauma.TransitionMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Torque System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ApplyForcesOnlyOnce System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetImpulse System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetImpulseWorld Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetForce System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field TargetForceWorld Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SubmarineImpactMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SeverLimbsProbability System.Single
+---`Getter Public Instance`
+---@field StickChance System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Priority System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Blink System.Boolean
+---`Getter Public Instance`
+---@field StatusEffects (System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect)|(fun():(Barotrauma.StatusEffect))
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Conditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SourceItem Barotrauma.Item
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AttackTimer System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CoolDownTimer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CurrentRandomCoolDown System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SecondaryCoolDownTimer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsRunning System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AfterAttackTimer System.Single
+_G['Attack'] = {}
+
+---`Method Public Instance`
+---@param user Barotrauma.Character
+_G['Attack'].SetUser = function(user) end
+
+---`Method Public Instance`
+---@param multiplier System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*Affliction)|(Barotrauma.Affliction[])
+_G['Attack'].GetMultipliedAfflictions = function(multiplier) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@return System.Single
+_G['Attack'].GetStructureDamage = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@return System.Single
+_G['Attack'].GetLevelWallDamage = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param multiplier? System.Single
+---@return System.Single
+_G['Attack'].GetItemDamage = function(deltaTime, multiplier) end
+
+---`Method Public Instance`
+---@param includeStructureDamage? System.Boolean
+---@return System.Single
+_G['Attack'].GetTotalDamage = function(includeStructureDamage) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+_G['Attack'].ReloadAfflictions = function(element, parentDebugName) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+_G['Attack'].Serialize = function(element) end
+
+---`Method Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+_G['Attack'].Deserialize = function(element, parentDebugName) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param target Barotrauma.IDamageable
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@param sourceBody? Barotrauma.PhysicsBody
+---@param sourceLimb? Barotrauma.Limb
+---@return Barotrauma.AttackResult
+_G['Attack'].DoDamage = function(attacker, target, worldPosition, deltaTime, playSound, sourceBody, sourceLimb) end
+
+---`Method Public Instance`
+---@param attacker Barotrauma.Character
+---@param targetLimb Barotrauma.Limb
+---@param worldPosition Microsoft.Xna.Framework.Vector2
+---@param deltaTime System.Single
+---@param playSound? System.Boolean
+---@param sourceBody? Barotrauma.PhysicsBody
+---@param sourceLimb? Barotrauma.Limb
+---@return Barotrauma.AttackResult
+_G['Attack'].DoDamageToLimb = function(attacker, targetLimb, worldPosition, deltaTime, playSound, sourceBody, sourceLimb) end
+
+---`Method Private Instance`
+---@param target Barotrauma.ISpatialEntity
+---@param sourceWorldPosition Microsoft.Xna.Framework.Vector2
+---@param sourceItem Barotrauma.Item
+---@return Microsoft.Xna.Framework.Vector2
+_G['Attack'].GetImpulseDirection = function(target, sourceWorldPosition, sourceItem) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Attack'].UpdateCoolDown = function(deltaTime) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+---@param character Barotrauma.Character
+_G['Attack'].UpdateAttackTimer = function(deltaTime, character) end
+
+---`Method Public Instance`
+_G['Attack'].ResetAttackTimer = function() end
+
+---`Method Public Instance`
+---@param applyRandom System.Boolean
+_G['Attack'].SetCoolDown = function(applyRandom) end
+
+---`Method Public Instance`
+_G['Attack'].ResetCoolDown = function() end
+
+---`Method Public Instance`
+---@overload fun(context:Barotrauma.AttackContext):(System.Boolean)
+---@param contexts (System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext)|(fun():(Barotrauma.AttackContext))
+---@return System.Boolean
+_G['Attack'].IsValidContext = function(contexts) end
+
+---`Method Public Instance`
+---@overload fun(targetType:Barotrauma.AttackTarget):(System.Boolean)
+---@param target Barotrauma.Entity
+---@return System.Boolean
+_G['Attack'].IsValidTarget = function(target) end
+
+---`Method Private Static`
+---@param entity Barotrauma.Entity
+---@return Barotrauma.AttackTarget
+_G['Attack'].GetAttackTargetTypeFromEntity = function(entity) end
+
+---`Method Public Instance`
+---@param easing? Barotrauma.TransitionMode
+---@return Microsoft.Xna.Framework.Vector2
+_G['Attack'].CalculateAttackPhase = function(easing) end
+
+---`Constructor Public Instance`
+---@overload fun(damage:System.Single, bleedingDamage:System.Single, burnDamage:System.Single, structureDamage:System.Single, itemDamage:System.Single, range?:System.Single):Barotrauma.Attack
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String, sourceItem:Barotrauma.Item):Barotrauma.Attack
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.Attack
+_G['Attack'] = function(element, parentDebugName) end
+
+---`Constructor Public Instance`
+---@overload fun(damage:System.Single, bleedingDamage:System.Single, burnDamage:System.Single, structureDamage:System.Single, itemDamage:System.Single, range?:System.Single):Barotrauma.Attack
+---@overload fun(element:Barotrauma.ContentXElement, parentDebugName:System.String, sourceItem:Barotrauma.Item):Barotrauma.Attack
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@return Barotrauma.Attack
+_G['Attack'].__new = function(element, parentDebugName) end
+
diff --git a/Meta/Types/server/_00007FFD96955248.lua b/Meta/Types/server/_00007FFD96955248.lua
new file mode 100644
index 0000000..ae4cec4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96955248.lua
@@ -0,0 +1,82 @@
+---@meta
+---@class Barotrauma.DamageModifier : System.Object
+---`Field Private Instance`
+---@field rawAfflictionIdentifierString System.String
+---`Field Private Instance`
+---@field rawAfflictionTypeString System.String
+---`Field Private Instance`
+---@field parsedAfflictionIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field parsedAfflictionTypes (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DamageMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ProbabilityMultiplier System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ArmorSector Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field ArmorSectorInRadians Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeflectProjectiles System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionIdentifiers System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AfflictionTypes System.String
+---`Getter Public Instance`
+---@field ParsedAfflictionIdentifiers System.Collections.Immutable.ImmutableArray
+---`Getter Public Instance`
+---@field ParsedAfflictionTypes System.Collections.Immutable.ImmutableArray
+_G['DamageModifier'] = {}
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String):(System.Boolean)
+---@param identifier Barotrauma.Identifier
+---@return System.Boolean
+_G['DamageModifier'].MatchesAfflictionIdentifier = function(identifier) end
+
+---`Method Public Instance`
+---@overload fun(type:System.String):(System.Boolean)
+---@param type Barotrauma.Identifier
+---@return System.Boolean
+_G['DamageModifier'].MatchesAfflictionType = function(type) end
+
+---`Method Public Instance`
+---@overload fun(identifier:System.String, type:System.String):(System.Boolean)
+---@overload fun(identifier:Barotrauma.Identifier, type:Barotrauma.Identifier):(System.Boolean)
+---@param affliction Barotrauma.Affliction
+---@return System.Boolean
+_G['DamageModifier'].MatchesAffliction = function(affliction) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['DamageModifier'].Serialize = function(element) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['DamageModifier'].Deserialize = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@param checkErrors? System.Boolean
+---@return Barotrauma.DamageModifier
+_G['DamageModifier'] = function(element, parentDebugName, checkErrors) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param parentDebugName System.String
+---@param checkErrors? System.Boolean
+---@return Barotrauma.DamageModifier
+_G['DamageModifier'].__new = function(element, parentDebugName, checkErrors) end
+
diff --git a/Meta/Types/server/_00007FFD96955488.lua b/Meta/Types/server/_00007FFD96955488.lua
new file mode 100644
index 0000000..2c48df0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96955488.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Command : System.Object
+_G['Command'] = {}
+
+---`Method Public Instance Abstract Virtual`
+_G['Command'].Execute = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['Command'].UnExecute = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['Command'].Cleanup = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Command
+_G['Command'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Command
+_G['Command'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969558C8.lua b/Meta/Types/server/_00007FFD969558C8.lua
new file mode 100644
index 0000000..b41b58e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969558C8.lua
@@ -0,0 +1,70 @@
+---@meta
+---@class Barotrauma.TraitorEvent : Barotrauma.ScriptedEvent
+---`Field Public Instance`
+---@field OnStateChanged (System.Action)|(fun())
+---`Field Private Instance`
+---@field prefab Barotrauma.TraitorEventPrefab
+---`Field Private Instance`
+---@field codeWord Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field currentState Barotrauma.TraitorEvent.State
+---`Field Private Instance`
+---@field traitor Barotrauma.Networking.Client
+---`Field Private Instance`
+---@field secondaryTraitors (System.Collections.Generic.HashSet*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Private Static`
+---@field nonActionChildElementNames (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---@field Prefab Barotrauma.TraitorEventPrefab
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CurrentState Barotrauma.TraitorEvent.State
+---`Getter Public Instance`
+---@field Traitor Barotrauma.Networking.Client
+---`Getter Public Instance`
+---@field SecondaryTraitors (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---`Getter NonPublic Instance Virtual`
+---@field NonActionChildElementNames (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+_G['TraitorEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['TraitorEvent'].ToString = function() end
+
+---`Method NonPublic Instance Virtual`
+---@param parentSet? Barotrauma.EventSet
+_G['TraitorEvent'].InitEventSpecific = function(parentSet) end
+
+---`Method Public Instance Virtual`
+---@param str Barotrauma.LocalizedString
+---@return Barotrauma.LocalizedString
+_G['TraitorEvent'].ReplaceVariablesInEventText = function(str) end
+
+---`Method Public Instance`
+---@param traitor Barotrauma.Networking.Client
+_G['TraitorEvent'].SetTraitor = function(traitor) end
+
+---`Method Public Instance`
+---@param traitors (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['TraitorEvent'].SetSecondaryTraitors = function(traitors) end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(prefab:Barotrauma.TraitorEventPrefab, seed:System.Int32):Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorEvent
+_G['TraitorEvent'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96955CB0.lua b/Meta/Types/server/_00007FFD96955CB0.lua
new file mode 100644
index 0000000..d77addc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96955CB0.lua
@@ -0,0 +1,82 @@
+---@meta
+---@class Barotrauma.TraitorEventPrefab : Barotrauma.EventPrefab
+---`Field Public Instance`
+---@field Icon Barotrauma.Sprite
+---`Field Public Instance`
+---@field IconColor Microsoft.Xna.Framework.Color
+---`Field Private Instance`
+---@field reputationRequirements (System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*ReputationRequirement)|(Barotrauma.TraitorEventPrefab.ReputationRequirement[])
+---`Field Private Instance`
+---@field missionRequirements (System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*MissionRequirement)|(Barotrauma.TraitorEventPrefab.MissionRequirement[])
+---`Field Private Instance`
+---@field levelRequirements (System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*LevelRequirement)|(Barotrauma.TraitorEventPrefab.LevelRequirement[])
+---`Field Public Instance`
+---@field RequiredCompletedTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field DangerLevel System.Int32
+---`Field Public Instance`
+---@field RequiredPreviousDangerLevel System.Int32
+---`Field Public Instance`
+---@field RequirePreviousDangerLevelCompleted System.Boolean
+---`Field Public Instance`
+---@field MinPlayerCount System.Int32
+---`Field Public Instance`
+---@field SecondaryTraitorAmount System.Int32
+---`Field Public Instance`
+---@field SecondaryTraitorPercentage System.Single
+---`Field Public Instance`
+---@field AllowAccusingSecondaryTraitor System.Boolean
+---`Field Public Instance`
+---@field MoneyPenaltyForUnfoundedTraitorAccusation System.Int32
+---`Field Public Instance`
+---@field IsChainable System.Boolean
+---`Field Public Instance`
+---@field StealPercentageOfExperience System.Single
+---`Field Public Static`
+---@field MinDangerLevel System.Int32
+---`Field Public Static`
+---@field MaxDangerLevel System.Int32
+---`Getter Public Instance`
+---@field HasReputationRequirements System.Boolean
+---`Getter Public Instance`
+---@field HasMissionRequirements System.Boolean
+---`Getter Public Instance`
+---@field HasLevelRequirements System.Boolean
+_G['TraitorEventPrefab'] = {}
+
+---`Method Public Instance`
+---@param campaign Barotrauma.CampaignMode
+---@return System.Boolean
+_G['TraitorEventPrefab'].ReputationRequirementsMet = function(campaign) end
+
+---`Method Public Instance`
+---@param gameSession Barotrauma.GameSession
+---@return System.Boolean
+_G['TraitorEventPrefab'].MissionRequirementsMet = function(gameSession) end
+
+---`Method Public Instance`
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['TraitorEventPrefab'].LevelRequirementsMet = function(level) end
+
+---`Method Public Instance Virtual`
+_G['TraitorEventPrefab'].Dispose = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['TraitorEventPrefab'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.RandomEventsFile
+---@param fallbackIdentifier? Barotrauma.Identifier
+---@return Barotrauma.TraitorEventPrefab
+_G['TraitorEventPrefab'] = function(element, file, fallbackIdentifier) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param file Barotrauma.RandomEventsFile
+---@param fallbackIdentifier? Barotrauma.Identifier
+---@return Barotrauma.TraitorEventPrefab
+_G['TraitorEventPrefab'].__new = function(element, file, fallbackIdentifier) end
+
diff --git a/Meta/Types/server/_00007FFD96958330.lua b/Meta/Types/server/_00007FFD96958330.lua
new file mode 100644
index 0000000..d076597
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96958330.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.TraitorManager.TraitorResults : System.ValueType
+---`Field Public Instance`
+---@field VotedAsTraitorClientSessionId System.Byte
+---`Field Public Instance`
+---@field VotedCorrectTraitor System.Boolean
+---`Field Public Instance`
+---@field ObjectiveSuccessful System.Boolean
+---`Field Public Instance`
+---@field MoneyPenalty System.Int32
+---`Field Public Instance`
+---@field TraitorEventIdentifier Barotrauma.Identifier
+_G['TraitorManager']['TraitorResults'] = {}
+
+---`Method Public Instance`
+---@return Barotrauma.Networking.Client
+_G['TraitorManager']['TraitorResults'].GetTraitorClient = function() end
+
+---`Constructor Public Instance`
+---@param votedAsTraitor Barotrauma.Networking.Client
+---@param traitorEvent Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorManager.TraitorResults
+_G['TraitorManager']['TraitorResults'] = function(votedAsTraitor, traitorEvent) end
+
+---`Constructor Public Instance`
+---@param votedAsTraitor Barotrauma.Networking.Client
+---@param traitorEvent Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorManager.TraitorResults
+_G['TraitorManager']['TraitorResults'].__new = function(votedAsTraitor, traitorEvent) end
+
diff --git a/Meta/Types/server/_00007FFD969585E8.lua b/Meta/Types/server/_00007FFD969585E8.lua
new file mode 100644
index 0000000..8f2042e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969585E8.lua
@@ -0,0 +1,126 @@
+---@meta
+---@class Barotrauma.TraitorManager : System.Object
+---`Field Private Instance`
+---@field startTimer System.Single
+---`Field Private Instance`
+---@field started System.Boolean
+---`Field Private Instance`
+---@field results System.Nullable*1Barotrauma*TraitorManager*TraitorResults
+---`Field Private Instance`
+---@field previousTraitorEvents (System.Collections.Generic.List*1Barotrauma*TraitorManager*PreviousTraitorEvent)|(Barotrauma.TraitorManager.PreviousTraitorEvent[])
+---`Field Private Instance`
+---@field activeEvents (System.Collections.Generic.List*1Barotrauma*TraitorManager*ActiveTraitorEvent)|(Barotrauma.TraitorManager.ActiveTraitorEvent[])
+---`Field Private Instance`
+---@field server Barotrauma.Networking.GameServer
+---`Field Private Instance`
+---@field eventManager Barotrauma.EventManager
+---`Field Private Instance`
+---@field level Barotrauma.Level
+---`Field Public Instance`
+---@field Enabled System.Boolean
+---`Field Private Static`
+---@field MaxPreviousEventHistory System.Int32
+---`Field Private Static`
+---@field StartDelayMin System.Int32
+---`Field Private Static`
+---@field StartDelayMax System.Int32
+---`Getter Public Instance`
+---@field ActiveEvents (System.Collections.Generic.IEnumerable*1Barotrauma*TraitorManager*ActiveTraitorEvent)|(fun():(Barotrauma.TraitorManager.ActiveTraitorEvent))
+_G['TraitorManager'] = {}
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@return System.Boolean
+_G['TraitorManager'].IsTraitor = function(character) end
+
+---`Method Public Instance`
+---@param eventManager Barotrauma.EventManager
+---@param level Barotrauma.Level
+_G['TraitorManager'].Initialize = function(eventManager, level) end
+
+---`Method Private Instance`
+---@param eventManager Barotrauma.EventManager
+---@param level Barotrauma.Level
+---@return System.Boolean
+_G['TraitorManager'].TryCreateTraitorEvents = function(eventManager, level) end
+
+---`Method Private Instance`
+---@return Barotrauma.Networking.Client
+_G['TraitorManager'].SelectRandomTraitor = function() end
+
+---`Method Private Instance`
+---@param traitorEvent Barotrauma.TraitorEvent
+---@param mainTraitor Barotrauma.Networking.Client
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['TraitorManager'].SelectSecondaryTraitors = function(traitorEvent, mainTraitor) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['TraitorManager'].IsClientViableTraitor = function(client) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.TraitorEventPrefab
+---@return System.Single
+_G['TraitorManager'].GetTraitorEventPrefabCommonness = function(prefab) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Single
+_G['TraitorManager'].GetTraitorProbability = function(client) end
+
+---`Method Private Instance`
+---@param condition (System.Func*1Barotrauma*TraitorManager*PreviousTraitorEvent*1System*Boolean)|(fun(arg:Barotrauma.TraitorManager.PreviousTraitorEvent):(System.Boolean))
+---@return System.Nullable*1System*Int32
+_G['TraitorManager'].GetRoundsSinceLastSelected = function(condition) end
+
+---`Method Private Instance`
+---@param eventManager Barotrauma.EventManager
+---@param selectedPrefab Barotrauma.TraitorEventPrefab
+---@param traitor Barotrauma.Networking.Client
+_G['TraitorManager'].CreateTraitorEvent = function(eventManager, selectedPrefab, traitor) end
+
+---`Method Public Instance`
+---@param traitorEventPrefab Barotrauma.TraitorEventPrefab
+_G['TraitorManager'].ForceTraitorEvent = function(traitorEventPrefab) end
+
+---`Method Public Instance`
+_G['TraitorManager'].SkipStartDelay = function() end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['TraitorManager'].Update = function(deltaTime) end
+
+---`Method Public Instance`
+_G['TraitorManager'].EndRound = function() end
+
+---`Method Public Instance`
+---@return Barotrauma.Networking.Client
+_G['TraitorManager'].GetClientAccusedAsTraitor = function() end
+
+---`Method Public Instance`
+---@return System.Nullable*1Barotrauma*TraitorManager*TraitorResults
+_G['TraitorManager'].GetEndResults = function() end
+
+---`Method Public Instance`
+---@return System.Xml.Linq.XElement
+_G['TraitorManager'].Save = function() end
+
+---`Method Public Instance`
+---@param traitorManagerElement System.Xml.Linq.XElement
+_G['TraitorManager'].Load = function(traitorManagerElement) end
+
+---`Method Public Instance`
+---@param ev Barotrauma.TraitorEvent
+_G['TraitorManager'].SendCurrentState = function(ev) end
+
+---`Constructor Public Instance`
+---@param server Barotrauma.Networking.GameServer
+---@return Barotrauma.TraitorManager
+_G['TraitorManager'] = function(server) end
+
+---`Constructor Public Instance`
+---@param server Barotrauma.Networking.GameServer
+---@return Barotrauma.TraitorManager
+_G['TraitorManager'].__new = function(server) end
+
diff --git a/Meta/Types/server/_00007FFD96958900.lua b/Meta/Types/server/_00007FFD96958900.lua
new file mode 100644
index 0000000..8355411
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96958900.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.TraitorManager.ActiveTraitorEvent : System.ValueType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Traitor Barotrauma.Networking.Client
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TraitorEvent Barotrauma.TraitorEvent
+_G['TraitorManager']['ActiveTraitorEvent'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['TraitorManager']['ActiveTraitorEvent'].ToString = function() end
+
+---`Method Private Instance`
+---@param builder System.Text.StringBuilder
+---@return System.Boolean
+_G['TraitorManager']['ActiveTraitorEvent'].PrintMembers = function(builder) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['TraitorManager']['ActiveTraitorEvent'].GetHashCode = function() end
+
+---`Method Public Instance Virtual`
+---@overload fun(obj:System.Object):(System.Boolean)
+---@param other Barotrauma.TraitorManager.ActiveTraitorEvent
+---@return System.Boolean
+_G['TraitorManager']['ActiveTraitorEvent'].Equals = function(other) end
+
+---`Method Public Instance`
+---@param Traitor Barotrauma.Networking.Client-ref
+---@param TraitorEvent Barotrauma.TraitorEvent-ref
+_G['TraitorManager']['ActiveTraitorEvent'].Deconstruct = function(Traitor, TraitorEvent) end
+
+---`Constructor Public Instance`
+---@param Traitor Barotrauma.Networking.Client
+---@param TraitorEvent Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorManager.ActiveTraitorEvent
+_G['TraitorManager']['ActiveTraitorEvent'] = function(Traitor, TraitorEvent) end
+
+---`Constructor Public Instance`
+---@param Traitor Barotrauma.Networking.Client
+---@param TraitorEvent Barotrauma.TraitorEvent
+---@return Barotrauma.TraitorManager.ActiveTraitorEvent
+_G['TraitorManager']['ActiveTraitorEvent'].__new = function(Traitor, TraitorEvent) end
+
diff --git a/Meta/Types/server/_00007FFD96958C08.lua b/Meta/Types/server/_00007FFD96958C08.lua
new file mode 100644
index 0000000..7286a50
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96958C08.lua
@@ -0,0 +1,75 @@
+---@meta
+---@class FarseerPhysics.Collision.AABB : System.ValueType
+---`Field Public Instance`
+---@field LowerBound Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field UpperBound Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Width System.Single
+---`Getter Public Instance`
+---@field Height System.Single
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Extents Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Perimeter System.Single
+---`Getter Public Instance`
+---@field Vertices FarseerPhysics.Common.Vertices
+---`Getter Public Instance`
+---@field Q1 FarseerPhysics.Collision.AABB
+---`Getter Public Instance`
+---@field Q2 FarseerPhysics.Collision.AABB
+---`Getter Public Instance`
+---@field Q3 FarseerPhysics.Collision.AABB
+---`Getter Public Instance`
+---@field Q4 FarseerPhysics.Collision.AABB
+_G['FarseerPhysics']['Collision']['AABB'] = {}
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].IsValid = function() end
+
+---`Method Public Instance`
+---@overload fun(aabb:FarseerPhysics.Collision.AABB-ref)
+---@param aabb1 FarseerPhysics.Collision.AABB-ref
+---@param aabb2 FarseerPhysics.Collision.AABB-ref
+_G['FarseerPhysics']['Collision']['AABB'].Combine = function(aabb1, aabb2) end
+
+---`Method Public Instance`
+---@overload fun(aabb:FarseerPhysics.Collision.AABB-ref):(System.Boolean)
+---@param point Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].Contains = function(point) end
+
+---`Method Public Static`
+---@param a FarseerPhysics.Collision.AABB-ref
+---@param b FarseerPhysics.Collision.AABB-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].TestOverlap = function(a, b) end
+
+---`Method Public Instance`
+---@param output FarseerPhysics.Collision.RayCastOutput-ref
+---@param input FarseerPhysics.Collision.RayCastInput-ref
+---@param doInteriorCheck? System.Boolean
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['AABB'].RayCast = function(output, input, doInteriorCheck) end
+
+---`Constructor Public Instance`
+---@overload fun(min:Microsoft.Xna.Framework.Vector2, max:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Collision.AABB
+---@overload fun(min:Microsoft.Xna.Framework.Vector2-ref, max:Microsoft.Xna.Framework.Vector2-ref):FarseerPhysics.Collision.AABB
+---@param center Microsoft.Xna.Framework.Vector2
+---@param width System.Single
+---@param height System.Single
+---@return FarseerPhysics.Collision.AABB
+_G['FarseerPhysics']['Collision']['AABB'] = function(center, width, height) end
+
+---`Constructor Public Instance`
+---@overload fun(min:Microsoft.Xna.Framework.Vector2, max:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Collision.AABB
+---@overload fun(min:Microsoft.Xna.Framework.Vector2-ref, max:Microsoft.Xna.Framework.Vector2-ref):FarseerPhysics.Collision.AABB
+---@param center Microsoft.Xna.Framework.Vector2
+---@param width System.Single
+---@param height System.Single
+---@return FarseerPhysics.Collision.AABB
+_G['FarseerPhysics']['Collision']['AABB'].__new = function(center, width, height) end
+
diff --git a/Meta/Types/server/_00007FFD96958D18.lua b/Meta/Types/server/_00007FFD96958D18.lua
new file mode 100644
index 0000000..4e916f7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96958D18.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class FarseerPhysics.Collision.ContactFeature : System.ValueType
+---`Field Public Instance`
+---@field IndexA System.Byte
+---`Field Public Instance`
+---@field IndexB System.Byte
+---`Field Public Instance`
+---@field TypeA System.Byte
+---`Field Public Instance`
+---@field TypeB System.Byte
+_G['FarseerPhysics']['Collision']['ContactFeature'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96958E08.lua b/Meta/Types/server/_00007FFD96958E08.lua
new file mode 100644
index 0000000..26c2676
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96958E08.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class FarseerPhysics.Collision.ContactID : System.ValueType
+---`Field Public Instance`
+---@field Features FarseerPhysics.Collision.ContactFeature
+---`Field Public Instance`
+---@field Key System.UInt32
+_G['FarseerPhysics']['Collision']['ContactID'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96958EC0.lua b/Meta/Types/server/_00007FFD96958EC0.lua
new file mode 100644
index 0000000..d62343f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96958EC0.lua
@@ -0,0 +1,12 @@
+---@meta
+---@class FarseerPhysics.Collision.ManifoldPoint : System.ValueType
+---`Field Public Instance`
+---@field Id FarseerPhysics.Collision.ContactID
+---`Field Public Instance`
+---@field LocalPoint Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field NormalImpulse System.Single
+---`Field Public Instance`
+---@field TangentImpulse System.Single
+_G['FarseerPhysics']['Collision']['ManifoldPoint'] = {}
+
diff --git a/Meta/Types/server/_00007FFD969593A0.lua b/Meta/Types/server/_00007FFD969593A0.lua
new file mode 100644
index 0000000..a3bd0f9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969593A0.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class FarseerPhysics.Collision.Manifold : System.ValueType
+---`Field Public Instance`
+---@field LocalNormal Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field LocalPoint Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field PointCount System.Int32
+---`Field Public Instance`
+---@field Points FarseerPhysics.Common.FixedArray2*1FarseerPhysics*Collision*ManifoldPoint
+---`Field Public Instance`
+---@field Type FarseerPhysics.Collision.ManifoldType
+_G['FarseerPhysics']['Collision']['Manifold'] = {}
+
diff --git a/Meta/Types/server/_00007FFD969594A0.lua b/Meta/Types/server/_00007FFD969594A0.lua
new file mode 100644
index 0000000..8ab7bb1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969594A0.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class FarseerPhysics.Collision.RayCastInput : System.ValueType
+---`Field Public Instance`
+---@field MaxFraction System.Single
+---`Field Public Instance`
+---@field Point1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Point2 Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Collision']['RayCastInput'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96959590.lua b/Meta/Types/server/_00007FFD96959590.lua
new file mode 100644
index 0000000..595dc47
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96959590.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class FarseerPhysics.Collision.ClipVertex : System.ValueType
+---`Field Public Instance`
+---@field ID FarseerPhysics.Collision.ContactID
+---`Field Public Instance`
+---@field V Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Collision']['ClipVertex'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96959680.lua b/Meta/Types/server/_00007FFD96959680.lua
new file mode 100644
index 0000000..366e6df
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96959680.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class FarseerPhysics.Collision.RayCastOutput : System.ValueType
+---`Field Public Instance`
+---@field Fraction System.Single
+---`Field Public Instance`
+---@field Normal Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Collision']['RayCastOutput'] = {}
+
diff --git a/Meta/Types/server/_00007FFD969598D0.lua b/Meta/Types/server/_00007FFD969598D0.lua
new file mode 100644
index 0000000..27734f0
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969598D0.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class FarseerPhysics.Collision.EPAxis : System.ValueType
+---`Field Public Instance`
+---@field Index System.Int32
+---`Field Public Instance`
+---@field Separation System.Single
+---`Field Public Instance`
+---@field Type FarseerPhysics.Collision.EPAxisType
+_G['FarseerPhysics']['Collision']['EPAxis'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96959A30.lua b/Meta/Types/server/_00007FFD96959A30.lua
new file mode 100644
index 0000000..21e50a1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96959A30.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class FarseerPhysics.Collision.ReferenceFace : System.ValueType
+---`Field Public Instance`
+---@field i1 System.Int32
+---`Field Public Instance`
+---@field i2 System.Int32
+---`Field Public Instance`
+---@field v1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field v2 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field normal Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field sideNormal1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field sideOffset1 System.Single
+---`Field Public Instance`
+---@field sideNormal2 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field sideOffset2 System.Single
+_G['FarseerPhysics']['Collision']['ReferenceFace'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96959C28.lua b/Meta/Types/server/_00007FFD96959C28.lua
new file mode 100644
index 0000000..268dddc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96959C28.lua
@@ -0,0 +1,96 @@
+---@meta
+---@class FarseerPhysics.Collision.Collision : System.Object
+_G['FarseerPhysics']['Collision']['Collision'] = {}
+
+---`Method Public Static`
+---@param shapeA FarseerPhysics.Collision.Shapes.Shape
+---@param indexA System.Int32
+---@param shapeB FarseerPhysics.Collision.Shapes.Shape
+---@param indexB System.Int32
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param xfB FarseerPhysics.Common.Transform-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Collision']['Collision'].TestOverlap = function(shapeA, indexA, shapeB, indexB, xfA, xfB) end
+
+---`Method Public Static`
+---@param state1 FarseerPhysics.Common.FixedArray2
+---@param state2 FarseerPhysics.Common.FixedArray2
+---@param manifold1 FarseerPhysics.Collision.Manifold-ref
+---@param manifold2 FarseerPhysics.Collision.Manifold-ref
+_G['FarseerPhysics']['Collision']['Collision'].GetPointStates = function(state1, state2, manifold1, manifold2) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param circleA FarseerPhysics.Collision.Shapes.CircleShape
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param circleB FarseerPhysics.Collision.Shapes.CircleShape
+---@param xfB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollideCircles = function(manifold, circleA, xfA, circleB, xfB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param polygonA FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param circleB FarseerPhysics.Collision.Shapes.CircleShape
+---@param xfB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollidePolygonAndCircle = function(manifold, polygonA, xfA, circleB, xfB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param polyA FarseerPhysics.Collision.Shapes.PolygonShape
+---@param transformA FarseerPhysics.Common.Transform-ref
+---@param polyB FarseerPhysics.Collision.Shapes.PolygonShape
+---@param transformB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollidePolygons = function(manifold, polyA, transformA, polyB, transformB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param edgeA FarseerPhysics.Collision.Shapes.EdgeShape
+---@param transformA FarseerPhysics.Common.Transform-ref
+---@param circleB FarseerPhysics.Collision.Shapes.CircleShape
+---@param transformB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollideEdgeAndCircle = function(manifold, edgeA, transformA, circleB, transformB) end
+
+---`Method Public Static`
+---@param manifold FarseerPhysics.Collision.Manifold-ref
+---@param edgeA FarseerPhysics.Collision.Shapes.EdgeShape
+---@param xfA FarseerPhysics.Common.Transform-ref
+---@param polygonB FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xfB FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].CollideEdgeAndPolygon = function(manifold, edgeA, xfA, polygonB, xfB) end
+
+---`Method Private Static`
+---@param vOut FarseerPhysics.Common.FixedArray2
+---@param vIn FarseerPhysics.Common.FixedArray2
+---@param normal Microsoft.Xna.Framework.Vector2
+---@param offset System.Single
+---@param vertexIndexA System.Int32
+---@return System.Int32
+_G['FarseerPhysics']['Collision']['Collision'].ClipSegmentToLine = function(vOut, vIn, normal, offset, vertexIndexA) end
+
+---`Method Private Static`
+---@param poly1 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf1To2 FarseerPhysics.Common.Transform-ref
+---@param edge1 System.Int32
+---@param poly2 FarseerPhysics.Collision.Shapes.PolygonShape
+---@return System.Single
+_G['FarseerPhysics']['Collision']['Collision'].EdgeSeparation = function(poly1, xf1To2, edge1, poly2) end
+
+---`Method Private Static`
+---@param edgeIndex System.Int32-ref
+---@param poly1 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf1 FarseerPhysics.Common.Transform-ref
+---@param poly2 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf2 FarseerPhysics.Common.Transform-ref
+---@return System.Single
+_G['FarseerPhysics']['Collision']['Collision'].FindMaxSeparation = function(edgeIndex, poly1, xf1, poly2, xf2) end
+
+---`Method Private Static`
+---@param c FarseerPhysics.Common.FixedArray2
+---@param poly1 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf1 FarseerPhysics.Common.Transform-ref
+---@param edge1 System.Int32
+---@param poly2 FarseerPhysics.Collision.Shapes.PolygonShape
+---@param xf2 FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Collision']['Collision'].FindIncidentEdge = function(c, poly1, xf1, edge1, poly2, xf2) end
+
diff --git a/Meta/Types/server/_00007FFD9695A670.lua b/Meta/Types/server/_00007FFD9695A670.lua
new file mode 100644
index 0000000..61b6ae7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695A670.lua
@@ -0,0 +1,419 @@
+---@meta
+---@class FarseerPhysics.Dynamics.World : System.Object
+---`Field Private Instance`
+---@field _stepComplete System.Boolean
+---`Field Private Instance`
+---@field _invDt0 System.Single
+---`Field Private Instance`
+---@field _stack (FarseerPhysics.Dynamics.Body-arr)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field _bodyAddList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field _bodyRemoveList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Private Instance`
+---@field _jointAddList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Field Private Instance`
+---@field _jointRemoveList (System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Field Private Instance`
+---@field _queryAABBCallback (System.Func*1FarseerPhysics*Dynamics*Fixture*1System*Boolean)|(fun(arg:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---`Field Private Instance`
+---@field _queryAABBCallbackWrapper (System.Func*1System*Int32*1System*Boolean)|(fun(arg:System.Int32):(System.Boolean))
+---`Field Private Instance`
+---@field _input FarseerPhysics.Collision.TOIInput
+---`Field Private Instance`
+---@field _myFixture FarseerPhysics.Dynamics.Fixture
+---`Field Private Instance`
+---@field _point1 Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _point2 Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field _testPointAllFixtures (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+---`Field Private Instance`
+---@field _watch System.Diagnostics.Stopwatch
+---`Field Private Instance`
+---@field _rayCastCallback (System.Func*1FarseerPhysics*Dynamics*Fixture*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single)|(fun(arg1:FarseerPhysics.Dynamics.Fixture, arg2:Microsoft.Xna.Framework.Vector2, arg3:Microsoft.Xna.Framework.Vector2, arg4:System.Single):(System.Single))
+---`Field Private Instance`
+---@field _rayCastCallbackWrapper (System.Func*1FarseerPhysics*Collision*RayCastInput*1FarseerPhysics*Dynamics*FixtureProxy*1System*Single)|(fun(arg1:FarseerPhysics.Collision.RayCastInput, arg2:FarseerPhysics.Dynamics.FixtureProxy):(System.Single))
+---`Field NonPublic Instance`
+---@field _worldHasNewFixture System.Boolean
+---`Field Public Instance`
+---@field Tag System.Object
+---`Field Public Instance`
+---@field BodyAdded (FarseerPhysics.Dynamics.BodyDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body))
+---`Field Public Instance`
+---@field BodyRemoved (FarseerPhysics.Dynamics.BodyDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body))
+---`Field Public Instance`
+---@field FixtureAdded (FarseerPhysics.Dynamics.FixtureDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body, fixture:FarseerPhysics.Dynamics.Fixture))
+---`Field Public Instance`
+---@field FixtureRemoved (FarseerPhysics.Dynamics.FixtureDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, body:FarseerPhysics.Dynamics.Body, fixture:FarseerPhysics.Dynamics.Fixture))
+---`Field Public Instance`
+---@field JointAdded (FarseerPhysics.Dynamics.JointDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, joint:FarseerPhysics.Dynamics.Joints.Joint))
+---`Field Public Instance`
+---@field JointRemoved (FarseerPhysics.Dynamics.JointDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, joint:FarseerPhysics.Dynamics.Joints.Joint))
+---`Field Public Instance`
+---@field ControllerAdded (FarseerPhysics.Dynamics.ControllerDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, controller:FarseerPhysics.Controllers.Controller))
+---`Field Public Instance`
+---@field ControllerRemoved (FarseerPhysics.Dynamics.ControllerDelegate)|(fun(sender:FarseerPhysics.Dynamics.World, controller:FarseerPhysics.Controllers.Controller))
+---`Field Public Instance`
+---@field ControllerList (System.Collections.Generic.List*1FarseerPhysics*Controllers*Controller)|(FarseerPhysics.Controllers.Controller[])
+---`Field Public Instance`
+---@field Gravity Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ContactManager FarseerPhysics.Dynamics.ContactManager
+---`Field Public Instance`
+---@field BodyList (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body)|(FarseerPhysics.Dynamics.Body[])
+---`Field Public Instance`
+---@field JointList (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Joints*Joint)|(FarseerPhysics.Dynamics.Joints.Joint[])
+---`Field Private Static`
+---@field _warmStarting System.Boolean
+---`Field Private Static`
+---@field _subStepping System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Fluid FarseerPhysics.Fluids.FluidSystem2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UpdateTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContinuousPhysicsTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ControllersUpdateTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AddRemoveTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field NewContactsTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ContactsUpdateTime System.TimeSpan
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SolveUpdateTime System.TimeSpan
+---`Getter Public Instance`
+---@field ProxyCount System.Int32
+---`Getter Public Instance`
+---@field ContactCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsLocked System.Boolean
+---`Getter Public Instance`
+---@field ContactList FarseerPhysics.Dynamics.Contacts.ContactListHead
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Island FarseerPhysics.Dynamics.Island
+_G['FarseerPhysics']['Dynamics']['World'] = {}
+
+---`Method Private Instance`
+---@param proxyId System.Int32
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].QueryAABBCallbackWrapper = function(proxyId) end
+
+---`Method Private Instance`
+---@param rayCastInput FarseerPhysics.Collision.RayCastInput
+---@param proxy FarseerPhysics.Dynamics.FixtureProxy
+---@return System.Single
+_G['FarseerPhysics']['Dynamics']['World'].RayCastCallbackWrapper = function(rayCastInput, proxy) end
+
+---`Method Private Instance`
+---@param step FarseerPhysics.Dynamics.TimeStep-ref
+_G['FarseerPhysics']['Dynamics']['World'].Solve = function(step) end
+
+---`Method Private Instance`
+---@param step FarseerPhysics.Dynamics.TimeStep-ref
+---@param iterations FarseerPhysics.Dynamics.SolverIterations-ref
+_G['FarseerPhysics']['Dynamics']['World'].SolveTOI = function(step, iterations) end
+
+---`Method Public Instance Virtual`
+---@param body FarseerPhysics.Dynamics.Body
+---@param findNewContacts System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].Add = function(body, findNewContacts) end
+
+---`Method Public Instance`
+---@overload fun(joint:FarseerPhysics.Dynamics.Joints.Joint)
+---@param controller FarseerPhysics.Controllers.Controller
+_G['FarseerPhysics']['Dynamics']['World'].Add = function(controller) end
+
+---`Method Public Instance Virtual`
+---@param body FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].Remove = function(body) end
+
+---`Method Public Instance`
+---@overload fun(joint:FarseerPhysics.Dynamics.Joints.Joint)
+---@param controller FarseerPhysics.Controllers.Controller
+_G['FarseerPhysics']['Dynamics']['World'].Remove = function(controller) end
+
+---`Method Public Instance`
+---@overload fun(body:FarseerPhysics.Dynamics.Body, findNewContacts:System.Boolean)
+---@param joint FarseerPhysics.Dynamics.Joints.Joint
+_G['FarseerPhysics']['Dynamics']['World'].AddAsync = function(joint) end
+
+---`Method Public Instance`
+---@overload fun(body:FarseerPhysics.Dynamics.Body)
+---@param joint FarseerPhysics.Dynamics.Joints.Joint
+_G['FarseerPhysics']['Dynamics']['World'].RemoveAsync = function(joint) end
+
+---`Method Public Instance`
+_G['FarseerPhysics']['Dynamics']['World'].ProcessChanges = function() end
+
+---`Method Public Instance`
+---@overload fun(dt:System.TimeSpan)
+---@overload fun(dt:System.TimeSpan, iterations:FarseerPhysics.Dynamics.SolverIterations-ref)
+---@overload fun(dt:System.Single)
+---@param dt System.Single
+---@param iterations FarseerPhysics.Dynamics.SolverIterations-ref
+_G['FarseerPhysics']['Dynamics']['World'].Step = function(dt, iterations) end
+
+---`Method Public Instance`
+_G['FarseerPhysics']['Dynamics']['World'].ClearForces = function() end
+
+---`Method Public Instance`
+---@overload fun(callback:(System.Func*1FarseerPhysics*Dynamics*Fixture*1System*Boolean)|(fun(arg:FarseerPhysics.Dynamics.Fixture):(System.Boolean)), aabb:FarseerPhysics.Collision.AABB-ref)
+---@param aabb FarseerPhysics.Collision.AABB-ref
+---@return (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+_G['FarseerPhysics']['Dynamics']['World'].QueryAABB = function(aabb) end
+
+---`Method Public Instance`
+---@overload fun(callback:(System.Func*1FarseerPhysics*Dynamics*Fixture*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single)|(fun(arg1:FarseerPhysics.Dynamics.Fixture, arg2:Microsoft.Xna.Framework.Vector2, arg3:Microsoft.Xna.Framework.Vector2, arg4:System.Single):(System.Single)), point1:Microsoft.Xna.Framework.Vector2, point2:Microsoft.Xna.Framework.Vector2, collisionCategory?:FarseerPhysics.Dynamics.Category)
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+_G['FarseerPhysics']['Dynamics']['World'].RayCast = function(point1, point2) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['World'].TestPoint = function(point) end
+
+---`Method Private Instance`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].TestPointCallback = function(fixture) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return (System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture)|(FarseerPhysics.Dynamics.Fixture[])
+_G['FarseerPhysics']['Dynamics']['World'].TestPointAll = function(point) end
+
+---`Method Private Instance`
+---@param fixture FarseerPhysics.Dynamics.Fixture
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['World'].TestPointAllCallback = function(fixture) end
+
+---`Method Public Instance`
+---@param newOrigin Microsoft.Xna.Framework.Vector2
+_G['FarseerPhysics']['Dynamics']['World'].ShiftOrigin = function(newOrigin) end
+
+---`Method Public Instance`
+_G['FarseerPhysics']['Dynamics']['World'].Clear = function() end
+
+---`Method Public Instance Virtual`
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateBody = function(position, rotation, bodyType, findNewContacts) end
+
+---`Method Public Instance`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateEdge = function(start, luaKey__end, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param vertices FarseerPhysics.Common.Vertices
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateChainShape = function(vertices, position, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param vertices FarseerPhysics.Common.Vertices
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateLoopShape = function(vertices, position, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param width System.Single
+---@param height System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateRectangle = function(width, height, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param radius System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCircle = function(radius, density, position, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param xRadius System.Single
+---@param yRadius System.Single
+---@param edges System.Int32
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateEllipse = function(xRadius, yRadius, edges, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param vertices FarseerPhysics.Common.Vertices
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreatePolygon = function(vertices, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param list (System.Collections.Generic.List*1FarseerPhysics*Common*Vertices)|(FarseerPhysics.Common.Vertices[])
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCompoundPolygon = function(list, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param radius System.Single
+---@param numberOfTeeth System.Int32
+---@param tipPercentage System.Single
+---@param toothHeight System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateGear = function(radius, numberOfTeeth, tipPercentage, toothHeight, density, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@overload fun(height:System.Single, topRadius:System.Single, topEdges:System.Int32, bottomRadius:System.Single, bottomEdges:System.Int32, density:System.Single, position?:Microsoft.Xna.Framework.Vector2, rotation?:System.Single, bodyType?:FarseerPhysics.BodyType, collisionCategory?:FarseerPhysics.Dynamics.Category, collidesWith?:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):(FarseerPhysics.Dynamics.Body)
+---@param height System.Single
+---@param endRadius System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCapsule = function(height, endRadius, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param width System.Single
+---@param endRadius System.Single
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateCapsuleHorizontal = function(width, endRadius, density, position, rotation, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param width System.Single
+---@param height System.Single
+---@param xRadius System.Single
+---@param yRadius System.Single
+---@param segments System.Int32
+---@param density System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateRoundedRectangle = function(width, height, xRadius, yRadius, segments, density, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@param radians System.Single
+---@param sides System.Int32
+---@param radius System.Single
+---@param closed? System.Boolean
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateLineArc = function(radians, sides, radius, closed, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@param density System.Single
+---@param radians System.Single
+---@param sides System.Int32
+---@param radius System.Single
+---@param position? Microsoft.Xna.Framework.Vector2
+---@param rotation? System.Single
+---@param bodyType? FarseerPhysics.BodyType
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Body
+_G['FarseerPhysics']['Dynamics']['World'].CreateSolidArc = function(density, radians, sides, radius, position, rotation, bodyType, collisionCategory, collidesWith) end
+
+---`Method Public Instance`
+---@param start Microsoft.Xna.Framework.Vector2
+---@param luaKey__end Microsoft.Xna.Framework.Vector2
+---@param linkWidth System.Single
+---@param linkHeight System.Single
+---@param numberOfLinks System.Int32
+---@param linkDensity System.Single
+---@param attachRopeJoint System.Boolean
+---@return FarseerPhysics.Common.Path
+_G['FarseerPhysics']['Dynamics']['World'].CreateChain = function(start, luaKey__end, linkWidth, linkHeight, numberOfLinks, linkDensity, attachRopeJoint) end
+
+---`Constructor Public Instance`
+---@overload fun():FarseerPhysics.Dynamics.World
+---@overload fun(gravity:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Dynamics.World
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@return FarseerPhysics.Dynamics.World
+_G['FarseerPhysics']['Dynamics']['World'] = function(broadPhase) end
+
+---`Constructor Public Instance`
+---@overload fun():FarseerPhysics.Dynamics.World
+---@overload fun(gravity:Microsoft.Xna.Framework.Vector2):FarseerPhysics.Dynamics.World
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@return FarseerPhysics.Dynamics.World
+_G['FarseerPhysics']['Dynamics']['World'].__new = function(broadPhase) end
+
diff --git a/Meta/Types/server/_00007FFD9695ABA0.lua b/Meta/Types/server/_00007FFD9695ABA0.lua
new file mode 100644
index 0000000..a2a4ca8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695ABA0.lua
@@ -0,0 +1,138 @@
+---@meta
+---@class FarseerPhysics.Dynamics.Fixture : System.Object
+---`Field Private Instance`
+---@field _isSensor System.Boolean
+---`Field Private Instance`
+---@field _friction System.Single
+---`Field Private Instance`
+---@field _restitution System.Single
+---`Field NonPublic Instance`
+---@field _collidesWith FarseerPhysics.Dynamics.Category
+---`Field NonPublic Instance`
+---@field _collisionCategories FarseerPhysics.Dynamics.Category
+---`Field NonPublic Instance`
+---@field _collisionGroup System.Int16
+---`Field Public Instance`
+---@field AfterCollision (FarseerPhysics.Dynamics.AfterCollisionEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture, contact:FarseerPhysics.Dynamics.Contacts.Contact, impulse:FarseerPhysics.Dynamics.Contacts.ContactVelocityConstraint))
+---`Field Public Instance`
+---@field BeforeCollision (FarseerPhysics.Dynamics.BeforeCollisionEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture):(System.Boolean))
+---`Field Public Instance`
+---@field OnCollision (FarseerPhysics.Dynamics.OnCollisionEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture, contact:FarseerPhysics.Dynamics.Contacts.Contact):(System.Boolean))
+---`Field Public Instance`
+---@field OnSeparation (FarseerPhysics.Dynamics.OnSeparationEventHandler)|(fun(sender:FarseerPhysics.Dynamics.Fixture, other:FarseerPhysics.Dynamics.Fixture, contact:FarseerPhysics.Dynamics.Contacts.Contact))
+---`Field Public Instance`
+---@field UserData System.Object
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Proxies (FarseerPhysics.Dynamics.FixtureProxy-arr)|(FarseerPhysics.Dynamics.FixtureProxy[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ProxyCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollisionGroup System.Int16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollidesWith FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollisionCategories FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Shape FarseerPhysics.Collision.Shapes.Shape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsSensor System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field Body FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Friction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Restitution System.Single
+_G['FarseerPhysics']['Dynamics']['Fixture'] = {}
+
+---`Method Private Instance`
+_G['FarseerPhysics']['Dynamics']['Fixture'].Refilter = function() end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+_G['FarseerPhysics']['Dynamics']['Fixture'].TouchProxies = function(broadPhase) end
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['Fixture'].TestPoint = function(point) end
+
+---`Method Public Instance`
+---@param output FarseerPhysics.Collision.RayCastOutput-ref
+---@param input FarseerPhysics.Collision.RayCastInput-ref
+---@param childIndex System.Int32
+---@return System.Boolean
+_G['FarseerPhysics']['Dynamics']['Fixture'].RayCast = function(output, input, childIndex) end
+
+---`Method Public Instance`
+---@param aabb FarseerPhysics.Collision.AABB-ref
+---@param childIndex System.Int32
+_G['FarseerPhysics']['Dynamics']['Fixture'].GetAABB = function(aabb, childIndex) end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@param xf FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Dynamics']['Fixture'].CreateProxies = function(broadPhase, xf) end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+_G['FarseerPhysics']['Dynamics']['Fixture'].DestroyProxies = function(broadPhase) end
+
+---`Method NonPublic Instance`
+---@param broadPhase FarseerPhysics.Collision.IBroadPhase
+---@param transform1 FarseerPhysics.Common.Transform-ref
+---@param transform2 FarseerPhysics.Common.Transform-ref
+_G['FarseerPhysics']['Dynamics']['Fixture'].Synchronize = function(broadPhase, transform1, transform2) end
+
+---`Method Public Instance`
+---@param body FarseerPhysics.Dynamics.Body
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].CloneOnto = function(body) end
+
+---`Method NonPublic Instance`
+---@param body FarseerPhysics.Dynamics.Body
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].CloneOnto = function(body, shape) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'] = function(shape, collisionCategory, collidesWith) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].__new = function(shape, collisionCategory, collidesWith) end
+
+---`Constructor Public Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'] = function(shape, collisionCategory, collidesWith) end
+
+---`Constructor Public Instance`
+---@overload fun(collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category):FarseerPhysics.Dynamics.Fixture
+---@param shape FarseerPhysics.Collision.Shapes.Shape
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@return FarseerPhysics.Dynamics.Fixture
+_G['FarseerPhysics']['Dynamics']['Fixture'].__new = function(shape, collisionCategory, collidesWith) end
+
diff --git a/Meta/Types/server/_00007FFD9695ACE8.lua b/Meta/Types/server/_00007FFD9695ACE8.lua
new file mode 100644
index 0000000..f1120c1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695ACE8.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.Physics : System.Object
+---`Field Public Static`
+---@field DisplayToRealWorldRatio System.Single
+---`Field Public Static`
+---@field CollisionNone FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionAll FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionWall FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionCharacter FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionPlatform FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionStairs FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionItem FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionItemBlocking FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionProjectile FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionLevel FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field CollisionRepairableWall FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field DefaultItemCollidesWith FarseerPhysics.Dynamics.Category
+---`Field Public Static`
+---@field DisplayToSimRation System.Single
+---`Field Public Static`
+---@field NeutralDensity System.Single
+_G['Physics'] = {}
+
+---`Method Public Static`
+---@param categoryName System.String
+---@param category FarseerPhysics.Dynamics.Category-ref
+---@return System.Boolean
+_G['Physics'].TryParseCollisionCategory = function(categoryName, category) end
+
+---`Constructor Private Static`
+---@return Barotrauma.Physics
+_G['Physics'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Physics
+_G['Physics'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9695B948.lua b/Meta/Types/server/_00007FFD9695B948.lua
new file mode 100644
index 0000000..8c24264
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695B948.lua
@@ -0,0 +1,365 @@
+---@meta
+---@class Barotrauma.PhysicsBody : System.Object
+---`Field NonPublic Instance`
+---@field prevPosition Microsoft.Xna.Framework.Vector2
+---`Field NonPublic Instance`
+---@field prevRotation System.Single
+---`Field NonPublic Instance`
+---@field targetPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Field NonPublic Instance`
+---@field targetRotation System.Nullable*1System*Single
+---`Field Private Instance`
+---@field drawPosition Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field drawRotation System.Single
+---`Field Private Instance`
+---@field bodyShape Barotrauma.PhysicsBody.Shape
+---`Field Private Instance`
+---@field density System.Single
+---`Field Private Instance`
+---@field dir System.Single
+---`Field Private Instance`
+---@field drawOffset Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field rotationOffset System.Single
+---`Field Private Instance`
+---@field lastProcessedNetworkState System.Single
+---`Field Public Instance`
+---@field PositionSmoothingFactor System.Nullable*1System*Single
+---`Field Public Instance`
+---@field Submarine Barotrauma.Submarine
+---`Field Private Instance`
+---@field isEnabled System.Boolean
+---`Field Private Instance`
+---@field isPhysEnabled System.Boolean
+---`Field Private Instance`
+---@field _collisionCategories FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field _collidesWith FarseerPhysics.Dynamics.Category
+---`Field Private Instance`
+---@field _suppressSmoothRotationCalls System.Boolean
+---`Field Private Instance`
+---@field smoothRotationSuppressionCounter System.Int32
+---`Field Private Static`
+---@field list (System.Collections.Generic.List*1Barotrauma*PhysicsBody)|(Barotrauma.PhysicsBody[])
+---`Field Public Static`
+---@field MinDensity System.Single
+---`Field Public Static`
+---@field DefaultAngularDamping System.Single
+---`Getter Public Static`
+---@field List (System.Collections.Generic.List*1Barotrauma*PhysicsBody)|(Barotrauma.PhysicsBody[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastSentPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Height System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Width System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Radius System.Single
+---`Getter Public Instance`
+---@field BodyShape Barotrauma.PhysicsBody.Shape
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TargetRotation System.Nullable*1System*Single
+---`Getter Public Instance`
+---@field DrawPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DrawRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Dir System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Enabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PhysEnabled System.Boolean
+---`Getter Public Instance`
+---@field SimPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Position Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field DrawPositionOffset Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field PrevPosition Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---@field TransformedRotation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinearVelocity Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AngularVelocity System.Single
+---`Getter Public Instance`
+---@field Mass System.Single
+---`Getter Public Instance`
+---@field Density System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FarseerBody FarseerPhysics.Dynamics.Body
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field UserData System.Object
+---
`Setter Public Instance`
+---@field Friction System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BodyType FarseerPhysics.BodyType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollisionCategories FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CollidesWith FarseerPhysics.Dynamics.Category
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SuppressSmoothRotationCalls System.Boolean
+_G['PhysicsBody'] = {}
+
+---`Method Public Instance`
+---@param targetRotation System.Single
+---@param force? System.Single
+---@param wrapAngle? System.Boolean
+_G['PhysicsBody'].SmoothRotate = function(targetRotation, force, wrapAngle) end
+
+---`Method Public Instance`
+---@param angle System.Single
+---@return System.Single
+_G['PhysicsBody'].WrapAngleToSameNumberOfRevolutions = function(angle) end
+
+---`Method Public Instance`
+_G['PhysicsBody'].Remove = function() end
+
+---`Method Public Static`
+_G['PhysicsBody'].RemoveAll = function() end
+
+---`Method Public Static`
+---@param radius System.Single
+---@param height System.Single
+---@param width System.Single
+---@return System.Boolean
+_G['PhysicsBody'].IsValidShape = function(radius, height, width) end
+
+---`Method Public Static`
+---@param radius System.Single
+---@param width System.Single
+---@param height System.Single
+---@return Barotrauma.PhysicsBody.Shape
+_G['PhysicsBody'].DefineBodyShape = function(radius, width, height) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['PhysicsBody'].ServerWrite = function(msg) end
+
+---`Method Public Instance`
+---@param rotation System.Single
+---@return System.Single
+_G['PhysicsBody'].TransformRotation = function(rotation) end
+
+---`Method Public Static`
+---@param rot System.Single
+---@param dir System.Single
+---@return System.Single
+_G['PhysicsBody'].TransformRotation = function(rot, dir) end
+
+---`Method Private Instance`
+---@param width System.Single
+---@param height System.Single
+---@param radius System.Single
+---@param density System.Single
+---@param bodyType FarseerPhysics.BodyType
+---@param collisionCategory FarseerPhysics.Dynamics.Category
+---@param collidesWith FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+_G['PhysicsBody'].CreateBody = function(width, height, radius, density, bodyType, collisionCategory, collidesWith, findNewContacts) end
+
+---`Method Public Instance`
+---@param spritesheetRotation? System.Nullable*1System*Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].GetLocalFront = function(spritesheetRotation) end
+
+---`Method Public Instance`
+---@return System.Single
+_G['PhysicsBody'].GetMaxExtent = function() end
+
+---`Method Public Instance`
+---@return Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].GetSize = function() end
+
+---`Method Public Instance`
+---@param size Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].SetSize = function(size) end
+
+---`Method Public Instance`
+---@param value System.Single
+---@param valueName System.String
+---@param minValue? System.Single
+---@param maxValue? System.Single
+---@return System.Boolean
+_G['PhysicsBody'].IsValidValue = function(value, valueName, minValue, maxValue) end
+
+---`Method Private Instance`
+---@param value Microsoft.Xna.Framework.Vector2
+---@param valueName System.String
+---@param minValue? System.Single
+---@param maxValue? System.Single
+---@return System.Boolean
+_G['PhysicsBody'].IsValidValue = function(value, valueName, minValue, maxValue) end
+
+---`Method Public Instance`
+_G['PhysicsBody'].ResetDynamics = function() end
+
+---`Method Public Instance`
+---@overload fun(impulse:Microsoft.Xna.Framework.Vector2)
+---@overload fun(impulse:Microsoft.Xna.Framework.Vector2, maxVelocity:System.Single)
+---@overload fun(impulse:Microsoft.Xna.Framework.Vector2, point:Microsoft.Xna.Framework.Vector2)
+---@param impulse Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+---@param maxVelocity System.Single
+_G['PhysicsBody'].ApplyLinearImpulse = function(impulse, point, maxVelocity) end
+
+---`Method Public Instance`
+---@overload fun(force:Microsoft.Xna.Framework.Vector2, maxVelocity?:System.Single)
+---@param force Microsoft.Xna.Framework.Vector2
+---@param point Microsoft.Xna.Framework.Vector2
+_G['PhysicsBody'].ApplyForce = function(force, point) end
+
+---`Method Public Instance`
+---@param torque System.Single
+_G['PhysicsBody'].ApplyTorque = function(torque) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param setPrevTransform? System.Boolean
+---@return System.Boolean
+_G['PhysicsBody'].SetTransform = function(simPosition, rotation, setPrevTransform) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+---@param setPrevTransform? System.Boolean
+---@return System.Boolean
+_G['PhysicsBody'].SetTransformIgnoreContacts = function(simPosition, rotation, setPrevTransform) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param rotation System.Single
+_G['PhysicsBody'].SetPrevTransform = function(simPosition, rotation) end
+
+---`Method Public Instance`
+---@param lerp? System.Boolean
+_G['PhysicsBody'].MoveToTargetPosition = function(lerp) end
+
+---`Method Public Instance`
+---@param simPosition Microsoft.Xna.Framework.Vector2
+---@param force System.Single
+---@param pullPos? System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['PhysicsBody'].MoveToPos = function(simPosition, force, pullPos) end
+
+---`Method Public Instance`
+_G['PhysicsBody'].ApplyWaterForces = function() end
+
+---`Method Public Instance`
+_G['PhysicsBody'].Update = function() end
+
+---`Method Public Instance`
+---@param interpolate? System.Boolean
+_G['PhysicsBody'].UpdateDrawPosition = function(interpolate) end
+
+---`Method Public Instance`
+---@param positionBuffer (System.Collections.Generic.List*1Barotrauma*PhysicsBody*T)|(Barotrauma.PhysicsBody.T[])
+---@param newPosition Microsoft.Xna.Framework.Vector2-ref
+---@param newVelocity Microsoft.Xna.Framework.Vector2-ref
+---@param newRotation System.Single-ref
+---@param newAngularVelocity System.Single-ref
+_G['PhysicsBody'].CorrectPosition = function(positionBuffer, newPosition, newVelocity, newRotation, newAngularVelocity) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'] = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'].__new = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'] = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.PhysicsBody
+---@overload fun(element:System.Xml.Linq.XElement, scale?:System.Single, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(cParams:Barotrauma.RagdollParams.ColliderParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(lParams:Barotrauma.RagdollParams.LimbParams, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(width:System.Single, height:System.Single, radius:System.Single, density:System.Single, bodyType:FarseerPhysics.BodyType, collisionCategory:FarseerPhysics.Dynamics.Category, collidesWith:FarseerPhysics.Dynamics.Category, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(farseerBody:FarseerPhysics.Dynamics.Body):Barotrauma.PhysicsBody
+---@overload fun(colliderParams:Barotrauma.RagdollParams.ColliderParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@overload fun(limbParams:Barotrauma.RagdollParams.LimbParams, position:Microsoft.Xna.Framework.Vector2, findNewContacts?:System.Boolean):Barotrauma.PhysicsBody
+---@param element System.Xml.Linq.XElement
+---@param position Microsoft.Xna.Framework.Vector2
+---@param scale? System.Single
+---@param forceDensity? System.Nullable*1System*Single
+---@param collisionCategory? FarseerPhysics.Dynamics.Category
+---@param collidesWith? FarseerPhysics.Dynamics.Category
+---@param findNewContacts? System.Boolean
+---@return Barotrauma.PhysicsBody
+_G['PhysicsBody'].__new = function(element, position, scale, forceDensity, collisionCategory, collidesWith, findNewContacts) end
+
diff --git a/Meta/Types/server/_00007FFD9695BE18.lua b/Meta/Types/server/_00007FFD9695BE18.lua
new file mode 100644
index 0000000..920119b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695BE18.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Voronoi2.DoubleVector2 : System.Object
+---`Field Public Instance`
+---@field X System.Double
+---`Field Public Instance`
+---@field Y System.Double
+_G['Voronoi2']['DoubleVector2'] = {}
+
+---`Method Public Instance`
+---@param x System.Double
+---@param y System.Double
+_G['Voronoi2']['DoubleVector2'].SetPoint = function(x, y) end
+
+---`Method Public Instance`
+_G['Voronoi2']['DoubleVector2'].Normalize = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Voronoi2.DoubleVector2
+---@param x System.Double
+---@param y System.Double
+---@return Voronoi2.DoubleVector2
+_G['Voronoi2']['DoubleVector2'] = function(x, y) end
+
+---`Constructor Public Instance`
+---@overload fun():Voronoi2.DoubleVector2
+---@param x System.Double
+---@param y System.Double
+---@return Voronoi2.DoubleVector2
+_G['Voronoi2']['DoubleVector2'].__new = function(x, y) end
+
diff --git a/Meta/Types/server/_00007FFD9695BF88.lua b/Meta/Types/server/_00007FFD9695BF88.lua
new file mode 100644
index 0000000..814d42b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695BF88.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Voronoi2.Site : System.Object
+---`Field Public Instance`
+---@field Coord Voronoi2.DoubleVector2
+---`Field Public Instance`
+---@field SiteNbr System.Int32
+_G['Voronoi2']['Site'] = {}
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['Site'].SetPoint = function(point) end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Site
+_G['Voronoi2']['Site'] = function() end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Site
+_G['Voronoi2']['Site'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9695C120.lua b/Meta/Types/server/_00007FFD9695C120.lua
new file mode 100644
index 0000000..85dc6e2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695C120.lua
@@ -0,0 +1,24 @@
+---@meta
+---@class Voronoi2.Edge : System.Object
+---`Field Public Instance`
+---@field a System.Double
+---`Field Public Instance`
+---@field b System.Double
+---`Field Public Instance`
+---@field c System.Double
+---`Field Public Instance`
+---@field ep (Voronoi2.Site-arr)|(Voronoi2.Site[])
+---`Field Public Instance`
+---@field reg (Voronoi2.Site-arr)|(Voronoi2.Site[])
+---`Field Public Instance`
+---@field edgenbr System.Int32
+_G['Voronoi2']['Edge'] = {}
+
+---`Constructor Public Instance`
+---@return Voronoi2.Edge
+_G['Voronoi2']['Edge'] = function() end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Edge
+_G['Voronoi2']['Edge'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9695C2D8.lua b/Meta/Types/server/_00007FFD9695C2D8.lua
new file mode 100644
index 0000000..84d7079
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695C2D8.lua
@@ -0,0 +1,28 @@
+---@meta
+---@class Voronoi2.Halfedge : System.Object
+---`Field Public Instance`
+---@field ELleft Voronoi2.Halfedge
+---`Field Public Instance`
+---@field ELright Voronoi2.Halfedge
+---`Field Public Instance`
+---@field ELedge Voronoi2.Edge
+---`Field Public Instance`
+---@field deleted System.Boolean
+---`Field Public Instance`
+---@field ELpm System.Int32
+---`Field Public Instance`
+---@field vertex Voronoi2.Site
+---`Field Public Instance`
+---@field ystar System.Double
+---`Field Public Instance`
+---@field PQnext Voronoi2.Halfedge
+_G['Voronoi2']['Halfedge'] = {}
+
+---`Constructor Public Instance`
+---@return Voronoi2.Halfedge
+_G['Voronoi2']['Halfedge'] = function() end
+
+---`Constructor Public Instance`
+---@return Voronoi2.Halfedge
+_G['Voronoi2']['Halfedge'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9695C668.lua b/Meta/Types/server/_00007FFD9695C668.lua
new file mode 100644
index 0000000..c1cfdbf
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695C668.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Voronoi2.VoronoiCell : System.Object
+---`Field Public Instance`
+---@field Edges (System.Collections.Generic.List*1Voronoi2*GraphEdge)|(Voronoi2.GraphEdge[])
+---`Field Public Instance`
+---@field Site Voronoi2.Site
+---`Field Public Instance`
+---@field BodyVertices (System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])
+---`Field Public Instance`
+---@field Body FarseerPhysics.Dynamics.Body
+---`Field Public Instance`
+---@field CellType Voronoi2.CellType
+---`Field Public Instance`
+---@field Translation Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Island System.Boolean
+---`Field Public Instance`
+---@field IsDestructible System.Boolean
+---`Field Public Instance`
+---@field DoesDamage System.Boolean
+---`Field Public Instance`
+---@field OnDestroyed (System.Action)|(fun())
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['VoronoiCell'] = {}
+
+---`Method Public Instance`
+---@param point Microsoft.Xna.Framework.Vector2
+---@return System.Boolean
+_G['Voronoi2']['VoronoiCell'].IsPointInside = function(point) end
+
+---`Method Public Instance`
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@param margin System.Single
+---@return System.Boolean
+_G['Voronoi2']['VoronoiCell'].IsPointInsideAABB = function(point2, margin) end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])):Voronoi2.VoronoiCell
+---@param site Voronoi2.Site
+---@return Voronoi2.VoronoiCell
+_G['Voronoi2']['VoronoiCell'] = function(site) end
+
+---`Constructor Public Instance`
+---@overload fun(vertices:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])):Voronoi2.VoronoiCell
+---@param site Voronoi2.Site
+---@return Voronoi2.VoronoiCell
+_G['Voronoi2']['VoronoiCell'].__new = function(site) end
+
diff --git a/Meta/Types/server/_00007FFD9695C8B0.lua b/Meta/Types/server/_00007FFD9695C8B0.lua
new file mode 100644
index 0000000..064943a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695C8B0.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Voronoi2.GraphEdge : System.Object
+---`Field Public Instance`
+---@field Point1 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Point2 Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field Site1 Voronoi2.Site
+---`Field Public Instance`
+---@field Site2 Voronoi2.Site
+---`Field Public Instance`
+---@field Cell1 Voronoi2.VoronoiCell
+---`Field Public Instance`
+---@field Cell2 Voronoi2.VoronoiCell
+---`Field Public Instance`
+---@field IsSolid System.Boolean
+---`Field Public Instance`
+---@field OutsideLevel System.Boolean
+---`Field Public Instance`
+---@field NextToCave System.Boolean
+---`Field Public Instance`
+---@field NextToMainPath System.Boolean
+---`Field Public Instance`
+---@field NextToSidePath System.Boolean
+---`Getter Public Instance`
+---@field Center Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['GraphEdge'] = {}
+
+---`Method Public Instance`
+---@param cell Voronoi2.VoronoiCell
+---@return Voronoi2.VoronoiCell
+_G['Voronoi2']['GraphEdge'].AdjacentCell = function(cell) end
+
+---`Method Public Instance`
+---@param cell Voronoi2.VoronoiCell
+---@return Microsoft.Xna.Framework.Vector2
+_G['Voronoi2']['GraphEdge'].GetNormal = function(cell) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['Voronoi2']['GraphEdge'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return Voronoi2.GraphEdge
+_G['Voronoi2']['GraphEdge'] = function(point1, point2) end
+
+---`Constructor Public Instance`
+---@param point1 Microsoft.Xna.Framework.Vector2
+---@param point2 Microsoft.Xna.Framework.Vector2
+---@return Voronoi2.GraphEdge
+_G['Voronoi2']['GraphEdge'].__new = function(point1, point2) end
+
diff --git a/Meta/Types/server/_00007FFD9695CB30.lua b/Meta/Types/server/_00007FFD9695CB30.lua
new file mode 100644
index 0000000..f0f6779
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695CB30.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.SpriteSheet : Barotrauma.Sprite
+---`Field Private Instance`
+---@field sourceRects (Microsoft.Xna.Framework.Rectangle-arr)|(Microsoft.Xna.Framework.Rectangle[])
+---`Field Private Instance`
+---@field emptyFrames System.Int32
+---`Getter Public Instance`
+---@field FrameCount System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FrameSize Microsoft.Xna.Framework.Point
+_G['SpriteSheet'] = {}
+
+---`Method Private Instance`
+---@param columnCount System.Int32
+---@param rowCount System.Int32
+_G['SpriteSheet'].Init = function(columnCount, rowCount) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String):Barotrauma.SpriteSheet
+---@param filePath System.String
+---@param columnCount System.Int32
+---@param rowCount System.Int32
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param sourceRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.SpriteSheet
+_G['SpriteSheet'] = function(filePath, columnCount, rowCount, origin, sourceRect) end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, path?:System.String, file?:System.String):Barotrauma.SpriteSheet
+---@param filePath System.String
+---@param columnCount System.Int32
+---@param rowCount System.Int32
+---@param origin Microsoft.Xna.Framework.Vector2
+---@param sourceRect? System.Nullable*1Microsoft*Xna*Framework*Rectangle
+---@return Barotrauma.SpriteSheet
+_G['SpriteSheet'].__new = function(filePath, columnCount, rowCount, origin, sourceRect) end
+
diff --git a/Meta/Types/server/_00007FFD9695CDB0.lua b/Meta/Types/server/_00007FFD9695CDB0.lua
new file mode 100644
index 0000000..77bcc3a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695CDB0.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.ConditionalSprite : System.Object
+---`Field Public Instance`
+---@field conditionals (System.Collections.Generic.List*1Barotrauma*PropertyConditional)|(Barotrauma.PropertyConditional[])
+---`Field Public Instance`
+---@field LogicalOperator Barotrauma.PropertyConditional.LogicalOperatorType
+---`Field Public Instance`
+---@field Exclusive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Target Barotrauma.ISerializableEntity
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DeformableSprite Barotrauma.DeformableSprite
+---`Getter Public Instance`
+---@field ActiveSprite Barotrauma.Sprite
+_G['ConditionalSprite'] = {}
+
+---`Method Public Instance`
+_G['ConditionalSprite'].CheckConditionals = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param target Barotrauma.ISerializableEntity
+---@param file? System.String
+---@param lazyLoad? System.Boolean
+---@param sourceRectScale? System.Single
+---@return Barotrauma.ConditionalSprite
+_G['ConditionalSprite'] = function(element, target, file, lazyLoad, sourceRectScale) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param target Barotrauma.ISerializableEntity
+---@param file? System.String
+---@param lazyLoad? System.Boolean
+---@param sourceRectScale? System.Single
+---@return Barotrauma.ConditionalSprite
+_G['ConditionalSprite'].__new = function(element, target, file, lazyLoad, sourceRectScale) end
+
diff --git a/Meta/Types/server/_00007FFD9695CEB0.lua b/Meta/Types/server/_00007FFD9695CEB0.lua
new file mode 100644
index 0000000..dcb16d4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695CEB0.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.WearableType : System.Enum
+---`Field Public Static`
+---@field Item Barotrauma.WearableType
+---`Field Public Static`
+---@field Hair Barotrauma.WearableType
+---`Field Public Static`
+---@field Beard Barotrauma.WearableType
+---`Field Public Static`
+---@field Moustache Barotrauma.WearableType
+---`Field Public Static`
+---@field FaceAttachment Barotrauma.WearableType
+---`Field Public Static`
+---@field Husk Barotrauma.WearableType
+---`Field Public Static`
+---@field Herpes Barotrauma.WearableType
+_G['WearableType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9695DB80.lua b/Meta/Types/server/_00007FFD9695DB80.lua
new file mode 100644
index 0000000..ce38788
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695DB80.lua
@@ -0,0 +1,133 @@
+---@meta
+---@class Barotrauma.WearableSprite : System.Object
+---`Field Private Instance`
+---@field _sprite Barotrauma.Sprite
+---`Field Private Instance`
+---@field _wearableComponent Barotrauma.Items.Components.Wearable
+---`Field Private Instance`
+---@field _lightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Field Private Instance`
+---@field _picker Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UnassignedSpritePath Barotrauma.ContentPath
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SpritePath System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SourceElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Type Barotrauma.WearableType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Limb Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HideLimb System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ObscureOtherWearables Barotrauma.WearableSprite.ObscuringMode
+---`Getter Public Instance`
+---@field HideOtherWearables System.Boolean
+---`Getter Public Instance`
+---@field AlphaClipOtherWearables System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanBeHiddenByOtherWearables System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field CanBeHiddenByItem (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field HideWearablesOfType (System.Collections.Generic.List*1Barotrauma*WearableType)|(Barotrauma.WearableType[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritLimbDepth System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreRagdollScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreLimbScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IgnoreTextureScale System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritOrigin System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field InheritSourceRect System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Scale System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Rotation System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DepthLimb Barotrauma.LimbType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WearableComponent Barotrauma.Items.Components.Wearable
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sound System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SheetIndex System.Nullable*1Microsoft*Xna*Framework*Point
+---`Getter Public Instance`
+---@field LightComponent Barotrauma.Items.Components.LightComponent
+---`Getter Public Instance`
+---@field LightComponents (System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent)|(Barotrauma.Items.Components.LightComponent[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Variant System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Picker Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IsInitialized System.Boolean
+_G['WearableSprite'] = {}
+
+---`Method Private Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.ContentPath
+_G['WearableSprite'].ParseSpritePath = function(element) end
+
+---`Method Public Instance`
+---@param parseSpritePath System.Boolean
+_G['WearableSprite'].ParsePath = function(parseSpritePath) end
+
+---`Method Public Instance`
+---@param picker? Barotrauma.Character
+_G['WearableSprite'].Init = function(picker) end
+
+---`Method Public Instance`
+_G['WearableSprite'].Remove = function() end
+
+---`Constructor Public Instance`
+---@overload fun(subElement:Barotrauma.ContentXElement, type:Barotrauma.WearableType):Barotrauma.WearableSprite
+---@param subElement Barotrauma.ContentXElement
+---@param wearable Barotrauma.Items.Components.Wearable
+---@param variant? System.Int32
+---@return Barotrauma.WearableSprite
+_G['WearableSprite'] = function(subElement, wearable, variant) end
+
+---`Constructor Public Instance`
+---@overload fun(subElement:Barotrauma.ContentXElement, type:Barotrauma.WearableType):Barotrauma.WearableSprite
+---@param subElement Barotrauma.ContentXElement
+---@param wearable Barotrauma.Items.Components.Wearable
+---@param variant? System.Int32
+---@return Barotrauma.WearableSprite
+_G['WearableSprite'].__new = function(subElement, wearable, variant) end
+
diff --git a/Meta/Types/server/_00007FFD9695DD48.lua b/Meta/Types/server/_00007FFD9695DD48.lua
new file mode 100644
index 0000000..d93c1aa
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695DD48.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.DeformableSprite : System.Object
+---`Getter Public Instance`
+---@field Size Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Origin Microsoft.Xna.Framework.Vector2
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Sprite Barotrauma.Sprite
+_G['DeformableSprite'] = {}
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param subdivisionsX? System.Nullable*1System*Int32
+---@param subdivisionsY? System.Nullable*1System*Int32
+---@param filePath? System.String
+---@param lazyLoad? System.Boolean
+---@param invert? System.Boolean
+---@param sourceRectScale? System.Single
+---@return Barotrauma.DeformableSprite
+_G['DeformableSprite'] = function(element, subdivisionsX, subdivisionsY, filePath, lazyLoad, invert, sourceRectScale) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param subdivisionsX? System.Nullable*1System*Int32
+---@param subdivisionsY? System.Nullable*1System*Int32
+---@param filePath? System.String
+---@param lazyLoad? System.Boolean
+---@param invert? System.Boolean
+---@param sourceRectScale? System.Single
+---@return Barotrauma.DeformableSprite
+_G['DeformableSprite'].__new = function(element, subdivisionsX, subdivisionsY, filePath, lazyLoad, invert, sourceRectScale) end
+
diff --git a/Meta/Types/server/_00007FFD9695E018.lua b/Meta/Types/server/_00007FFD9695E018.lua
new file mode 100644
index 0000000..4801509
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695E018.lua
@@ -0,0 +1,35 @@
+---@meta
+---@class Barotrauma.SwappableItem : System.Object
+---`Field Public Instance`
+---@field CanBeBought System.Boolean
+---`Field Public Instance`
+---@field ReplacementOnUninstall Barotrauma.Identifier
+---`Field Public Instance`
+---@field SpawnWithId System.String
+---`Field Public Instance`
+---@field SwapIdentifier System.String
+---`Field Public Instance`
+---@field SwapOrigin Microsoft.Xna.Framework.Vector2
+---`Field Public Instance`
+---@field ConnectedItemsToSwap (System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier)|(System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier[])
+---`Field Public Instance`
+---@field SchematicSprite Barotrauma.Sprite
+---`Getter Public Instance`
+---@field BasePrice System.Int32
+_G['SwappableItem'] = {}
+
+---`Method Public Instance`
+---@param location? Barotrauma.Location
+---@return System.Int32
+_G['SwappableItem'].GetPrice = function(location) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SwappableItem
+_G['SwappableItem'] = function(element) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.SwappableItem
+_G['SwappableItem'].__new = function(element) end
+
diff --git a/Meta/Types/server/_00007FFD9695E2D0.lua b/Meta/Types/server/_00007FFD9695E2D0.lua
new file mode 100644
index 0000000..ec89a14
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695E2D0.lua
@@ -0,0 +1,54 @@
+---@meta
+---@class Barotrauma.FabricationRecipe : System.Object
+---`Field Public Instance`
+---@field TargetItemPrefabIdentifier Barotrauma.Identifier
+---`Field Private Instance`
+---@field displayName System.Lazy*1Barotrauma*LocalizedString
+---`Field Public Instance`
+---@field RequiredItems (System.Collections.Immutable.ImmutableArray*1Barotrauma*FabricationRecipe*RequiredItem)|(Barotrauma.FabricationRecipe.RequiredItem[])
+---`Field Public Instance`
+---@field SuitableFabricatorIdentifiers (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field RequiredTime System.Single
+---`Field Public Instance`
+---@field RequiredMoney System.Int32
+---`Field Public Instance`
+---@field RequiresRecipe System.Boolean
+---`Field Public Instance`
+---@field OutCondition System.Single
+---`Field Public Instance`
+---@field RequiredSkills (System.Collections.Immutable.ImmutableArray*1Barotrauma*Skill)|(Barotrauma.Skill[])
+---`Field Public Instance`
+---@field RecipeHash System.UInt32
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field Quality System.Nullable*1System*Int32
+---`Field Public Instance`
+---@field HideForNonTraitors System.Boolean
+---`Field Public Instance`
+---@field FabricationLimitMin System.Int32
+---`Field Public Instance`
+---@field FabricationLimitMax System.Int32
+---`Getter Public Instance`
+---@field TargetItem Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field DisplayName Barotrauma.LocalizedString
+_G['FabricationRecipe'] = {}
+
+---`Method Private Instance`
+---@return System.UInt32
+_G['FabricationRecipe'].GenerateHash = function() end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param itemPrefab Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe
+_G['FabricationRecipe'] = function(element, itemPrefab) end
+
+---`Constructor Public Instance`
+---@param element Barotrauma.ContentXElement
+---@param itemPrefab Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe
+_G['FabricationRecipe'].__new = function(element, itemPrefab) end
+
diff --git a/Meta/Types/server/_00007FFD9695E4A0.lua b/Meta/Types/server/_00007FFD9695E4A0.lua
new file mode 100644
index 0000000..6ec3923
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695E4A0.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.FabricationRecipe.RequiredItem : System.Object
+---`Field Public Instance`
+---@field Amount System.Int32
+---`Field Public Instance`
+---@field MinCondition System.Single
+---`Field Public Instance`
+---@field MaxCondition System.Single
+---`Field Public Instance`
+---@field UseCondition System.Boolean
+---`Field Public Instance`
+---@field DefaultItem Barotrauma.Identifier
+---`Getter Public Instance Abstract Virtual`
+---@field ItemPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Public Instance Abstract Virtual`
+---@field UintIdentifier System.UInt32
+---`Getter Public Instance Abstract Virtual`
+---@field FirstMatchingPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field OverrideHeader Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field OverrideDescription Barotrauma.LocalizedString
+_G['FabricationRecipe']['RequiredItem'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItem'].MatchesItem = function(item) end
+
+---`Method Public Instance`
+---@param conditionPercentage System.Single
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItem'].IsConditionSuitable = function(conditionPercentage) end
+
+---`Constructor Public Instance`
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItem
+_G['FabricationRecipe']['RequiredItem'] = function(amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
+---`Constructor Public Instance`
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItem
+_G['FabricationRecipe']['RequiredItem'].__new = function(amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
diff --git a/Meta/Types/server/_00007FFD9695F528.lua b/Meta/Types/server/_00007FFD9695F528.lua
new file mode 100644
index 0000000..3c3197b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695F528.lua
@@ -0,0 +1,45 @@
+---@meta
+---@class Barotrauma.FabricationRecipe.RequiredItemByIdentifier : Barotrauma.FabricationRecipe.RequiredItem
+---`Field Public Instance`
+---@field ItemPrefabIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---@field ItemPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance Virtual`
+---@field UintIdentifier System.UInt32
+---`Getter Public Instance Virtual`
+---@field ItemPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Public Instance Virtual`
+---@field FirstMatchingPrefab Barotrauma.ItemPrefab
+_G['FabricationRecipe']['RequiredItemByIdentifier'] = {}
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItemByIdentifier'].MatchesItem = function(item) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['FabricationRecipe']['RequiredItemByIdentifier'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@return Barotrauma.FabricationRecipe.RequiredItemByIdentifier
+_G['FabricationRecipe']['RequiredItemByIdentifier'] = function(itemPrefab, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader) end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@return Barotrauma.FabricationRecipe.RequiredItemByIdentifier
+_G['FabricationRecipe']['RequiredItemByIdentifier'].__new = function(itemPrefab, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader) end
+
diff --git a/Meta/Types/server/_00007FFD9695F760.lua b/Meta/Types/server/_00007FFD9695F760.lua
new file mode 100644
index 0000000..12861b5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695F760.lua
@@ -0,0 +1,49 @@
+---@meta
+---@class Barotrauma.FabricationRecipe.RequiredItemByTag : Barotrauma.FabricationRecipe.RequiredItem
+---`Field Public Instance`
+---@field Tag Barotrauma.Identifier
+---`Field Private Instance`
+---@field cachedPrefabs (System.Collections.Generic.List*1Barotrauma*ItemPrefab)|(Barotrauma.ItemPrefab[])
+---`Field Private Instance`
+---@field prevContentPackagesHash Barotrauma.Md5Hash
+---`Getter Public Instance Virtual`
+---@field UintIdentifier System.UInt32
+---`Getter Public Instance Virtual`
+---@field ItemPrefabs (System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))
+---`Getter Public Instance Virtual`
+---@field FirstMatchingPrefab Barotrauma.ItemPrefab
+_G['FabricationRecipe']['RequiredItemByTag'] = {}
+
+---`Method Public Instance Virtual`
+---@param item Barotrauma.Item
+---@return System.Boolean
+_G['FabricationRecipe']['RequiredItemByTag'].MatchesItem = function(item) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['FabricationRecipe']['RequiredItemByTag'].ToString = function() end
+
+---`Constructor Public Instance`
+---@param tag Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItemByTag
+_G['FabricationRecipe']['RequiredItemByTag'] = function(tag, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
+---`Constructor Public Instance`
+---@param tag Barotrauma.Identifier
+---@param amount System.Int32
+---@param minCondition System.Single
+---@param maxCondition System.Single
+---@param useCondition System.Boolean
+---@param overrideDescription Barotrauma.LocalizedString
+---@param overrideHeader Barotrauma.LocalizedString
+---@param defaultItem Barotrauma.Identifier
+---@return Barotrauma.FabricationRecipe.RequiredItemByTag
+_G['FabricationRecipe']['RequiredItemByTag'].__new = function(tag, amount, minCondition, maxCondition, useCondition, overrideDescription, overrideHeader, defaultItem) end
+
diff --git a/Meta/Types/server/_00007FFD9695FA98.lua b/Meta/Types/server/_00007FFD9695FA98.lua
new file mode 100644
index 0000000..940281d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695FA98.lua
@@ -0,0 +1,43 @@
+---@meta
+---@class Barotrauma.PurchasedItem : System.Object
+---`Field Public Instance`
+---@field BuyerCharacterInfoIdentifier System.Int32
+---`Field Public Instance`
+---@field Delivered System.Boolean
+---`Getter Public Instance`
+---@field ItemPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---@field ItemPrefabIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Quantity System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsStoreComponentEnabled System.Nullable*1System*Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DeliverImmediately System.Boolean
+_G['PurchasedItem'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['PurchasedItem'].ToString = function() end
+
+---`Constructor Public Instance`
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyerCharacterInfoId:System.Int32):Barotrauma.PurchasedItem
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyer:Barotrauma.Networking.Client):Barotrauma.PurchasedItem
+---@param itemPrefabId Barotrauma.Identifier
+---@param quantity System.Int32
+---@param buyer Barotrauma.Networking.Client
+---@return Barotrauma.PurchasedItem
+_G['PurchasedItem'] = function(itemPrefabId, quantity, buyer) end
+
+---`Constructor Public Instance`
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyerCharacterInfoId:System.Int32):Barotrauma.PurchasedItem
+---@overload fun(itemPrefab:Barotrauma.ItemPrefab, quantity:System.Int32, buyer:Barotrauma.Networking.Client):Barotrauma.PurchasedItem
+---@param itemPrefabId Barotrauma.Identifier
+---@param quantity System.Int32
+---@param buyer Barotrauma.Networking.Client
+---@return Barotrauma.PurchasedItem
+_G['PurchasedItem'].__new = function(itemPrefabId, quantity, buyer) end
+
diff --git a/Meta/Types/server/_00007FFD9695FBF8.lua b/Meta/Types/server/_00007FFD9695FBF8.lua
new file mode 100644
index 0000000..fb73d5f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695FBF8.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.PurchasedItemSwap : System.Object
+---`Field Public Instance`
+---@field ItemToRemove Barotrauma.Item
+---`Field Public Instance`
+---@field ItemToInstall Barotrauma.ItemPrefab
+_G['PurchasedItemSwap'] = {}
+
+---`Constructor Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param itemToInstall Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItemSwap
+_G['PurchasedItemSwap'] = function(itemToRemove, itemToInstall) end
+
+---`Constructor Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param itemToInstall Barotrauma.ItemPrefab
+---@return Barotrauma.PurchasedItemSwap
+_G['PurchasedItemSwap'].__new = function(itemToRemove, itemToInstall) end
+
diff --git a/Meta/Types/server/_00007FFD9695FF98.lua b/Meta/Types/server/_00007FFD9695FF98.lua
new file mode 100644
index 0000000..f4f260e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9695FF98.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.SoldItem : System.Object
+---`Getter Public Instance`
+---@field ItemPrefab Barotrauma.ItemPrefab
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ID System.UInt16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Removed System.Boolean
+---`Getter Public Instance`
+---@field SellerID System.Byte
+---`Getter Public Instance`
+---@field Origin Barotrauma.SoldItem.SellOrigin
+_G['SoldItem'] = {}
+
+---`Method Public Instance`
+---@param id System.UInt16
+_G['SoldItem'].SetItemId = function(id) end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param id System.UInt16
+---@param removed System.Boolean
+---@param sellerId System.Byte
+---@param origin Barotrauma.SoldItem.SellOrigin
+---@return Barotrauma.SoldItem
+_G['SoldItem'] = function(itemPrefab, id, removed, sellerId, origin) end
+
+---`Constructor Public Instance`
+---@param itemPrefab Barotrauma.ItemPrefab
+---@param id System.UInt16
+---@param removed System.Boolean
+---@param sellerId System.Byte
+---@param origin Barotrauma.SoldItem.SellOrigin
+---@return Barotrauma.SoldItem
+_G['SoldItem'].__new = function(itemPrefab, id, removed, sellerId, origin) end
+
diff --git a/Meta/Types/server/_00007FFD969602D8.lua b/Meta/Types/server/_00007FFD969602D8.lua
new file mode 100644
index 0000000..6d60999
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969602D8.lua
@@ -0,0 +1,55 @@
+---@meta
+---@class Barotrauma.UpgradeCategory : Barotrauma.UpgradeContentPrefab
+---`Field Private Instance`
+---@field selfItemTags (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field prefabsThatAllowUpgrades (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field IsWallUpgrade System.Boolean
+---`Field Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Field Private Instance`
+---@field mutex System.Object
+---`Field Public Instance`
+---@field ItemTags (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Field Public Static`
+---@field Categories (Barotrauma.PrefabCollection*1Barotrauma*UpgradeCategory)|(fun():(Barotrauma.UpgradeCategory))
+_G['UpgradeCategory'] = {}
+
+---`Method Public Instance`
+_G['UpgradeCategory'].DeterminePrefabsThatAllowUpgrades = function() end
+
+---`Method Public Instance`
+---@param item Barotrauma.MapEntity
+---@param upgradePrefab Barotrauma.UpgradePrefab
+---@return System.Boolean
+_G['UpgradeCategory'].CanBeApplied = function(item, upgradePrefab) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'].Find = function(identifier) end
+
+---`Method Public Instance Virtual`
+_G['UpgradeCategory'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradeCategory
+---@return Barotrauma.UpgradeCategory
+_G['UpgradeCategory'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96960458.lua b/Meta/Types/server/_00007FFD96960458.lua
new file mode 100644
index 0000000..a2e79ef
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96960458.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.UpgradePrice : System.ValueType
+---`Field Public Instance`
+---@field BasePrice System.Int32
+---`Field Public Instance`
+---@field IncreaseLow System.Int32
+---`Field Public Instance`
+---@field IncreaseHigh System.Int32
+_G['UpgradePrice'] = {}
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+---@param location? Barotrauma.Location
+---@param characterList? (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character)|(Barotrauma.Character[])
+---@return System.Int32
+_G['UpgradePrice'].GetBuyPrice = function(prefab, level, location, characterList) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UpgradePrice
+_G['UpgradePrice'] = function(prefab, element) end
+
+---`Constructor Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param element Barotrauma.ContentXElement
+---@return Barotrauma.UpgradePrice
+_G['UpgradePrice'].__new = function(prefab, element) end
+
diff --git a/Meta/Types/server/_00007FFD96960900.lua b/Meta/Types/server/_00007FFD96960900.lua
new file mode 100644
index 0000000..1783e0f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96960900.lua
@@ -0,0 +1,190 @@
+---@meta
+---@class Barotrauma.UpgradeManager : System.Object
+---`Field Private Instance`
+---@field loadedUpgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+---`Field Public Instance`
+---@field PurchasedUpgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+---`Field Public Instance`
+---@field PendingUpgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+---`Field Public Instance`
+---@field PurchasedItemSwaps (System.Collections.Generic.List*1Barotrauma*PurchasedItemSwap)|(Barotrauma.PurchasedItemSwap[])
+---`Field Private Instance`
+---@field Campaign Barotrauma.CampaignMode
+---`Field Public Instance`
+---@field OnUpgradesChanged Barotrauma.NamedEvent*1Barotrauma*UpgradeManager
+---`Field Private Instance`
+---@field lastUpgradeSpeak System.DateTime
+---`Field Private Instance`
+---@field lastErrorSpeak System.DateTime
+---`Field Private Static`
+---@field upgradedSubs (System.Collections.Generic.HashSet*1Barotrauma*Submarine)|(Barotrauma.Submarine[])
+---`Field Public Static`
+---@field UpgradeAlsoConnectedSubs System.Boolean
+---`Getter Private Instance`
+---@field Metadata Barotrauma.CampaignMetadata
+_G['UpgradeManager'] = {}
+
+---`Method Public Instance`
+---@param item Barotrauma.Item
+---@param replacement Barotrauma.ItemPrefab
+---@return System.Int32
+_G['UpgradeManager'].DetermineItemSwapCost = function(item, replacement) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param force? System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['UpgradeManager'].PurchaseUpgrade = function(prefab, category, force, client) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level System.Int32
+_G['UpgradeManager'].AddUpgradeExternally = function(prefab, category, level) end
+
+---`Method Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param itemToInstall Barotrauma.ItemPrefab
+---@param isNetworkMessage? System.Boolean
+---@param client? Barotrauma.Networking.Client
+_G['UpgradeManager'].PurchaseItemSwap = function(itemToRemove, itemToInstall, isNetworkMessage, client) end
+
+---`Method Public Instance`
+---@param itemToRemove Barotrauma.Item
+---@param force? System.Boolean
+_G['UpgradeManager'].CancelItemSwap = function(itemToRemove, force) end
+
+---`Method Public Static`
+---@param item Barotrauma.Item
+---@return (System.Collections.Generic.ICollection*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+_G['UpgradeManager'].GetLinkedItemsToSwap = function(item) end
+
+---`Method Public Instance`
+_G['UpgradeManager'].ApplyUpgrades = function() end
+
+---`Method Public Instance`
+---@param text System.String
+---@param isSinglePlayer System.Boolean
+---@param character Barotrauma.Character
+_G['UpgradeManager'].CreateUpgradeErrorMessage = function(text, isSinglePlayer, character) end
+
+---`Method Private Instance`
+---@param text System.String
+---@param isSinglePlayer System.Boolean
+---@param character? Barotrauma.Character
+_G['UpgradeManager'].UpgradeNPCSpeak = function(text, isSinglePlayer, character) end
+
+---`Method Public Instance`
+_G['UpgradeManager'].SanityCheckUpgrades = function() end
+
+---`Method Private Static`
+---@param target Barotrauma.ISerializableEntity
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+_G['UpgradeManager'].FixUpgradeOnItem = function(target, prefab, level) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param submarine Barotrauma.Submarine
+---@param level? System.Int32
+---@param parentSub? Barotrauma.Submarine
+---@return System.Int32
+_G['UpgradeManager'].BuyUpgrade = function(prefab, category, submarine, level, parentSub) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param info? Barotrauma.SubmarineInfo
+---@return System.Int32
+_G['UpgradeManager'].GetUpgradeLevel = function(prefab, category, info) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@return System.Int32
+_G['UpgradeManager'].GetRealUpgradeLevel = function(prefab, category) end
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param info Barotrauma.SubmarineInfo
+---@return System.Int32
+_G['UpgradeManager'].GetRealUpgradeLevelForSub = function(prefab, category, info) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level System.Int32
+_G['UpgradeManager'].SetUpgradeLevel = function(prefab, category, level) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['UpgradeManager'].CanUpgradeSub = function() end
+
+---`Method Public Instance`
+---@param parent System.Xml.Linq.XElement
+_G['UpgradeManager'].Save = function(parent) end
+
+---`Method Private Static`
+---@param parent System.Xml.Linq.XElement
+---@param upgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+_G['UpgradeManager'].SavePendingUpgrades = function(parent, upgrades) end
+
+---`Method Private Instance`
+---@param element System.Xml.Linq.XElement
+---@param isSingleplayer? System.Boolean
+_G['UpgradeManager'].LoadPendingUpgrades = function(element, isSingleplayer) end
+
+---`Method Public Static`
+---@param text System.String
+---@param data (System.Collections.Generic.Dictionary*1System*String*1System*Object)|({[System.String]:(System.Object)})
+---@param e? System.Exception
+_G['UpgradeManager'].LogError = function(text, data, e) end
+
+---`Method Public Instance`
+---@param upgrades (System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade)|(Barotrauma.PurchasedUpgrade[])
+_G['UpgradeManager'].SetPendingUpgrades = function(upgrades) end
+
+---`Method Public Static`
+---@param msg System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['UpgradeManager'].DebugLog = function(msg, color) end
+
+---`Method Private Instance`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@return Barotrauma.PurchasedUpgrade
+_G['UpgradeManager'].FindMatchingUpgrade = function(prefab, category) end
+
+---`Method Private Static`
+---@param prefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@return Barotrauma.Identifier
+_G['UpgradeManager'].FormatIdentifier = function(prefab, category) end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(campaign:Barotrauma.CampaignMode):Barotrauma.UpgradeManager
+---@overload fun(campaign:Barotrauma.CampaignMode, element:System.Xml.Linq.XElement, isSingleplayer:System.Boolean):Barotrauma.UpgradeManager
+---@return Barotrauma.UpgradeManager
+_G['UpgradeManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969626A0.lua b/Meta/Types/server/_00007FFD969626A0.lua
new file mode 100644
index 0000000..5d9f6b3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969626A0.lua
@@ -0,0 +1,122 @@
+---@meta
+---@class Barotrauma.UpgradePrefab : Barotrauma.UpgradeContentPrefab
+---`Field Public Instance`
+---@field MaxLevel System.Int32
+---`Field Private Instance`
+---@field upgradeCategoryIdentifiers (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Private Instance`
+---@field MaxLevelsMods (System.Collections.Immutable.ImmutableArray*1Barotrauma*UpgradeMaxLevelMod)|(Barotrauma.UpgradeMaxLevelMod[])
+---`Field Public Instance`
+---@field ResourceCosts (System.Collections.Immutable.ImmutableHashSet*1Barotrauma*UpgradeResourceCost)|(Barotrauma.UpgradeResourceCost[])
+---`Field Public Static`
+---@field Prefabs (Barotrauma.PrefabCollection*1Barotrauma*UpgradePrefab)|(fun():(Barotrauma.UpgradePrefab))
+---`Field Private Static`
+---@field crushDepthUpgradePrc System.Nullable*1System*Int32
+---`Field Private Static`
+---@field increaseWallHealthMaxLevel System.Nullable*1System*Int32
+---`Field Public Static`
+---@field CrushDepthDefaultUpgradePrc System.Int32
+---`Field Public Static`
+---@field IncreaseWallHealthDefaultMaxLevel System.Int32
+---`Getter Public Instance`
+---@field Name Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field Description Barotrauma.LocalizedString
+---`Getter Public Instance`
+---@field IncreaseOnTooltip System.Single
+---`Getter Public Instance`
+---@field UpgradeCategories (System.Collections.Generic.IEnumerable*1Barotrauma*UpgradeCategory)|(fun():(Barotrauma.UpgradeCategory))
+---`Getter Public Instance`
+---@field Price Barotrauma.UpgradePrice
+---`Getter Private Instance`
+---@field isOverride System.Boolean
+---`Getter Public Instance`
+---@field SourceElement Barotrauma.ContentXElement
+---`Getter Public Instance`
+---@field SuppressWarnings System.Boolean
+---`Getter Public Instance`
+---@field HideInMenus System.Boolean
+---`Getter Public Instance`
+---@field TargetItems (System.Collections.Generic.IEnumerable*1Barotrauma*Identifier)|(fun():(Barotrauma.Identifier))
+---`Getter Public Instance`
+---@field IsWallUpgrade System.Boolean
+---`Getter Private Instance`
+---@field targetProperties (System.Collections.Generic.Dictionary*1System*String*1System*String-arr)|({[System.String]:((System.String-arr)|(System.String[]))})
+---`Getter Public Static`
+---@field CrushDepthUpgradePrc System.Int32
+---`Getter Public Static`
+---@field IncreaseWallHealthMaxLevel System.Int32
+_G['UpgradePrefab'] = {}
+
+---`Method Public Instance`
+---@return System.Int32
+_G['UpgradePrefab'].GetMaxLevelForCurrentSub = function() end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@return System.Int32
+_G['UpgradePrefab'].GetMaxLevel = function(info) end
+
+---`Method Public Instance`
+---@param info Barotrauma.SubmarineInfo
+---@return System.Boolean
+_G['UpgradePrefab'].IsApplicable = function(info) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param currentLevel System.Int32
+---@return System.Boolean
+_G['UpgradePrefab'].HasResourcesToUpgrade = function(character, currentLevel) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param currentLevel System.Int32
+---@return System.Boolean
+_G['UpgradePrefab'].TryTakeResources = function(character, currentLevel) end
+
+---`Method Public Instance`
+---@param level System.Int32
+---@return (System.Collections.Immutable.ImmutableArray*1Barotrauma*ApplicableResourceCollection)|(Barotrauma.ApplicableResourceCollection[])
+_G['UpgradePrefab'].GetApplicableResources = function(level) end
+
+---`Method Public Instance`
+---@param item Barotrauma.MapEntity
+---@return System.Boolean
+_G['UpgradePrefab'].IsDisallowed = function(item) end
+
+---`Method Public Static`
+---@param identifier Barotrauma.Identifier
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'].Find = function(identifier) end
+
+---`Method Public Static`
+---@param value System.String
+---@param attribute? Barotrauma.Identifier
+---@param sourceElement? System.Xml.Linq.XElement
+---@param suppressWarnings? System.Boolean
+---@return System.Int32
+_G['UpgradePrefab'].ParsePercentage = function(value, attribute, sourceElement, suppressWarnings) end
+
+---`Method Public Instance Virtual`
+_G['UpgradePrefab'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(element:Barotrauma.ContentXElement, file:Barotrauma.UpgradeModulesFile):Barotrauma.UpgradePrefab
+---@return Barotrauma.UpgradePrefab
+_G['UpgradePrefab'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96963108.lua b/Meta/Types/server/_00007FFD96963108.lua
new file mode 100644
index 0000000..a456fe5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96963108.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.Upgrade : System.Object
+---`Field Private Instance`
+---@field sourceElement Barotrauma.ContentXElement
+---`Getter Private Instance`
+---@field TargetEntity Barotrauma.ISerializableEntity
+---`Getter Public Instance`
+---@field TargetComponents (System.Collections.Generic.Dictionary*1Barotrauma*ISerializableEntity*1Barotrauma*PropertyReference-arr)|({[Barotrauma.ISerializableEntity]:((Barotrauma.PropertyReference-arr)|(Barotrauma.PropertyReference[]))})
+---`Getter Public Instance`
+---@field Prefab Barotrauma.UpgradePrefab
+---`Getter Public Instance`
+---@field Identifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Level System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Disposed System.Boolean
+_G['Upgrade'] = {}
+
+---`Method Private Instance`
+---@param saveElement System.Xml.Linq.XContainer
+_G['Upgrade'].ResetNonAffectedProperties = function(saveElement) end
+
+---`Method Private Static`
+---@param item Barotrauma.Item
+---@param name System.String
+---@return (Barotrauma.ISerializableEntity-arr)|(Barotrauma.ISerializableEntity[])
+_G['Upgrade'].FindItemComponent = function(item, name) end
+
+---`Method Public Instance`
+---@param element System.Xml.Linq.XElement
+_G['Upgrade'].Save = function(element) end
+
+---`Method Public Instance`
+_G['Upgrade'].ApplyUpgrade = function() end
+
+---`Method Public Instance Virtual`
+_G['Upgrade'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param targetEntity Barotrauma.ISerializableEntity
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+---@param saveElement? System.Xml.Linq.XContainer
+---@return Barotrauma.Upgrade
+_G['Upgrade'] = function(targetEntity, prefab, level, saveElement) end
+
+---`Constructor Public Instance`
+---@param targetEntity Barotrauma.ISerializableEntity
+---@param prefab Barotrauma.UpgradePrefab
+---@param level System.Int32
+---@param saveElement? System.Xml.Linq.XContainer
+---@return Barotrauma.Upgrade
+_G['Upgrade'].__new = function(targetEntity, prefab, level, saveElement) end
+
diff --git a/Meta/Types/server/_00007FFD969632A8.lua b/Meta/Types/server/_00007FFD969632A8.lua
new file mode 100644
index 0000000..c04e7bd
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969632A8.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.PurchasedUpgrade : System.Object
+---`Field Public Instance`
+---@field Category Barotrauma.UpgradeCategory
+---`Field Public Instance`
+---@field Prefab Barotrauma.UpgradePrefab
+---`Field Public Instance`
+---@field Level System.Int32
+_G['PurchasedUpgrade'] = {}
+
+---`Method Public Instance`
+---@param prefab Barotrauma.UpgradePrefab-ref
+---@param category Barotrauma.UpgradeCategory-ref
+---@param level System.Int32-ref
+_G['PurchasedUpgrade'].Deconstruct = function(prefab, category, level) end
+
+---`Constructor Public Instance`
+---@param upgradePrefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level? System.Int32
+---@return Barotrauma.PurchasedUpgrade
+_G['PurchasedUpgrade'] = function(upgradePrefab, category, level) end
+
+---`Constructor Public Instance`
+---@param upgradePrefab Barotrauma.UpgradePrefab
+---@param category Barotrauma.UpgradeCategory
+---@param level? System.Int32
+---@return Barotrauma.PurchasedUpgrade
+_G['PurchasedUpgrade'].__new = function(upgradePrefab, category, level) end
+
diff --git a/Meta/Types/server/_00007FFD969633A8.lua b/Meta/Types/server/_00007FFD969633A8.lua
new file mode 100644
index 0000000..2a5d1bc
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969633A8.lua
@@ -0,0 +1,34 @@
+---@meta
+---@class Barotrauma.Item.EventType : System.Enum
+---`Field Public Static`
+---@field ComponentState Barotrauma.Item.EventType
+---`Field Public Static`
+---@field InventoryState Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Treatment Barotrauma.Item.EventType
+---`Field Public Static`
+---@field ChangeProperty Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Combine Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Status Barotrauma.Item.EventType
+---`Field Public Static`
+---@field AssignCampaignInteraction Barotrauma.Item.EventType
+---`Field Public Static`
+---@field ApplyStatusEffect Barotrauma.Item.EventType
+---`Field Public Static`
+---@field Upgrade Barotrauma.Item.EventType
+---`Field Public Static`
+---@field ItemStat Barotrauma.Item.EventType
+---`Field Public Static`
+---@field DroppedStack Barotrauma.Item.EventType
+---`Field Public Static`
+---@field SetHighlight Barotrauma.Item.EventType
+---`Field Public Static`
+---@field SwapItem Barotrauma.Item.EventType
+---`Field Public Static`
+---@field MinValue Barotrauma.Item.EventType
+---`Field Public Static`
+---@field MaxValue Barotrauma.Item.EventType
+_G['Item']['EventType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD969636C8.lua b/Meta/Types/server/_00007FFD969636C8.lua
new file mode 100644
index 0000000..faea4c5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969636C8.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Item.ComponentStateEventData : System.ValueType
+---`Field Public Instance`
+---@field Component Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field ComponentData Barotrauma.Items.Components.ItemComponent.IEventData
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['ComponentStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+---@param componentData Barotrauma.Items.Components.ItemComponent.IEventData
+---@return Barotrauma.Item.ComponentStateEventData
+_G['Item']['ComponentStateEventData'] = function(component, componentData) end
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemComponent
+---@param componentData Barotrauma.Items.Components.ItemComponent.IEventData
+---@return Barotrauma.Item.ComponentStateEventData
+_G['Item']['ComponentStateEventData'].__new = function(component, componentData) end
+
diff --git a/Meta/Types/server/_00007FFD96963E50.lua b/Meta/Types/server/_00007FFD96963E50.lua
new file mode 100644
index 0000000..c670888
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96963E50.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Item.InventoryStateEventData : System.ValueType
+---`Field Public Instance`
+---@field Component Barotrauma.Items.Components.ItemContainer
+---`Field Public Instance`
+---@field SlotRange System.Range
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['InventoryStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemContainer
+---@param slotRange System.Range
+---@return Barotrauma.Item.InventoryStateEventData
+_G['Item']['InventoryStateEventData'] = function(component, slotRange) end
+
+---`Constructor Public Instance`
+---@param component Barotrauma.Items.Components.ItemContainer
+---@param slotRange System.Range
+---@return Barotrauma.Item.InventoryStateEventData
+_G['Item']['InventoryStateEventData'].__new = function(component, slotRange) end
+
diff --git a/Meta/Types/server/_00007FFD96963FD8.lua b/Meta/Types/server/_00007FFD96963FD8.lua
new file mode 100644
index 0000000..7aac22c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96963FD8.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Item.ChangePropertyEventData : System.ValueType
+---`Field Public Instance`
+---@field SerializableProperty Barotrauma.SerializableProperty
+---`Field Public Instance`
+---@field Entity Barotrauma.ISerializableEntity
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['ChangePropertyEventData'] = {}
+
+---`Constructor Public Instance`
+---@param serializableProperty Barotrauma.SerializableProperty
+---@param entity Barotrauma.ISerializableEntity
+---@return Barotrauma.Item.ChangePropertyEventData
+_G['Item']['ChangePropertyEventData'] = function(serializableProperty, entity) end
+
+---`Constructor Public Instance`
+---@param serializableProperty Barotrauma.SerializableProperty
+---@param entity Barotrauma.ISerializableEntity
+---@return Barotrauma.Item.ChangePropertyEventData
+_G['Item']['ChangePropertyEventData'].__new = function(serializableProperty, entity) end
+
diff --git a/Meta/Types/server/_00007FFD969641A0.lua b/Meta/Types/server/_00007FFD969641A0.lua
new file mode 100644
index 0000000..a1087d4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969641A0.lua
@@ -0,0 +1,38 @@
+---@meta
+---@class Barotrauma.Item.ApplyStatusEffectEventData : System.ValueType
+---`Field Public Instance`
+---@field ActionType Barotrauma.ActionType
+---`Field Public Instance`
+---@field TargetItemComponent Barotrauma.Items.Components.ItemComponent
+---`Field Public Instance`
+---@field TargetCharacter Barotrauma.Character
+---`Field Public Instance`
+---@field TargetLimb Barotrauma.Limb
+---`Field Public Instance`
+---@field UseTarget Barotrauma.Entity
+---`Field Public Instance`
+---@field WorldPosition System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Item.EventType
+_G['Item']['ApplyStatusEffectEventData'] = {}
+
+---`Constructor Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param targetCharacter? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.Item.ApplyStatusEffectEventData
+_G['Item']['ApplyStatusEffectEventData'] = function(actionType, targetItemComponent, targetCharacter, targetLimb, useTarget, worldPosition) end
+
+---`Constructor Public Instance`
+---@param actionType Barotrauma.ActionType
+---@param targetItemComponent? Barotrauma.Items.Components.ItemComponent
+---@param targetCharacter? Barotrauma.Character
+---@param targetLimb? Barotrauma.Limb
+---@param useTarget? Barotrauma.Entity
+---@param worldPosition? System.Nullable*1Microsoft*Xna*Framework*Vector2
+---@return Barotrauma.Item.ApplyStatusEffectEventData
+_G['Item']['ApplyStatusEffectEventData'].__new = function(actionType, targetItemComponent, targetCharacter, targetLimb, useTarget, worldPosition) end
+
diff --git a/Meta/Types/server/_00007FFD969642A0.lua b/Meta/Types/server/_00007FFD969642A0.lua
new file mode 100644
index 0000000..52280f4
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969642A0.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.Character.EventType : System.Enum
+---`Field Public Static`
+---@field InventoryState Barotrauma.Character.EventType
+---`Field Public Static`
+---@field Control Barotrauma.Character.EventType
+---`Field Public Static`
+---@field Status Barotrauma.Character.EventType
+---`Field Public Static`
+---@field Treatment Barotrauma.Character.EventType
+---`Field Public Static`
+---@field SetAttackTarget Barotrauma.Character.EventType
+---`Field Public Static`
+---@field ExecuteAttack Barotrauma.Character.EventType
+---`Field Public Static`
+---@field AssignCampaignInteraction Barotrauma.Character.EventType
+---`Field Public Static`
+---@field ObjectiveManagerState Barotrauma.Character.EventType
+---`Field Public Static`
+---@field TeamChange Barotrauma.Character.EventType
+---`Field Public Static`
+---@field AddToCrew Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateExperience Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateTalents Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateSkills Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateMoney Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdatePermanentStats Barotrauma.Character.EventType
+---`Field Public Static`
+---@field RemoveFromCrew Barotrauma.Character.EventType
+---`Field Public Static`
+---@field LatchOntoTarget Barotrauma.Character.EventType
+---`Field Public Static`
+---@field UpdateTalentRefundPoints Barotrauma.Character.EventType
+---`Field Public Static`
+---@field ConfirmTalentRefund Barotrauma.Character.EventType
+---`Field Public Static`
+---@field MinValue Barotrauma.Character.EventType
+---`Field Public Static`
+---@field MaxValue Barotrauma.Character.EventType
+_G['Character']['EventType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96964548.lua b/Meta/Types/server/_00007FFD96964548.lua
new file mode 100644
index 0000000..6f9cde1
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96964548.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.InventoryStateEventData : System.ValueType
+---`Field Public Instance`
+---@field SlotRange System.Range
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['InventoryStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param slotRange System.Range
+---@return Barotrauma.Character.InventoryStateEventData
+_G['Character']['InventoryStateEventData'] = function(slotRange) end
+
+---`Constructor Public Instance`
+---@param slotRange System.Range
+---@return Barotrauma.Character.InventoryStateEventData
+_G['Character']['InventoryStateEventData'].__new = function(slotRange) end
+
diff --git a/Meta/Types/server/_00007FFD969646C0.lua b/Meta/Types/server/_00007FFD969646C0.lua
new file mode 100644
index 0000000..26ef142
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969646C0.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.ControlEventData : System.ValueType
+---`Field Public Instance`
+---@field Owner Barotrauma.Networking.Client
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['ControlEventData'] = {}
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Networking.Client
+---@return Barotrauma.Character.ControlEventData
+_G['Character']['ControlEventData'] = function(owner) end
+
+---`Constructor Public Instance`
+---@param owner Barotrauma.Networking.Client
+---@return Barotrauma.Character.ControlEventData
+_G['Character']['ControlEventData'].__new = function(owner) end
+
diff --git a/Meta/Types/server/_00007FFD96964820.lua b/Meta/Types/server/_00007FFD96964820.lua
new file mode 100644
index 0000000..c92b26a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96964820.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.CharacterStatusEventData : System.ValueType
+---`Field Public Instance`
+---@field ForceAfflictionData System.Boolean
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['CharacterStatusEventData'] = {}
+
+---`Constructor Public Instance`
+---@param forceAfflictionData System.Boolean
+---@return Barotrauma.Character.CharacterStatusEventData
+_G['Character']['CharacterStatusEventData'] = function(forceAfflictionData) end
+
+---`Constructor Public Instance`
+---@param forceAfflictionData System.Boolean
+---@return Barotrauma.Character.CharacterStatusEventData
+_G['Character']['CharacterStatusEventData'].__new = function(forceAfflictionData) end
+
diff --git a/Meta/Types/server/_00007FFD96964958.lua b/Meta/Types/server/_00007FFD96964958.lua
new file mode 100644
index 0000000..fbb512d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96964958.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.TreatmentEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['TreatmentEventData'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96964C90.lua b/Meta/Types/server/_00007FFD96964C90.lua
new file mode 100644
index 0000000..a54b702
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96964C90.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Character.SetAttackTargetEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+---`Getter Public Instance Virtual`
+---@field AttackLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetEntity Barotrauma.IDamageable
+---`Getter Public Instance Virtual`
+---@field TargetLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetSimPos Microsoft.Xna.Framework.Vector2
+_G['Character']['SetAttackTargetEventData'] = {}
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.SetAttackTargetEventData
+_G['Character']['SetAttackTargetEventData'] = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.SetAttackTargetEventData
+_G['Character']['SetAttackTargetEventData'].__new = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
diff --git a/Meta/Types/server/_00007FFD96964F08.lua b/Meta/Types/server/_00007FFD96964F08.lua
new file mode 100644
index 0000000..1185f0e
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96964F08.lua
@@ -0,0 +1,30 @@
+---@meta
+---@class Barotrauma.Character.ExecuteAttackEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+---`Getter Public Instance Virtual`
+---@field AttackLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetEntity Barotrauma.IDamageable
+---`Getter Public Instance Virtual`
+---@field TargetLimb Barotrauma.Limb
+---`Getter Public Instance Virtual`
+---@field TargetSimPos Microsoft.Xna.Framework.Vector2
+_G['Character']['ExecuteAttackEventData'] = {}
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.ExecuteAttackEventData
+_G['Character']['ExecuteAttackEventData'] = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
+---`Constructor Public Instance`
+---@param attackLimb Barotrauma.Limb
+---@param targetEntity Barotrauma.IDamageable
+---@param targetLimb Barotrauma.Limb
+---@param targetSimPos Microsoft.Xna.Framework.Vector2
+---@return Barotrauma.Character.ExecuteAttackEventData
+_G['Character']['ExecuteAttackEventData'].__new = function(attackLimb, targetEntity, targetLimb, targetSimPos) end
+
diff --git a/Meta/Types/server/_00007FFD96965070.lua b/Meta/Types/server/_00007FFD96965070.lua
new file mode 100644
index 0000000..754be6c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96965070.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.AssignCampaignInteractionEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['AssignCampaignInteractionEventData'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96965320.lua b/Meta/Types/server/_00007FFD96965320.lua
new file mode 100644
index 0000000..854bbc2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96965320.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.ObjectiveManagerStateEventData : System.ValueType
+---`Field Public Instance`
+---@field ObjectiveType Barotrauma.AIObjectiveManager.ObjectiveType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['ObjectiveManagerStateEventData'] = {}
+
+---`Constructor Public Instance`
+---@param objectiveType Barotrauma.AIObjectiveManager.ObjectiveType
+---@return Barotrauma.Character.ObjectiveManagerStateEventData
+_G['Character']['ObjectiveManagerStateEventData'] = function(objectiveType) end
+
+---`Constructor Public Instance`
+---@param objectiveType Barotrauma.AIObjectiveManager.ObjectiveType
+---@return Barotrauma.Character.ObjectiveManagerStateEventData
+_G['Character']['ObjectiveManagerStateEventData'].__new = function(objectiveType) end
+
diff --git a/Meta/Types/server/_00007FFD96966D80.lua b/Meta/Types/server/_00007FFD96966D80.lua
new file mode 100644
index 0000000..5639624
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96966D80.lua
@@ -0,0 +1,20 @@
+---@meta
+---@class Barotrauma.Character.AddToCrewEventData : System.ValueType
+---`Field Public Instance`
+---@field ItemTeamChange Barotrauma.Character.ItemTeamChange
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['AddToCrewEventData'] = {}
+
+---`Constructor Public Instance`
+---@param teamType Barotrauma.CharacterTeamType
+---@param inventoryItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return Barotrauma.Character.AddToCrewEventData
+_G['Character']['AddToCrewEventData'] = function(teamType, inventoryItems) end
+
+---`Constructor Public Instance`
+---@param teamType Barotrauma.CharacterTeamType
+---@param inventoryItems (System.Collections.Generic.IEnumerable*1Barotrauma*Item)|(fun():(Barotrauma.Item))
+---@return Barotrauma.Character.AddToCrewEventData
+_G['Character']['AddToCrewEventData'].__new = function(teamType, inventoryItems) end
+
diff --git a/Meta/Types/server/_00007FFD96967640.lua b/Meta/Types/server/_00007FFD96967640.lua
new file mode 100644
index 0000000..6c1129d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96967640.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.UpdateExperienceEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdateExperienceEventData'] = {}
+
diff --git a/Meta/Types/server/_00007FFD969677A0.lua b/Meta/Types/server/_00007FFD969677A0.lua
new file mode 100644
index 0000000..6376269
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969677A0.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Character.UpdatePermanentStatsEventData : System.ValueType
+---`Field Public Instance`
+---@field StatType Barotrauma.StatTypes
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdatePermanentStatsEventData'] = {}
+
+---`Constructor Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return Barotrauma.Character.UpdatePermanentStatsEventData
+_G['Character']['UpdatePermanentStatsEventData'] = function(statType) end
+
+---`Constructor Public Instance`
+---@param statType Barotrauma.StatTypes
+---@return Barotrauma.Character.UpdatePermanentStatsEventData
+_G['Character']['UpdatePermanentStatsEventData'].__new = function(statType) end
+
diff --git a/Meta/Types/server/_00007FFD96967928.lua b/Meta/Types/server/_00007FFD96967928.lua
new file mode 100644
index 0000000..3eed405
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96967928.lua
@@ -0,0 +1,22 @@
+---@meta
+---@class Barotrauma.Character.UpdateSkillsEventData : System.ValueType
+---`Field Public Instance`
+---@field ForceNotification System.Boolean
+---`Field Public Instance`
+---@field SkillIdentifier Barotrauma.Identifier
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdateSkillsEventData'] = {}
+
+---`Constructor Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param forceNotification System.Boolean
+---@return Barotrauma.Character.UpdateSkillsEventData
+_G['Character']['UpdateSkillsEventData'] = function(skillIdentifier, forceNotification) end
+
+---`Constructor Public Instance`
+---@param skillIdentifier Barotrauma.Identifier
+---@param forceNotification System.Boolean
+---@return Barotrauma.Character.UpdateSkillsEventData
+_G['Character']['UpdateSkillsEventData'].__new = function(skillIdentifier, forceNotification) end
+
diff --git a/Meta/Types/server/_00007FFD96967A60.lua b/Meta/Types/server/_00007FFD96967A60.lua
new file mode 100644
index 0000000..bd0d629
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96967A60.lua
@@ -0,0 +1,6 @@
+---@meta
+---@class Barotrauma.Character.UpdateTalentsEventData : System.ValueType
+---`Getter Public Instance Virtual`
+---@field EventType Barotrauma.Character.EventType
+_G['Character']['UpdateTalentsEventData'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96967D58.lua b/Meta/Types/server/_00007FFD96967D58.lua
new file mode 100644
index 0000000..32ce7ee
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96967D58.lua
@@ -0,0 +1,89 @@
+---@meta
+---@class Barotrauma.Networking.NetConfig : System.Object
+---`Field Public Static`
+---@field MaxPlayers System.Int32
+---`Field Public Static`
+---@field ServerNameMaxLength System.Int32
+---`Field Public Static`
+---@field ServerMessageMaxLength System.Int32
+---`Field Public Static`
+---@field MaxHealthUpdateInterval System.Single
+---`Field Public Static`
+---@field MaxHealthUpdateIntervalDead System.Single
+---`Field Public Static`
+---@field HighPrioCharacterPositionUpdateDistance System.Single
+---`Field Public Static`
+---@field LowPrioCharacterPositionUpdateDistance System.Single
+---`Field Public Static`
+---@field HighPrioCharacterPositionUpdateInterval System.Single
+---`Field Public Static`
+---@field LowPrioCharacterPositionUpdateInterval System.Single
+---`Field Public Static`
+---@field FreezeCharacterIfPositionDataMissingDelay System.Single
+---`Field Public Static`
+---@field DisableCharacterIfPositionDataMissingDelay System.Single
+---`Field Public Static`
+---@field DeleteDisconnectedTime System.Single
+---`Field Public Static`
+---@field ItemConditionUpdateInterval System.Single
+---`Field Public Static`
+---@field LevelObjectUpdateInterval System.Single
+---`Field Public Static`
+---@field HullUpdateInterval System.Single
+---`Field Public Static`
+---@field SparseHullUpdateInterval System.Single
+---`Field Public Static`
+---@field HullUpdateDistance System.Single
+---`Field Public Static`
+---@field MaxEventPacketsPerUpdate System.Int32
+---`Field Public Static`
+---@field RoundStartSyncDuration System.Single
+---`Field Public Static`
+---@field EventRemovalTime System.Single
+---`Field Public Static`
+---@field OldReceivedEventKickTime System.Single
+---`Field Public Static`
+---@field OldEventKickTime System.Single
+---`Field Public Static`
+---@field DefaultPort System.Int32
+---`Field Public Static`
+---@field DefaultQueryPort System.Int32
+---`Field Public Static`
+---@field MaxPhysicsBodyVelocity System.Single
+---`Field Public Static`
+---@field MaxPhysicsBodyAngularVelocity System.Single
+_G['NetConfig'] = {}
+
+---`Method Public Static`
+---@param simPositionError Microsoft.Xna.Framework.Vector2
+---@param smoothingFactor? System.Nullable*1System*Single
+---@return Microsoft.Xna.Framework.Vector2
+_G['NetConfig'].InterpolateSimPositionError = function(simPositionError, smoothingFactor) end
+
+---`Method Public Static`
+---@param rotationError System.Single
+---@return System.Single
+_G['NetConfig'].InterpolateRotationError = function(rotationError) end
+
+---`Method Public Static`
+---@param cursorPositionError Microsoft.Xna.Framework.Vector2
+---@return Microsoft.Xna.Framework.Vector2
+_G['NetConfig'].InterpolateCursorPositionError = function(cursorPositionError) end
+
+---`Method Public Static`
+---@overload fun(value:Microsoft.Xna.Framework.Vector2, min:System.Single, max:System.Single, numberOfBits:System.Int32):(Microsoft.Xna.Framework.Vector2)
+---@param value System.Single
+---@param min System.Single
+---@param max System.Single
+---@param numberOfBits System.Int32
+---@return System.Single
+_G['NetConfig'].Quantize = function(value, min, max, numberOfBits) end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.NetConfig
+_G['NetConfig'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.NetConfig
+_G['NetConfig'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9696A2A0.lua b/Meta/Types/server/_00007FFD9696A2A0.lua
new file mode 100644
index 0000000..1165cdb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696A2A0.lua
@@ -0,0 +1,574 @@
+---@meta
+---@class Barotrauma.Networking.ServerSettings : System.Object
+---`Field Public Instance`
+---@field LastUpdateIdForFlag (System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerSettings*NetFlags*1System*UInt16)|({[Barotrauma.Networking.ServerSettings.NetFlags]:(System.UInt16)})
+---`Field Public Instance`
+---@field ServerDetailsChanged System.Boolean
+---`Field Private Instance`
+---@field netProperties (System.Collections.Generic.Dictionary*1System*UInt32*1Barotrauma*Networking*ServerSettings*NetPropertyData)|({[System.UInt32]:(Barotrauma.Networking.ServerSettings.NetPropertyData)})
+---`Field Private Instance`
+---@field serverName System.String
+---`Field Private Instance`
+---@field serverMessageText System.String
+---`Field Public Instance`
+---@field Port System.Int32
+---`Field Public Instance`
+---@field QueryPort System.Int32
+---`Field Public Instance`
+---@field ListenIPAddress System.Net.IPAddress
+---`Field Public Instance`
+---@field EnableUPnP System.Boolean
+---`Field Public Instance`
+---@field ServerLog Barotrauma.Networking.ServerLog
+---`Field Private Instance`
+---@field selectedLevelDifficulty System.Single
+---`Field Private Instance`
+---@field password System.String
+---`Field Public Instance`
+---@field AutoRestartTimer System.Single
+---`Field Private Instance`
+---@field autoRestart System.Boolean
+---`Field Private Instance`
+---@field maxPlayers System.Int32
+---`Field Private Instance`
+---@field tickRate System.Int32
+---`Field Private Instance`
+---@field allowSpectating System.Boolean
+---`Field Private Instance`
+---@field voiceChatEnabled System.Boolean
+---`Field Private Instance`
+---@field playstyleSelection Barotrauma.Networking.PlayStyle
+---`Field Private Instance`
+---@field respawnMode Barotrauma.Networking.RespawnMode
+---`Field Private Instance`
+---@field traitorProbability System.Single
+---`Field Private Instance`
+---@field traitorDangerLevel System.Int32
+---`Field Private Instance`
+---@field traitorsMinPlayerCount System.Int32
+---`Field Private Instance`
+---@field subSelectionMode Barotrauma.Networking.SelectionMode
+---`Field Private Instance`
+---@field modeSelectionMode Barotrauma.Networking.SelectionMode
+---`Field Private Instance`
+---@field karmaEnabled System.Boolean
+---`Field Private Instance`
+---@field karmaPreset System.String
+---`Field Private Instance`
+---@field allowSubVoting System.Boolean
+---`Field Private Instance`
+---@field allowModeVoting System.Boolean
+---`Field Public Static`
+---@field ClientPermissionsFile System.String
+---`Field Public Static`
+---@field SubmarineSeparatorChar System.Char
+---`Field Public Static`
+---@field PermissionPresetFile System.String
+---`Field Public Static`
+---@field PacketLimitMin System.Int32
+---`Field Public Static`
+---@field PacketLimitWarning System.Int32
+---`Field Public Static`
+---@field PacketLimitDefault System.Int32
+---`Field Public Static`
+---@field PacketLimitMax System.Int32
+---`Field Public Static`
+---@field SettingsFile System.String
+---`Field Public Static`
+---@field MaxExtraCargoItemsOfType System.Int32
+---`Field Public Static`
+---@field MaxExtraCargoItemTypes System.Int32
+---`Field Public Static`
+---@field DefaultTickRate System.Int32
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ServerName System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ServerMessageText System.String
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MonsterEnabled (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Boolean)|({[Barotrauma.Identifier]:(System.Boolean)})
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ExtraCargo (System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32)|({[Barotrauma.ItemPrefab]:(System.Int32)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HiddenSubs (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ClientPermissions (System.Collections.Generic.List*1Barotrauma*Networking*ServerSettings*SavedClientPermission)|(Barotrauma.Networking.ServerSettings.SavedClientPermission[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsPublic System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TickRate System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RequireAuthentication System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RandomizeSeed System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field UseRespawnShuttle System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field RespawnInterval System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxTransportTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinRespawnRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SkillLossPercentageOnDeath System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SkillLossPercentageOnImmediateRespawn System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ReplaceCostPercentage System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowBotTakeoverOnPermadeath System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field IronmanMode System.Boolean
+---`Getter Public Instance`
+---@field IronmanModeActive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoRestartInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StartWhenClientsReady System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvpTeamSelectionMode Barotrauma.PvpTeamSelectionMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvpAutoBalanceThreshold System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field StartWhenClientsReadyRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvPStunResist System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvPSpawnMonsters System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field PvPSpawnWrecks System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field Biome Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SelectedOutpostName Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowSpectating System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field SaveServerLogs System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowModDownloads System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowFileTransfers System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field VoiceChatEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field PlayStyle Barotrauma.Networking.PlayStyle
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LosMode Barotrauma.LosMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ShowEnemyHealthBars Barotrauma.EnemyHealthBarMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LinesPerLogFile System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AutoRestart System.Boolean
+---`Getter Public Instance`
+---@field HasPassword System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowVoteKick System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowEndVoting System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field RespawnMode Barotrauma.Networking.RespawnMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BotCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxBotCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BotSpawnMode Barotrauma.Networking.BotSpawnMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisableBotConversations System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedLevelDifficulty System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDisguises System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowRewiring System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowImmediateItemDelivery System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LockAllDefaultWires System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowLinkingWifiToChat System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowFriendlyFire System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowDragAndDropGive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DestructibleOutposts System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KillableNPCs System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BanAfterWrongPassword System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxPasswordRetriesBeforeBan System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EnableDoSProtection System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxPacketAmount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedSubmarine System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedShuttle System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TraitorProbability System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TraitorDangerLevel System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TraitorsMinPlayerCount System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MinPercentageOfPlayersForTraitorAccusation System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SubSelectionMode Barotrauma.Networking.SelectionMode
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ModeSelectionMode Barotrauma.Networking.SelectionMode
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field BanList Barotrauma.Networking.BanList
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndVoteRequiredRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoteRequiredRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoteTimeout System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KickVoteRequiredRatio System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DisallowKickVoteTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KillDisconnectedTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field DespawnDisconnectedPermadeathTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KickAFKTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MinimumMidRoundSyncTimeout System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaEnabled System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaPreset System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field GameModeIdentifier Barotrauma.Identifier
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MissionTypes System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxPlayers System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowedRandomMissionTypes (System.Collections.Generic.List*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AutoBanTime System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field MaxAutoBanTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LootedMoneyDestination Barotrauma.Networking.LootedMoneyDestination
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaximumMoneyTransferRequest System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NewCampaignDefaultSalary System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TrackOpponentInPvP System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DisembarkPointAllowance System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedCoalitionPerks (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WinScorePvP System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SelectedSeparatistsPerks (Barotrauma.Identifier-arr)|(Barotrauma.Identifier[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CampaignSettings Barotrauma.CampaignSettings
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowSubVoting System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowModeVoting System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AllowedClientNameChars (System.Collections.Generic.List*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])
+_G['ServerSettings'] = {}
+
+---`Method Public Instance`
+---@param password System.String
+_G['ServerSettings'].SetPassword = function(password) end
+
+---`Method Public Static`
+---@param password (System.Byte-arr)|(System.Byte[])
+---@param salt System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ServerSettings'].SaltPassword = function(password, salt) end
+
+---`Method Public Instance`
+---@param input (System.Byte-arr)|(System.Byte[])
+---@param salt System.Int32
+---@return System.Boolean
+_G['ServerSettings'].IsPasswordCorrect = function(input, salt) end
+
+---`Method Private Instance`
+_G['ServerSettings'].InitMonstersEnabled = function() end
+
+---`Method Private Static`
+---@param monsterEnabled (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Boolean)|({[Barotrauma.Identifier]:(System.Boolean)})
+---@return (System.Collections.Generic.IReadOnlyList*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+_G['ServerSettings'].ExtractAndSortKeys = function(monsterEnabled) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@return System.Boolean
+_G['ServerSettings'].ReadMonsterEnabled = function(inc) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param monsterEnabled? (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Boolean)|({[Barotrauma.Identifier]:(System.Boolean)})
+_G['ServerSettings'].WriteMonsterEnabled = function(msg, monsterEnabled) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+---@return System.Boolean
+_G['ServerSettings'].ReadExtraCargo = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ServerSettings'].WriteExtraCargo = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ServerSettings'].WritePerks = function(msg) end
+
+---`Method Public Instance`
+---@overload fun(msg:Barotrauma.Networking.IReadMessage):(System.Boolean)
+---@param incMsg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['ServerSettings'].ReadPerks = function(incMsg, c) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IReadMessage
+_G['ServerSettings'].ReadHiddenSubs = function(msg) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['ServerSettings'].WriteHiddenSubs = function(msg) end
+
+---`Method Public Instance`
+---@param setter (System.Action*1Barotrauma*Identifier*1System*Object)|(fun(arg1:Barotrauma.Identifier, arg2:System.Object))
+_G['ServerSettings'].UpdateServerListInfo = function(setter) end
+
+---`Method Private Instance`
+---@overload fun()
+---@param availableMissionClasses (System.Collections.Generic.IEnumerable*1System*Type)|(fun():(System.Type))
+_G['ServerSettings'].ValidateMissionTypes = function(availableMissionClasses) end
+
+---`Method Public Instance`
+---@param flag Barotrauma.Networking.ServerSettings.NetFlags
+_G['ServerSettings'].UpdateFlag = function(flag) end
+
+---`Method Public Instance`
+---@return Barotrauma.Networking.ServerSettings.NetFlags
+_G['ServerSettings'].UnsentFlags = function() end
+
+---`Method Private Instance`
+---@param c Barotrauma.Networking.Client
+---@param flag Barotrauma.Networking.ServerSettings.NetFlags
+---@return System.Boolean
+_G['ServerSettings'].IsFlagRequired = function(c, flag) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Networking.Client
+---@return Barotrauma.Networking.ServerSettings.NetFlags
+_G['ServerSettings'].GetRequiredFlags = function(c) end
+
+---`Method Public Instance`
+_G['ServerSettings'].ForcePropertyUpdate = function() end
+
+---`Method Private Instance`
+---@param outMsg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['ServerSettings'].WriteNetProperties = function(outMsg, c) end
+
+---`Method Public Instance`
+---@param outMsg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['ServerSettings'].ServerAdminWrite = function(outMsg, c) end
+
+---`Method Public Instance`
+---@param outMsg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['ServerSettings'].ServerWrite = function(outMsg, c) end
+
+---`Method Public Instance`
+---@param incMsg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['ServerSettings'].ServerRead = function(incMsg, c) end
+
+---`Method Public Instance`
+_G['ServerSettings'].SaveSettings = function() end
+
+---`Method Private Instance`
+_G['ServerSettings'].LoadSettings = function() end
+
+---`Method Public Instance`
+---@param current? System.String
+---@return System.String
+_G['ServerSettings'].SelectNonHiddenSubmarine = function(current) end
+
+---`Method Public Instance`
+_G['ServerSettings'].LoadClientPermissions = function() end
+
+---`Method Public Instance`
+_G['ServerSettings'].SaveClientPermissions = function() end
+
+---`Method Private Instance`
+_G['ServerSettings'].InitProjSpecific = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'] = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'].__new = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'] = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ServerSettings
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param serverName System.String
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param maxPlayers System.Int32
+---@param isPublic System.Boolean
+---@param enableUPnP System.Boolean
+---@param listenIp System.Net.IPAddress
+---@return Barotrauma.Networking.ServerSettings
+_G['ServerSettings'].__new = function(networkMember, serverName, port, queryPort, maxPlayers, isPublic, enableUPnP, listenIp) end
+
diff --git a/Meta/Types/server/_00007FFD9696A8D0.lua b/Meta/Types/server/_00007FFD9696A8D0.lua
new file mode 100644
index 0000000..a6c106a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696A8D0.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.ChatMode : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.ChatMode
+---`Field Public Static`
+---@field Local Barotrauma.ChatMode
+---`Field Public Static`
+---@field Radio Barotrauma.ChatMode
+_G['ChatMode'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696AA28.lua b/Meta/Types/server/_00007FFD9696AA28.lua
new file mode 100644
index 0000000..2c855c2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696AA28.lua
@@ -0,0 +1,150 @@
+---@meta
+---@class Barotrauma.Networking.ChatMessage : System.Object
+---`Field Public Instance`
+---@field Text System.String
+---`Field Private Instance`
+---@field translatedText System.String
+---`Field Public Instance`
+---@field Type Barotrauma.Networking.ChatMessageType
+---`Field Public Instance`
+---@field ChangeType Barotrauma.Networking.PlayerConnectionChangeType
+---`Field Public Instance`
+---@field IconStyle System.String
+---`Field Public Instance`
+---@field Sender Barotrauma.Entity
+---`Field Public Instance`
+---@field SenderClient Barotrauma.Networking.Client
+---`Field Public Instance`
+---@field SenderName System.String
+---`Field Private Instance`
+---@field customTextColor System.Nullable*1Microsoft*Xna*Framework*Color
+---`Field Private Static`
+---@field dateTimeFormatLongTimePattern System.String
+---`Field Public Static`
+---@field MessageColor (Microsoft.Xna.Framework.Color-arr)|(Microsoft.Xna.Framework.Color[])
+---`Field Public Static`
+---@field LastID System.UInt16
+---`Field Public Static`
+---@field MaxLength System.Int32
+---`Field Public Static`
+---@field MaxMessagesPerPacket System.Int32
+---`Field Public Static`
+---@field SpeakRange System.Single
+---`Field Public Static`
+---@field SpeakRangeVOIP System.Single
+---`Getter Public Instance`
+---@field TranslatedText System.String
+---`Getter Public Instance`
+---@field SenderCharacter Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Color Microsoft.Xna.Framework.Color
+---`Getter Public Instance`
+---@field TextWithSender System.String
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field NetStateID System.UInt16
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ChatMode Barotrauma.ChatMode
+_G['ChatMessage'] = {}
+
+---`Method Public Static`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['ChatMessage'].ServerRead = function(msg, c) end
+
+---`Method Public Static`
+---@param c Barotrauma.Networking.Client
+---@param messageText System.String
+---@param flaggedAsSpam System.Boolean-ref
+---@param similarityMultiplier? System.Single
+_G['ChatMessage'].HandleSpamFilter = function(c, messageText, flaggedAsSpam, similarityMultiplier) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Networking.Client
+---@return System.Int32
+_G['ChatMessage'].EstimateLengthBytesServer = function(c) end
+
+---`Method Public Instance Virtual`
+---@param segmentTable Barotrauma.Networking.SegmentTableWriter
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['ChatMessage'].ServerWrite = function(segmentTable, msg, c) end
+
+---`Method Public Static`
+---@return System.String
+_G['ChatMessage'].GetTimeStamp = function() end
+
+---`Method Public Static`
+---@param senderName System.String
+---@param text System.String
+---@param type Barotrauma.Networking.ChatMessageType
+---@param sender Barotrauma.Entity
+---@param client? Barotrauma.Networking.Client
+---@param changeType? Barotrauma.Networking.PlayerConnectionChangeType
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'].Create = function(senderName, text, type, sender, client, changeType, textColor) end
+
+---`Method Public Static`
+---@param message System.String
+---@param messageWithoutCommand System.String-ref
+---@return System.String
+_G['ChatMessage'].GetChatMessageCommand = function(message, messageWithoutCommand) end
+
+---`Method Public Static`
+---@param listener Barotrauma.Entity
+---@param sender Barotrauma.Entity
+---@param range System.Single
+---@param obstructionMultiplier? System.Single
+---@return System.Single
+_G['ChatMessage'].GetGarbleAmount = function(listener, sender, range, obstructionMultiplier) end
+
+---`Method Public Instance`
+---@param listener Barotrauma.Character
+---@return System.String
+_G['ChatMessage'].ApplyDistanceEffect = function(listener) end
+
+---`Method Public Static`
+---@overload fun(listener:Barotrauma.Entity, sender:Barotrauma.Entity, text:System.String, range:System.Single, obstructionMultiplier?:System.Single):(System.String)
+---@overload fun(text:System.String, garbleAmount:System.Single):(System.String)
+---@param message System.String
+---@param type Barotrauma.Networking.ChatMessageType
+---@param sender Barotrauma.Character
+---@param receiver Barotrauma.Character
+---@return System.String
+_G['ChatMessage'].ApplyDistanceEffect = function(message, type, sender, receiver) end
+
+---`Method Public Instance`
+---@return System.Int32
+_G['ChatMessage'].EstimateLengthBytesClient = function() end
+
+---`Method Public Static`
+---@overload fun(sender:Barotrauma.Character, ignoreJamming?:System.Boolean):(System.Boolean)
+---@param sender Barotrauma.Character
+---@param radio Barotrauma.Items.Components.WifiComponent-ref
+---@param ignoreJamming? System.Boolean
+---@return System.Boolean
+_G['ChatMessage'].CanUseRadio = function(sender, radio, ignoreJamming) end
+
+---`Constructor NonPublic Instance`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(senderName:System.String, text:System.String, type:Barotrauma.Networking.ChatMessageType, sender:Barotrauma.Entity, client:Barotrauma.Networking.Client, changeType?:Barotrauma.Networking.PlayerConnectionChangeType, textColor?:System.Nullable*1Microsoft*Xna*Framework*Color):Barotrauma.Networking.ChatMessage
+---@return Barotrauma.Networking.ChatMessage
+_G['ChatMessage'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9696AB30.lua b/Meta/Types/server/_00007FFD9696AB30.lua
new file mode 100644
index 0000000..1868976
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696AB30.lua
@@ -0,0 +1,18 @@
+---@meta
+---@class Barotrauma.Networking.PacketHeader : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsCompressed Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsConnectionInitializationStep Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsDisconnectMessage Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsServerMessage Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsHeartbeatMessage Barotrauma.Networking.PacketHeader
+---`Field Public Static`
+---@field IsDataFragment Barotrauma.Networking.PacketHeader
+_G['PacketHeader'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696ACD8.lua b/Meta/Types/server/_00007FFD9696ACD8.lua
new file mode 100644
index 0000000..d01c7f2
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696ACD8.lua
@@ -0,0 +1,64 @@
+---@meta
+---@class Barotrauma.Networking.ServerPacketHeader : System.Enum
+---`Field Public Static`
+---@field AUTH_RESPONSE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field AUTH_FAILURE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field UPDATE_LOBBY Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field UPDATE_INGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field PERMISSIONS Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field ACHIEVEMENT Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field ACHIEVEMENT_STAT Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CHEATS_ENABLED Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CAMPAIGN_SETUP_INFO Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field FILE_TRANSFER Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field VOICE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field VOICE_AMPLITUDE_DEBUG Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field PING_REQUEST Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CLIENT_PINGS Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field QUERY_STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field WARN_STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CANCEL_STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field STARTGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field STARTGAMEFINALIZE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field ENDGAME Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field MISSION Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field EVENTACTION Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field TRAITOR_MESSAGE Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CREW Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field MEDICAL Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field CIRCUITBOX Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field MONEY Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field READY_CHECK Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field SEND_BACKUP_INDICES Barotrauma.Networking.ServerPacketHeader
+---`Field Public Static`
+---@field LUA_NET_MESSAGE Barotrauma.Networking.ServerPacketHeader
+_G['ServerPacketHeader'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696AE80.lua b/Meta/Types/server/_00007FFD9696AE80.lua
new file mode 100644
index 0000000..86d8294
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696AE80.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.Networking.ClientPacketHeader : System.Enum
+---`Field Public Static`
+---@field UPDATE_LOBBY Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field UPDATE_INGAME Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field SERVER_SETTINGS Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field SERVER_SETTINGS_PERKS Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field CAMPAIGN_SETUP_INFO Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field FILE_REQUEST Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field VOICE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field PING_RESPONSE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field RESPONSE_CANCEL_STARTGAME Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field RESPONSE_STARTGAME Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field SERVER_COMMAND Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field EVENTMANAGER_RESPONSE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field REQUEST_STARTGAMEFINALIZE Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field UPDATE_CHARACTERINFO Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field ERROR Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field CREW Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field MEDICAL Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field TRANSFER_MONEY Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field REWARD_DISTRIBUTION Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field RESET_REWARD_DISTRIBUTION Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field CIRCUITBOX Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field READY_CHECK Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field READY_TO_SPAWN Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field TAKEOVERBOT Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field REQUEST_BACKUP_INDICES Barotrauma.Networking.ClientPacketHeader
+---`Field Public Static`
+---@field LUA_NET_MESSAGE Barotrauma.Networking.ClientPacketHeader
+_G['ClientPacketHeader'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696B028.lua b/Meta/Types/server/_00007FFD9696B028.lua
new file mode 100644
index 0000000..244574d
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696B028.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.Networking.DeliveryMethod : System.Enum
+---`Field Public Static`
+---@field Unreliable Barotrauma.Networking.DeliveryMethod
+---`Field Public Static`
+---@field Reliable Barotrauma.Networking.DeliveryMethod
+_G['DeliveryMethod'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696B1D0.lua b/Meta/Types/server/_00007FFD9696B1D0.lua
new file mode 100644
index 0000000..9727762
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696B1D0.lua
@@ -0,0 +1,14 @@
+---@meta
+---@class Barotrauma.Networking.ConnectionInitialization : System.Enum
+---`Field Public Static`
+---@field AuthInfoAndVersion Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field ContentPackageOrder Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field Password Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field Success Barotrauma.Networking.ConnectionInitialization
+---`Field Public Static`
+---@field ConnectionStarted Barotrauma.Networking.ConnectionInitialization
+_G['ConnectionInitialization'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696B538.lua b/Meta/Types/server/_00007FFD9696B538.lua
new file mode 100644
index 0000000..a921bc6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696B538.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.Networking.IWriteMessage
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field LengthBytes System.Int32
+_G['IWriteMessage'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Boolean
+_G['IWriteMessage'].WriteBoolean = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+_G['IWriteMessage'].WritePadBits = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Byte
+_G['IWriteMessage'].WriteByte = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int16
+_G['IWriteMessage'].WriteInt16 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt16
+_G['IWriteMessage'].WriteUInt16 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int32
+_G['IWriteMessage'].WriteInt32 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt32
+_G['IWriteMessage'].WriteUInt32 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int64
+_G['IWriteMessage'].WriteInt64 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt64
+_G['IWriteMessage'].WriteUInt64 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Single
+_G['IWriteMessage'].WriteSingle = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Double
+_G['IWriteMessage'].WriteDouble = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['IWriteMessage'].WriteColorR8G8B8 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['IWriteMessage'].WriteColorR8G8B8A8 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.UInt32
+_G['IWriteMessage'].WriteVariableUInt32 = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.String
+_G['IWriteMessage'].WriteString = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val Barotrauma.Identifier
+_G['IWriteMessage'].WriteIdentifier = function(val) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Int32
+---@param min System.Int32
+---@param max System.Int32
+_G['IWriteMessage'].WriteRangedInteger = function(val, min, max) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val System.Single
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+_G['IWriteMessage'].WriteRangedSingle = function(val, min, max, bitCount) end
+
+---`Method Public Instance Abstract Virtual`
+---@param val (System.Byte-arr)|(System.Byte[])
+---@param startIndex System.Int32
+---@param length System.Int32
+_G['IWriteMessage'].WriteBytes = function(val, startIndex, length) end
+
+---`Method Public Instance Abstract Virtual`
+---@param compressPastThreshold System.Boolean
+---@param isCompressed System.Boolean-ref
+---@param outLength System.Int32-ref
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IWriteMessage'].PrepareForSending = function(compressPastThreshold, isCompressed, outLength) end
+
diff --git a/Meta/Types/server/_00007FFD9696B920.lua b/Meta/Types/server/_00007FFD9696B920.lua
new file mode 100644
index 0000000..73f1e8f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696B920.lua
@@ -0,0 +1,119 @@
+---@meta
+---@class Barotrauma.Networking.WriteOnlyMessage : System.Object
+---`Field Private Instance`
+---@field buf (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field seekPos System.Int32
+---`Field Private Instance`
+---@field lengthBits System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Virtual`
+---@field LengthBytes System.Int32
+_G['WriteOnlyMessage'] = {}
+
+---`Method Public Instance Virtual`
+---@param val System.Boolean
+_G['WriteOnlyMessage'].WriteBoolean = function(val) end
+
+---`Method Public Instance Virtual`
+_G['WriteOnlyMessage'].WritePadBits = function() end
+
+---`Method Public Instance Virtual`
+---@param val System.Byte
+_G['WriteOnlyMessage'].WriteByte = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt16
+_G['WriteOnlyMessage'].WriteUInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int16
+_G['WriteOnlyMessage'].WriteInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['WriteOnlyMessage'].WriteUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+_G['WriteOnlyMessage'].WriteInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt64
+_G['WriteOnlyMessage'].WriteUInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int64
+_G['WriteOnlyMessage'].WriteInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+_G['WriteOnlyMessage'].WriteSingle = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Double
+_G['WriteOnlyMessage'].WriteDouble = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['WriteOnlyMessage'].WriteColorR8G8B8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['WriteOnlyMessage'].WriteColorR8G8B8A8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['WriteOnlyMessage'].WriteVariableUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.String
+_G['WriteOnlyMessage'].WriteString = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Barotrauma.Identifier
+_G['WriteOnlyMessage'].WriteIdentifier = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+---@param min System.Int32
+---@param max System.Int32
+_G['WriteOnlyMessage'].WriteRangedInteger = function(val, min, max) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+_G['WriteOnlyMessage'].WriteRangedSingle = function(val, min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param val (System.Byte-arr)|(System.Byte[])
+---@param startPos System.Int32
+---@param length System.Int32
+_G['WriteOnlyMessage'].WriteBytes = function(val, startPos, length) end
+
+---`Method Public Instance Virtual`
+---@param compressPastThreshold System.Boolean
+---@param isCompressed System.Boolean-ref
+---@param length System.Int32-ref
+---@return (System.Byte-arr)|(System.Byte[])
+_G['WriteOnlyMessage'].PrepareForSending = function(compressPastThreshold, isCompressed, length) end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.WriteOnlyMessage
+_G['WriteOnlyMessage'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.WriteOnlyMessage
+_G['WriteOnlyMessage'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9696BCF8.lua b/Meta/Types/server/_00007FFD9696BCF8.lua
new file mode 100644
index 0000000..172c36b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696BCF8.lua
@@ -0,0 +1,103 @@
+---@meta
+---@class Barotrauma.Networking.IReadMessage
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Abstract Virtual`
+---
`Setter Public Instance Abstract Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field LengthBytes System.Int32
+---`Getter Public Instance Abstract Virtual`
+---@field Sender Barotrauma.Networking.NetworkConnection
+_G['IReadMessage'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Boolean
+_G['IReadMessage'].ReadBoolean = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['IReadMessage'].ReadPadBits = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Byte
+_G['IReadMessage'].ReadByte = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Byte
+_G['IReadMessage'].PeekByte = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt16
+_G['IReadMessage'].ReadUInt16 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int16
+_G['IReadMessage'].ReadInt16 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt32
+_G['IReadMessage'].ReadUInt32 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int32
+_G['IReadMessage'].ReadInt32 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt64
+_G['IReadMessage'].ReadUInt64 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Int64
+_G['IReadMessage'].ReadInt64 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Single
+_G['IReadMessage'].ReadSingle = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.Double
+_G['IReadMessage'].ReadDouble = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.UInt32
+_G['IReadMessage'].ReadVariableUInt32 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return System.String
+_G['IReadMessage'].ReadString = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Barotrauma.Identifier
+_G['IReadMessage'].ReadIdentifier = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['IReadMessage'].ReadColorR8G8B8 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['IReadMessage'].ReadColorR8G8B8A8 = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['IReadMessage'].ReadRangedInteger = function(min, max) end
+
+---`Method Public Instance Abstract Virtual`
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+---@return System.Single
+_G['IReadMessage'].ReadRangedSingle = function(min, max, bitCount) end
+
+---`Method Public Instance Abstract Virtual`
+---@param numberOfBytes System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['IReadMessage'].ReadBytes = function(numberOfBytes) end
+
diff --git a/Meta/Types/server/_00007FFD9696C110.lua b/Meta/Types/server/_00007FFD9696C110.lua
new file mode 100644
index 0000000..97984ad
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696C110.lua
@@ -0,0 +1,125 @@
+---@meta
+---@class Barotrauma.Networking.ReadOnlyMessage : System.Object
+---`Field Private Instance`
+---@field seekPos System.Int32
+---`Field Private Instance`
+---@field lengthBits System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Virtual`
+---@field LengthBytes System.Int32
+---`Getter Public Instance Virtual`
+---@field Sender Barotrauma.Networking.NetworkConnection
+_G['ReadOnlyMessage'] = {}
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['ReadOnlyMessage'].ReadBoolean = function() end
+
+---`Method Public Instance Virtual`
+_G['ReadOnlyMessage'].ReadPadBits = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadOnlyMessage'].ReadByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadOnlyMessage'].PeekByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt16
+_G['ReadOnlyMessage'].ReadUInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int16
+_G['ReadOnlyMessage'].ReadInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadOnlyMessage'].ReadUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ReadOnlyMessage'].ReadInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt64
+_G['ReadOnlyMessage'].ReadUInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int64
+_G['ReadOnlyMessage'].ReadInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['ReadOnlyMessage'].ReadSingle = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Double
+_G['ReadOnlyMessage'].ReadDouble = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadOnlyMessage'].ReadVariableUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ReadOnlyMessage'].ReadString = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Identifier
+_G['ReadOnlyMessage'].ReadIdentifier = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadOnlyMessage'].ReadColorR8G8B8 = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadOnlyMessage'].ReadColorR8G8B8A8 = function() end
+
+---`Method Public Instance Virtual`
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['ReadOnlyMessage'].ReadRangedInteger = function(min, max) end
+
+---`Method Public Instance Virtual`
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+---@return System.Single
+_G['ReadOnlyMessage'].ReadRangedSingle = function(min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param numberOfBytes System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ReadOnlyMessage'].ReadBytes = function(numberOfBytes) end
+
+---`Constructor Public Instance`
+---@param inBuf (System.Byte-arr)|(System.Byte[])
+---@param isCompressed System.Boolean
+---@param startPos System.Int32
+---@param byteLength System.Int32
+---@param sender Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.ReadOnlyMessage
+_G['ReadOnlyMessage'] = function(inBuf, isCompressed, startPos, byteLength, sender) end
+
+---`Constructor Public Instance`
+---@param inBuf (System.Byte-arr)|(System.Byte[])
+---@param isCompressed System.Boolean
+---@param startPos System.Int32
+---@param byteLength System.Int32
+---@param sender Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.ReadOnlyMessage
+_G['ReadOnlyMessage'].__new = function(inBuf, isCompressed, startPos, byteLength, sender) end
+
diff --git a/Meta/Types/server/_00007FFD9696C698.lua b/Meta/Types/server/_00007FFD9696C698.lua
new file mode 100644
index 0000000..6030a28
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696C698.lua
@@ -0,0 +1,216 @@
+---@meta
+---@class Barotrauma.Networking.ReadWriteMessage : System.Object
+---`Field Private Instance`
+---@field buf (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field seekPos System.Int32
+---`Field Private Instance`
+---@field lengthBits System.Int32
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field BitPosition System.Int32
+---`Getter Public Instance Virtual`
+---@field BytePosition System.Int32
+---`Getter Public Instance Virtual`
+---@field Buffer (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter Public Instance Virtual`
+---@field LengthBits System.Int32
+---`Getter Public Instance Virtual`
+---@field LengthBytes System.Int32
+---`Getter Public Instance Virtual`
+---@field Sender Barotrauma.Networking.NetworkConnection
+_G['ReadWriteMessage'] = {}
+
+---`Method Public Instance Virtual`
+---@param val System.Boolean
+_G['ReadWriteMessage'].WriteBoolean = function(val) end
+
+---`Method Public Instance Virtual`
+_G['ReadWriteMessage'].WritePadBits = function() end
+
+---`Method Public Instance Virtual`
+---@param val System.Byte
+_G['ReadWriteMessage'].WriteByte = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt16
+_G['ReadWriteMessage'].WriteUInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int16
+_G['ReadWriteMessage'].WriteInt16 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['ReadWriteMessage'].WriteUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+_G['ReadWriteMessage'].WriteInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt64
+_G['ReadWriteMessage'].WriteUInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int64
+_G['ReadWriteMessage'].WriteInt64 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+_G['ReadWriteMessage'].WriteSingle = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Double
+_G['ReadWriteMessage'].WriteDouble = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].WriteColorR8G8B8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].WriteColorR8G8B8A8 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.UInt32
+_G['ReadWriteMessage'].WriteVariableUInt32 = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.String
+_G['ReadWriteMessage'].WriteString = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val Barotrauma.Identifier
+_G['ReadWriteMessage'].WriteIdentifier = function(val) end
+
+---`Method Public Instance Virtual`
+---@param val System.Int32
+---@param min System.Int32
+---@param max System.Int32
+_G['ReadWriteMessage'].WriteRangedInteger = function(val, min, max) end
+
+---`Method Public Instance Virtual`
+---@param val System.Single
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+_G['ReadWriteMessage'].WriteRangedSingle = function(val, min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param val (System.Byte-arr)|(System.Byte[])
+---@param startPos System.Int32
+---@param length System.Int32
+_G['ReadWriteMessage'].WriteBytes = function(val, startPos, length) end
+
+---`Method Public Instance Virtual`
+---@return System.Boolean
+_G['ReadWriteMessage'].ReadBoolean = function() end
+
+---`Method Public Instance Virtual`
+_G['ReadWriteMessage'].ReadPadBits = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadWriteMessage'].ReadByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Byte
+_G['ReadWriteMessage'].PeekByte = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt16
+_G['ReadWriteMessage'].ReadUInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int16
+_G['ReadWriteMessage'].ReadInt16 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadWriteMessage'].ReadUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['ReadWriteMessage'].ReadInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt64
+_G['ReadWriteMessage'].ReadUInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Int64
+_G['ReadWriteMessage'].ReadInt64 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Single
+_G['ReadWriteMessage'].ReadSingle = function() end
+
+---`Method Public Instance Virtual`
+---@return System.Double
+_G['ReadWriteMessage'].ReadDouble = function() end
+
+---`Method Public Instance Virtual`
+---@return System.UInt32
+_G['ReadWriteMessage'].ReadVariableUInt32 = function() end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['ReadWriteMessage'].ReadString = function() end
+
+---`Method Public Instance Virtual`
+---@return Barotrauma.Identifier
+_G['ReadWriteMessage'].ReadIdentifier = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].ReadColorR8G8B8 = function() end
+
+---`Method Public Instance Virtual`
+---@return Microsoft.Xna.Framework.Color
+_G['ReadWriteMessage'].ReadColorR8G8B8A8 = function() end
+
+---`Method Public Instance Virtual`
+---@param min System.Int32
+---@param max System.Int32
+---@return System.Int32
+_G['ReadWriteMessage'].ReadRangedInteger = function(min, max) end
+
+---`Method Public Instance Virtual`
+---@param min System.Single
+---@param max System.Single
+---@param bitCount System.Int32
+---@return System.Single
+_G['ReadWriteMessage'].ReadRangedSingle = function(min, max, bitCount) end
+
+---`Method Public Instance Virtual`
+---@param numberOfBytes System.Int32
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ReadWriteMessage'].ReadBytes = function(numberOfBytes) end
+
+---`Method Public Instance Virtual`
+---@param compressPastThreshold System.Boolean
+---@param isCompressed System.Boolean-ref
+---@param outLength System.Int32-ref
+---@return (System.Byte-arr)|(System.Byte[])
+_G['ReadWriteMessage'].PrepareForSending = function(compressPastThreshold, isCompressed, outLength) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ReadWriteMessage
+---@param b (System.Byte-arr)|(System.Byte[])
+---@param bitPos System.Int32
+---@param lBits System.Int32
+---@param copyBuf System.Boolean
+---@return Barotrauma.Networking.ReadWriteMessage
+_G['ReadWriteMessage'] = function(b, bitPos, lBits, copyBuf) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.ReadWriteMessage
+---@param b (System.Byte-arr)|(System.Byte[])
+---@param bitPos System.Int32
+---@param lBits System.Int32
+---@param copyBuf System.Boolean
+---@return Barotrauma.Networking.ReadWriteMessage
+_G['ReadWriteMessage'].__new = function(b, bitPos, lBits, copyBuf) end
+
diff --git a/Meta/Types/server/_00007FFD9696C968.lua b/Meta/Types/server/_00007FFD9696C968.lua
new file mode 100644
index 0000000..1daa61a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696C968.lua
@@ -0,0 +1,46 @@
+---@meta
+---@class Barotrauma.Networking.ClientPermissions : System.Enum
+---`Field Public Static`
+---@field None Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageRound Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field Kick Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field Ban Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field Unban Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SelectSub Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SelectMode Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageCampaign Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ConsoleCommands Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ServerLog Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageSettings Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManagePermissions Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field KarmaImmunity Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageMoney Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SellInventoryItems Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SellSubItems Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageMap Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageHires Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field ManageBotTalents Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field SpamImmunity Barotrauma.Networking.ClientPermissions
+---`Field Public Static`
+---@field All Barotrauma.Networking.ClientPermissions
+_G['ClientPermissions'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696D9B0.lua b/Meta/Types/server/_00007FFD9696D9B0.lua
new file mode 100644
index 0000000..e43ce6f
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696D9B0.lua
@@ -0,0 +1,327 @@
+---@meta
+---@class Barotrauma.Networking.Client : System.Object
+---`Field Public Instance`
+---@field VoiceEnabled System.Boolean
+---`Field Public Instance`
+---@field VoipServerDecoder Barotrauma.VoipServerDecoder
+---`Field Public Instance`
+---@field LastRecvClientListUpdate System.UInt16
+---`Field Public Instance`
+---@field LastSentServerSettingsUpdate System.UInt16
+---`Field Public Instance`
+---@field LastRecvServerSettingsUpdate System.UInt16
+---`Field Public Instance`
+---@field LastRecvLobbyUpdate System.UInt16
+---`Field Public Instance`
+---@field LastSentChatMsgID System.UInt16
+---`Field Public Instance`
+---@field LastRecvChatMsgID System.UInt16
+---`Field Public Instance`
+---@field LastSentEntityEventID System.UInt16
+---`Field Public Instance`
+---@field LastRecvEntityEventID System.UInt16
+---`Field Public Instance`
+---@field LastRecvCampaignUpdate (System.Collections.Generic.Dictionary*1Barotrauma*MultiPlayerCampaign*NetFlags*1System*UInt16)|({[Barotrauma.MultiPlayerCampaign.NetFlags]:(System.UInt16)})
+---`Field Public Instance`
+---@field LastRecvCampaignSave System.UInt16
+---`Field Public Instance`
+---@field LastCampaignSaveSendTime System.ValueTuple*1System*UInt16*1System*Single
+---`Field Public Instance`
+---@field ChatMsgQueue (System.Collections.Generic.List*1Barotrauma*Networking*ChatMessage)|(Barotrauma.Networking.ChatMessage[])
+---`Field Public Instance`
+---@field LastChatMsgQueueID System.UInt16
+---`Field Public Instance`
+---@field LastSentChatMessages (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Public Instance`
+---@field ChatSpamSpeed System.Single
+---`Field Public Instance`
+---@field ChatSpamTimer System.Single
+---`Field Public Instance`
+---@field ChatSpamCount System.Int32
+---`Field Public Instance`
+---@field RejectedName System.String
+---`Field Public Instance`
+---@field KickAFKTimer System.Single
+---`Field Public Instance`
+---@field MidRoundSyncTimeOut System.Double
+---`Field Public Instance`
+---@field NeedsMidRoundSync System.Boolean
+---`Field Public Instance`
+---@field UnreceivedEntityEventCount System.UInt16
+---`Field Public Instance`
+---@field FirstNewEventID System.UInt16
+---`Field Public Instance`
+---@field EntityEventLastSent (System.Collections.Generic.Dictionary*1System*UInt16*1System*Double)|({[System.UInt16]:(System.Double)})
+---`Field Public Instance`
+---@field PositionUpdateLastSent (System.Collections.Generic.Dictionary*1Barotrauma*Entity*1System*Single)|({[Barotrauma.Entity]:(System.Single)})
+---`Field Public Instance`
+---@field PendingPositionUpdates (System.Collections.Generic.Queue*1Barotrauma*Entity)|(fun():(Barotrauma.Entity))
+---`Field Public Instance`
+---@field ReadyToStart System.Boolean
+---`Field Public Instance`
+---@field AssignedJob Barotrauma.JobVariant
+---`Field Public Instance`
+---@field DeleteDisconnectedTimer System.Single
+---`Field Public Instance`
+---@field JoinTime System.DateTime
+---`Field Public Instance`
+---@field LastNameChangeTime System.DateTime
+---`Field Private Instance`
+---@field characterInfo Barotrauma.CharacterInfo
+---`Field Public Instance`
+---@field PendingName System.String
+---`Field Public Instance`
+---@field SpectateOnly System.Boolean
+---`Field Public Instance`
+---@field WaitForNextRoundRespawn System.Nullable*1System*Boolean
+---`Field Public Instance`
+---@field KarmaKickCount System.Int32
+---`Field Private Instance`
+---@field syncedKarma System.Single
+---`Field Private Instance`
+---@field karma System.Single
+---`Field Private Instance`
+---@field kickVoters (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field NameId System.UInt16
+---`Field Public Instance`
+---@field SessionId System.Byte
+---`Field Public Instance`
+---@field AccountInfo Barotrauma.Networking.AccountInfo
+---`Field Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+---`Field Public Instance`
+---@field Ping System.UInt16
+---`Field Public Instance`
+---@field PreferredJob Barotrauma.Identifier
+---`Field Private Instance`
+---@field teamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field PreferredTeam Barotrauma.CharacterTeamType
+---`Field Private Instance`
+---@field character Barotrauma.Character
+---`Field Public Instance`
+---@field UsingFreeCam System.Boolean
+---`Field Public Instance`
+---@field CharacterID System.UInt16
+---`Field Private Instance`
+---@field spectatePos Microsoft.Xna.Framework.Vector2
+---`Field Private Instance`
+---@field muted System.Boolean
+---`Field Private Instance`
+---@field inGame System.Boolean
+---`Field Public Instance`
+---@field HasSpawned System.Boolean
+---`Field Public Instance`
+---@field GivenAchievements (System.Collections.Generic.HashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Permissions Barotrauma.Networking.ClientPermissions
+---`Field Public Instance`
+---@field PermittedConsoleCommands (System.Collections.Generic.HashSet*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+---`Field Private Instance`
+---@field votes (System.Object-arr)|(System.Object[])
+---`Field Public Static`
+---@field NameChangeCoolDown System.TimeSpan
+---`Field Public Static`
+---@field MaxNameLength System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field JobPreferences (System.Collections.Generic.List*1Barotrauma*JobVariant)|(Barotrauma.JobVariant[])
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field CharacterInfo Barotrauma.CharacterInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Connection Barotrauma.Networking.NetworkConnection
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Karma System.Single
+---`Getter Public Instance`
+---@field KickVoteCount System.Int32
+---`Getter Public Static`
+---@field ClientList (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Getter Public Instance`
+---@field SteamID System.UInt64
+---`Getter Public Instance`
+---@field AccountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpectatePos System.Nullable*1Microsoft*Xna*Framework*Vector2
+---`Getter Public Instance`
+---@field Spectating System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Muted System.Boolean
+---`Getter Public Instance`
+---@field HasPermissions System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoipQueue Barotrauma.Networking.VoipQueue
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field InGame System.Boolean
+_G['Client'] = {}
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+_G['Client'].SetClientCharacter = function(character) end
+
+---`Method Public Instance`
+---@param reason? System.String
+_G['Client'].Kick = function(reason) end
+
+---`Method Public Instance`
+---@param reason? System.String
+---@param seconds? System.Single
+_G['Client'].Ban = function(reason, seconds) end
+
+---`Method Public Static`
+---@param playerName System.String
+_G['Client'].UnbanPlayer = function(playerName) end
+
+---`Method Public Static`
+---@param player System.String
+---@param reason System.String
+---@param range? System.Boolean
+---@param seconds? System.Single
+_G['Client'].BanPlayer = function(player, reason, range, seconds) end
+
+---`Method Public Instance`
+---@param permissions Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['Client'].CheckPermission = function(permissions) end
+
+---`Method Public Instance`
+_G['Client'].InitClientSync = function() end
+
+---`Method Public Static`
+---@param name System.String
+---@param serverSettings Barotrauma.Networking.ServerSettings
+---@return System.Boolean
+_G['Client'].IsValidName = function(name, serverSettings) end
+
+---`Method Public Instance`
+---@param address Barotrauma.Networking.Address
+---@return System.Boolean
+_G['Client'].AddressMatches = function(address) end
+
+---`Method Public Instance`
+---@param voter Barotrauma.Networking.Client
+_G['Client'].AddKickVote = function(voter) end
+
+---`Method Public Instance`
+---@param voter Barotrauma.Networking.Client
+_G['Client'].RemoveKickVote = function(voter) end
+
+---`Method Public Instance`
+---@param voter Barotrauma.Networking.Client
+---@return System.Boolean
+_G['Client'].HasKickVoteFrom = function(voter) end
+
+---`Method Public Instance`
+---@param id System.Int32
+---@return System.Boolean
+_G['Client'].HasKickVoteFromSessionId = function(id) end
+
+---`Method Public Static`
+---@param connectedClients (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+_G['Client'].UpdateKickVotes = function(connectedClients) end
+
+---`Method Public Instance`
+---@param resetKickVotes System.Boolean
+_G['Client'].ResetVotes = function(resetKickVotes) end
+
+---`Method Public Instance`
+---@param permissions Barotrauma.Networking.ClientPermissions
+---@param permittedConsoleCommands (System.Collections.Generic.IEnumerable*1Barotrauma*DebugConsole*Command)|(fun():(Barotrauma.DebugConsole.Command))
+_G['Client'].SetPermissions = function(permissions, permittedConsoleCommands) end
+
+---`Method Public Instance`
+---@param permission Barotrauma.Networking.ClientPermissions
+_G['Client'].GivePermission = function(permission) end
+
+---`Method Public Instance`
+---@param permission Barotrauma.Networking.ClientPermissions
+_G['Client'].RemovePermission = function(permission) end
+
+---`Method Public Instance`
+---@param permission Barotrauma.Networking.ClientPermissions
+---@return System.Boolean
+_G['Client'].HasPermission = function(permission) end
+
+---`Method Public Instance`
+---@param botCharacter Barotrauma.Character
+---@return System.Boolean
+_G['Client'].TryTakeOverBot = function(botCharacter) end
+
+---`Method Private Instance`
+_G['Client'].InitProjSpecific = function() end
+
+---`Method Private Instance`
+_G['Client'].DisposeProjSpecific = function() end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@return Barotrauma.Networking.Client.T
+_G['Client'].GetVote = function(voteType) end
+
+---`Method Public Instance`
+---@param voteType Barotrauma.Networking.VoteType
+---@param value System.Object
+_G['Client'].SetVote = function(voteType, value) end
+
+---`Method Public Instance`
+---@param userId System.String
+---@return System.Boolean
+_G['Client'].SessionOrAccountIdMatches = function(userId) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Client'].WritePermissions = function(msg) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param permissions Barotrauma.Networking.ClientPermissions-ref
+---@param permittedCommands System.Collections.Generic.List
+_G['Client'].ReadPermissions = function(inc, permissions, permittedCommands) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['Client'].ReadPermissions = function(inc) end
+
+---`Method Public Static`
+---@param name System.String
+---@return System.String
+_G['Client'].SanitizeName = function(name) end
+
+---`Method Public Instance Virtual`
+_G['Client'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.String, sessionId:System.Byte):Barotrauma.Networking.Client
+---@return Barotrauma.Networking.Client
+_G['Client'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun(name:System.String, sessionId:System.Byte):Barotrauma.Networking.Client
+---@return Barotrauma.Networking.Client
+_G['Client'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(name:System.String, sessionId:System.Byte):Barotrauma.Networking.Client
+---@return Barotrauma.Networking.Client
+_G['Client'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(name:System.String, sessionId:System.Byte):Barotrauma.Networking.Client
+---@return Barotrauma.Networking.Client
+_G['Client'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9696DBF8.lua b/Meta/Types/server/_00007FFD9696DBF8.lua
new file mode 100644
index 0000000..e8a2dea
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696DBF8.lua
@@ -0,0 +1,32 @@
+---@meta
+---@class Barotrauma.Networking.TempClient : System.ValueType
+---`Field Public Instance`
+---@field Name System.String
+---`Field Public Instance`
+---@field PreferredJob Barotrauma.Identifier
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field PreferredTeam Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field NameId System.UInt16
+---`Field Public Instance`
+---@field AccountInfo Barotrauma.Networking.AccountInfo
+---`Field Public Instance`
+---@field SessionId System.Byte
+---`Field Public Instance`
+---@field CharacterId System.UInt16
+---`Field Public Instance`
+---@field Karma System.Single
+---`Field Public Instance`
+---@field Muted System.Boolean
+---`Field Public Instance`
+---@field InGame System.Boolean
+---`Field Public Instance`
+---@field HasPermissions System.Boolean
+---`Field Public Instance`
+---@field IsOwner System.Boolean
+---`Field Public Instance`
+---@field IsDownloading System.Boolean
+_G['TempClient'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696DD60.lua b/Meta/Types/server/_00007FFD9696DD60.lua
new file mode 100644
index 0000000..c9cc10b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696DD60.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.Networking.NetworkConnectionStatus : System.Enum
+---`Field Public Static`
+---@field Connected Barotrauma.Networking.NetworkConnectionStatus
+---`Field Public Static`
+---@field Disconnected Barotrauma.Networking.NetworkConnectionStatus
+_G['NetworkConnectionStatus'] = {}
+
diff --git a/Meta/Types/server/_00007FFD9696E098.lua b/Meta/Types/server/_00007FFD9696E098.lua
new file mode 100644
index 0000000..9647ec8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696E098.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.Networking.NetworkConnection : System.Object
+---`Field Public Instance`
+---@field Endpoint Barotrauma.Networking.Endpoint
+---`Field Public Instance`
+---@field Status Barotrauma.Networking.NetworkConnectionStatus
+---`Field Public Static`
+---@field TimeoutThreshold System.Double
+---`Field Public Static`
+---@field TimeoutThresholdInGame System.Double
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field AccountInfo Barotrauma.Networking.AccountInfo
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Language Barotrauma.LanguageIdentifier
+_G['NetworkConnection'] = {}
+
+---`Method Public Instance`
+---@param endPoint Barotrauma.Networking.Endpoint
+---@return System.Boolean
+_G['NetworkConnection'].EndpointMatches = function(endPoint) end
+
+---`Method Public Instance Abstract Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['NetworkConnection'].AddressMatches = function(other) end
+
+---`Method Public Instance`
+---@param newInfo Barotrauma.Networking.AccountInfo
+_G['NetworkConnection'].SetAccountInfo = function(newInfo) end
+
+---`Method Public Instance Virtual`
+---@return System.String
+_G['NetworkConnection'].ToString = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'] = function() end
+
+---`Constructor NonPublic Instance`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'] = function() end
+
+---`Constructor Private Static`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint):Barotrauma.Networking.NetworkConnection
+---@return Barotrauma.Networking.NetworkConnection
+_G['NetworkConnection'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9696E448.lua b/Meta/Types/server/_00007FFD9696E448.lua
new file mode 100644
index 0000000..23c60d8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696E448.lua
@@ -0,0 +1,19 @@
+---@meta
+---@class Barotrauma.Networking.PipeConnection : Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*PipeEndpoint
+_G['PipeConnection'] = {}
+
+---`Method Public Instance Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['PipeConnection'].AddressMatches = function(other) end
+
+---`Constructor Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return Barotrauma.Networking.PipeConnection
+_G['PipeConnection'] = function(accountId) end
+
+---`Constructor Public Instance`
+---@param accountId Barotrauma.Option*1Barotrauma*Networking*AccountId
+---@return Barotrauma.Networking.PipeConnection
+_G['PipeConnection'].__new = function(accountId) end
+
diff --git a/Meta/Types/server/_00007FFD9696E6D0.lua b/Meta/Types/server/_00007FFD9696E6D0.lua
new file mode 100644
index 0000000..a6edcc8
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696E6D0.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenConnection : Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*LidgrenEndpoint
+---`Field Public Instance`
+---@field NetConnection Lidgren.Network.NetConnection
+_G['LidgrenConnection'] = {}
+
+---`Method Public Instance Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['LidgrenConnection'].AddressMatches = function(other) end
+
+---`Constructor Public Instance`
+---@param netConnection Lidgren.Network.NetConnection
+---@return Barotrauma.Networking.LidgrenConnection
+_G['LidgrenConnection'] = function(netConnection) end
+
+---`Constructor Public Instance`
+---@param netConnection Lidgren.Network.NetConnection
+---@return Barotrauma.Networking.LidgrenConnection
+_G['LidgrenConnection'].__new = function(netConnection) end
+
diff --git a/Meta/Types/server/_00007FFD9696ECD8.lua b/Meta/Types/server/_00007FFD9696ECD8.lua
new file mode 100644
index 0000000..13e5df9
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696ECD8.lua
@@ -0,0 +1,21 @@
+---@meta
+---@class Barotrauma.Networking.SteamP2PConnection : Barotrauma.Networking.P2PConnection*1Barotrauma*Networking*SteamP2PEndpoint
+_G['SteamP2PConnection'] = {}
+
+---`Method Public Instance Virtual`
+---@param other Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['SteamP2PConnection'].AddressMatches = function(other) end
+
+---`Constructor Public Instance`
+---@overload fun(steamId:Barotrauma.Networking.SteamId):Barotrauma.Networking.SteamP2PConnection
+---@param endpoint Barotrauma.Networking.SteamP2PEndpoint
+---@return Barotrauma.Networking.SteamP2PConnection
+_G['SteamP2PConnection'] = function(endpoint) end
+
+---`Constructor Public Instance`
+---@overload fun(steamId:Barotrauma.Networking.SteamId):Barotrauma.Networking.SteamP2PConnection
+---@param endpoint Barotrauma.Networking.SteamP2PEndpoint
+---@return Barotrauma.Networking.SteamP2PConnection
+_G['SteamP2PConnection'].__new = function(endpoint) end
+
diff --git a/Meta/Types/server/_00007FFD9696F290.lua b/Meta/Types/server/_00007FFD9696F290.lua
new file mode 100644
index 0000000..0968c6a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696F290.lua
@@ -0,0 +1,98 @@
+---@meta
+---@class Barotrauma.Networking.NetworkMember : System.Object
+---`Field NonPublic Instance`
+---@field updateTimer System.DateTime
+---`Field Public Instance`
+---@field ShowNetStats System.Boolean
+---`Field Public Instance`
+---@field SimulatedRandomLatency System.Single
+---`Field Public Instance`
+---@field SimulatedMinimumLatency System.Single
+---`Field Public Instance`
+---@field SimulatedLoss System.Single
+---`Field Public Instance`
+---@field SimulatedDuplicatesChance System.Single
+---`Getter Public Instance`
+---@field Character Barotrauma.Character
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field LastClientListUpdateID System.UInt16
+---`Getter Public Instance Abstract Virtual`
+---@field IsServer System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field IsClient System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field Voting Barotrauma.Voting
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field KarmaManager Barotrauma.KarmaManager
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field GameStarted System.Boolean
+---`Getter Public Instance Abstract Virtual`
+---@field ConnectedClients (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field RespawnManager Barotrauma.Networking.RespawnManager
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field ServerSettings Barotrauma.Networking.ServerSettings
+---`Getter Public Instance`
+---@field UpdateInterval System.TimeSpan
+_G['NetworkMember'] = {}
+
+---`Method Public Instance Abstract Virtual`
+---@param entity Barotrauma.Networking.INetSerializable
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['NetworkMember'].CreateEntityEvent = function(entity, extraData) end
+
+---`Method Public Instance`
+---@param message System.String
+---@param type Barotrauma.Networking.ChatMessageType
+---@param senderName? System.String
+---@param senderClient? Barotrauma.Networking.Client
+---@param senderEntity? Barotrauma.Entity
+---@param changeType? Barotrauma.Networking.PlayerConnectionChangeType
+---@param textColor? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['NetworkMember'].AddChatMessage = function(message, type, senderName, senderClient, senderEntity, changeType, textColor) end
+
+---`Method Public Instance Abstract Virtual`
+---@param message Barotrauma.Networking.ChatMessage
+_G['NetworkMember'].AddChatMessage = function(message) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@param name? System.String
+---@return System.String
+_G['NetworkMember'].ClientLogName = function(client, name) end
+
+---`Method Public Instance Abstract Virtual`
+---@param kickedName System.String
+---@param reason System.String
+_G['NetworkMember'].KickPlayer = function(kickedName, reason) end
+
+---`Method Public Instance Abstract Virtual`
+---@param kickedName System.String
+---@param reason System.String
+---@param duration? System.Nullable*1System*TimeSpan
+_G['NetworkMember'].BanPlayer = function(kickedName, reason, duration) end
+
+---`Method Public Instance Abstract Virtual`
+---@overload fun(playerName:System.String)
+---@param endpoint Barotrauma.Networking.Endpoint
+_G['NetworkMember'].UnbanPlayer = function(endpoint) end
+
+---`Method Public Static`
+---@param myVersion System.Version
+---@param remoteVersion System.Version
+---@return System.Boolean
+_G['NetworkMember'].IsCompatible = function(myVersion, remoteVersion) end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.NetworkMember
+_G['NetworkMember'] = function() end
+
+---`Constructor NonPublic Instance`
+---@return Barotrauma.Networking.NetworkMember
+_G['NetworkMember'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD9696F628.lua b/Meta/Types/server/_00007FFD9696F628.lua
new file mode 100644
index 0000000..0b50ed3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD9696F628.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.Networking.BanList : System.Object
+---`Field Private Instance`
+---@field bannedPlayers (System.Collections.Generic.List*1Barotrauma*Networking*BannedPlayer)|(Barotrauma.Networking.BannedPlayer[])
+---`Field Private Static`
+---@field SavePath System.String
+---`Field Private Static`
+---@field LegacySavePath System.String
+---`Getter Public Instance`
+---@field BannedPlayers (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*BannedPlayer)|(Barotrauma.Networking.BannedPlayer[])
+---`Getter Public Instance`
+---@field BannedNames (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+---`Getter Public Instance`
+---@field BannedAddresses (System.Collections.Generic.IEnumerable*1Barotrauma*Either*2Barotrauma*Networking*Address*2Barotrauma*Networking*AccountId)|(fun():(Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId))
+_G['BanList'] = {}
+
+---`Method Private Instance`
+_G['BanList'].LoadLegacyBanList = function() end
+
+---`Method Private Instance`
+_G['BanList'].LoadBanList = function() end
+
+---`Method Private Instance`
+_G['BanList'].RemoveExpired = function() end
+
+---`Method Public Instance`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint, reason:System.String-ref):(System.Boolean)
+---@overload fun(address:Barotrauma.Networking.Address, reason:System.String-ref):(System.Boolean)
+---@overload fun(accountId:Barotrauma.Networking.AccountId, reason:System.String-ref):(System.Boolean)
+---@param accountInfo Barotrauma.Networking.AccountInfo
+---@param reason System.String-ref
+---@return System.Boolean
+_G['BanList'].IsBanned = function(accountInfo, reason) end
+
+---`Method Public Instance`
+---@overload fun(name:System.String, endpoint:Barotrauma.Networking.Endpoint, reason:System.String, duration:System.Nullable*1System*TimeSpan)
+---@param name System.String
+---@param addressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+---@param reason System.String
+---@param duration System.Nullable*1System*TimeSpan
+_G['BanList'].BanPlayer = function(name, addressOrAccountId, reason, duration) end
+
+---`Method Public Instance`
+---@overload fun(endpoint:Barotrauma.Networking.Endpoint)
+---@param addressOrAccountId Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId
+_G['BanList'].UnbanPlayer = function(addressOrAccountId) end
+
+---`Method Private Instance`
+---@param banned Barotrauma.Networking.BannedPlayer
+_G['BanList'].RemoveBan = function(banned) end
+
+---`Method Public Instance`
+_G['BanList'].Save = function() end
+
+---`Method Public Instance`
+---@param outMsg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['BanList'].ServerAdminWrite = function(outMsg, c) end
+
+---`Method Public Instance`
+---@param incMsg Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+---@return System.Boolean
+_G['BanList'].ServerAdminRead = function(incMsg, c) end
+
+---`Method Private Instance`
+_G['BanList'].InitProjectSpecific = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.BanList
+_G['BanList'] = function() end
+
+---`Constructor Public Instance`
+---@return Barotrauma.Networking.BanList
+_G['BanList'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96970CE0.lua b/Meta/Types/server/_00007FFD96970CE0.lua
new file mode 100644
index 0000000..00d6f62
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96970CE0.lua
@@ -0,0 +1,608 @@
+---@meta
+---@class Barotrauma.Networking.GameServer : Barotrauma.Networking.NetworkMember
+---`Field Public Instance`
+---@field SubmarineSwitchLoad System.Boolean
+---`Field Private Instance`
+---@field connectedClients (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Private Instance`
+---@field clientsAttemptingToReconnectSoon (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Private Instance`
+---@field previousPlayers (System.Collections.Generic.List*1Barotrauma*Networking*PreviousPlayer)|(Barotrauma.Networking.PreviousPlayer[])
+---`Field Private Instance`
+---@field roundStartSeed System.Int32
+---`Field Private Instance`
+---@field started System.Boolean
+---`Field Private Instance`
+---@field serverPeer Barotrauma.Networking.ServerPeer
+---`Field Private Instance`
+---@field refreshMasterTimer System.DateTime
+---`Field Private Instance`
+---@field refreshMasterInterval System.TimeSpan
+---`Field Private Instance`
+---@field registeredToSteamMaster System.Boolean
+---`Field Private Instance`
+---@field roundStartTime System.DateTime
+---`Field Private Instance`
+---@field wasReadyToStartAutomatically System.Boolean
+---`Field Private Instance`
+---@field autoRestartTimerRunning System.Boolean
+---`Field Private Instance`
+---@field initiatedStartGame System.Boolean
+---`Field Private Instance`
+---@field startGameCoroutine Barotrauma.CoroutineHandle
+---`Field Private Instance`
+---@field entityEventManager Barotrauma.Networking.ServerEntityEventManager
+---`Field Private Instance`
+---@field traitorManager Barotrauma.TraitorManager
+---`Field Private Instance`
+---@field ownerKey Barotrauma.Option*1System*Int32
+---`Field Private Instance`
+---@field ownerEndpoint Barotrauma.Option*1Barotrauma*Networking*P2PEndpoint
+---`Field Private Instance`
+---@field lastPingTime System.Double
+---`Field Private Instance`
+---@field lastPingData (System.Byte-arr)|(System.Byte[])
+---`Field Private Instance`
+---@field dosProtection Barotrauma.DoSProtection
+---`Field Private Instance`
+---@field isRoundStartWarningActive System.Boolean
+---`Field Private Instance`
+---@field charInfoRateLimiter Barotrauma.RateLimiter
+---`Field Public Instance`
+---@field JobAssignmentDebugLog (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Private Static`
+---@field pvpAutoBalanceCountdownRemaining System.Single
+---`Field Private Static`
+---@field pendingMessagesToOwner (System.Collections.Generic.Queue*1Barotrauma*Networking*ChatMessage)|(fun():(Barotrauma.Networking.ChatMessage))
+---`Field Private Static`
+---@field PvpAutoBalanceCountdown System.Int32
+---`Getter Public Instance Virtual`
+---@field IsServer System.Boolean
+---`Getter Public Instance Virtual`
+---@field IsClient System.Boolean
+---`Getter Public Instance Virtual`
+---@field Voting Barotrauma.Voting
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ServerName System.String
+---`Getter Public Instance`
+---@field ServerPeer Barotrauma.Networking.ServerPeer
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndRoundTimer System.Single
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field EndRoundDelay System.Single
+---`Getter Public Instance`
+---@field EndRoundTimeRemaining System.Single
+---`Getter Private Instance`
+---@field Team1Count System.Int32
+---`Getter Private Instance`
+---@field Team2Count System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field VoipServer Barotrauma.Networking.VoipServer
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field FileSender Barotrauma.Networking.FileSender
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field ModSender Barotrauma.Networking.ModSender
+---`Getter Public Instance`
+---@field TraitorManager Barotrauma.TraitorManager
+---`Getter Public Instance Virtual`
+---@field ConnectedClients (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Getter Public Instance`
+---@field EntityEventManager Barotrauma.Networking.ServerEntityEventManager
+---`Getter Public Instance`
+---@field Port System.Int32
+---`Getter Public Instance`
+---@field QueryPort System.Int32
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field OwnerConnection Barotrauma.Networking.NetworkConnection
+_G['GameServer'] = {}
+
+---`Method Public Instance`
+---@overload fun(client:Barotrauma.Networking.Client, peerDisconnectPacket:Barotrauma.Networking.PeerDisconnectPacket)
+---@param senderConnection Barotrauma.Networking.NetworkConnection
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['GameServer'].DisconnectClient = function(senderConnection, peerDisconnectPacket) end
+
+---`Method Private Instance`
+_G['GameServer'].UpdateCrewFrame = function() end
+
+---`Method Public Instance`
+---@overload fun(txt:System.String, recipient:Barotrauma.Networking.Client, messageType?:Barotrauma.Networking.ChatMessageType)
+---@param msg Barotrauma.Networking.ChatMessage
+---@param recipient Barotrauma.Networking.Client
+_G['GameServer'].SendDirectChatMessage = function(msg, recipient) end
+
+---`Method Public Instance`
+---@param txt System.String
+---@param recipient Barotrauma.Networking.Client
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['GameServer'].SendConsoleMessage = function(txt, recipient, color) end
+
+---`Method Public Instance`
+---@param message System.String
+---@param type? System.Nullable*1Barotrauma*Networking*ChatMessageType
+---@param senderClient? Barotrauma.Networking.Client
+---@param senderCharacter? Barotrauma.Character
+---@param changeType? Barotrauma.Networking.PlayerConnectionChangeType
+---@param chatMode? Barotrauma.ChatMode
+_G['GameServer'].SendChatMessage = function(message, type, senderClient, senderCharacter, changeType, chatMode) end
+
+---`Method Public Instance`
+---@param message Barotrauma.Networking.OrderChatMessage
+_G['GameServer'].SendOrderChatMessage = function(message) end
+
+---`Method Private Instance`
+---@param transfer Barotrauma.Networking.FileSender.FileTransferOut
+_G['GameServer'].FileTransferChanged = function(transfer) end
+
+---`Method Public Instance`
+---@param transfer Barotrauma.Networking.FileSender.FileTransferOut
+_G['GameServer'].SendCancelTransferMsg = function(transfer) end
+
+---`Method Public Instance`
+---@param checkActiveVote? System.Boolean
+_G['GameServer'].UpdateVoteStatus = function(checkActiveVote) end
+
+---`Method Public Instance`
+---@param recipients (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+_G['GameServer'].SendVoteStatus = function(recipients) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['GameServer'].TrySwitchSubmarine = function() end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].UpdateClientPermissions = function(client) end
+
+---`Method Private Instance`
+---@param recipient Barotrauma.Networking.Client
+---@param client Barotrauma.Networking.Client
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameServer'].SendClientPermissionsAfterClientListSynced = function(recipient, client) end
+
+---`Method Private Instance`
+---@param recipient Barotrauma.Networking.Client
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].SendClientPermissions = function(recipient, client) end
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.Character, achievementIdentifier:Barotrauma.Identifier)
+---@param client Barotrauma.Networking.Client
+---@param achievementIdentifier Barotrauma.Identifier
+_G['GameServer'].GiveAchievement = function(client, achievementIdentifier) end
+
+---`Method Public Instance`
+---@overload fun(character:Barotrauma.Character, stat:Barotrauma.AchievementStat, amount:System.Int32)
+---@param client Barotrauma.Networking.Client
+---@param stat Barotrauma.AchievementStat
+---@param amount System.Int32
+_G['GameServer'].IncrementStat = function(client, stat, amount) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.WriteOnlyMessage
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].SendTraitorMessage = function(msg, client) end
+
+---`Method Public Instance`
+_G['GameServer'].UpdateCheatsEnabled = function() end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@param newCharacter Barotrauma.Character
+_G['GameServer'].SetClientCharacter = function(client, newCharacter) end
+
+---`Method Private Instance`
+---@param message Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].UpdateCharacterInfo = function(message, sender) end
+
+---`Method Public Instance`
+---@param unassigned (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+_G['GameServer'].AssignJobs = function(unassigned) end
+
+---`Method Public Instance`
+---@param bots (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+---@param teamID Barotrauma.CharacterTeamType
+---@param isPvP System.Boolean
+_G['GameServer'].AssignBotJobs = function(bots, teamID, isPvP) end
+
+---`Method Private Instance`
+---@param clients (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---@param job Barotrauma.JobPrefab
+---@param forceAssign? System.Boolean
+---@return Barotrauma.Networking.Client
+_G['GameServer'].FindClientWithJobPreference = function(clients, job, forceAssign) end
+
+---`Method Public Instance`
+---@param mission Barotrauma.Mission
+_G['GameServer'].UpdateMissionState = function(mission) end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+---@return System.String
+_G['GameServer'].CharacterLogName = function(character) end
+
+---`Method Public Static`
+---@param line System.String
+---@param messageType Barotrauma.Networking.ServerLog.MessageType
+_G['GameServer'].Log = function(line, messageType) end
+
+---`Method Public Instance`
+_G['GameServer'].Quit = function() end
+
+---`Method Private Instance`
+_G['GameServer'].UpdateClientLobbies = function() end
+
+---`Method Private Instance`
+---@return (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+_G['GameServer'].GetPlayingClients = function() end
+
+---`Method Public Instance`
+---@param assignUnassignedNow? System.Boolean
+---@param autoBalanceNow? System.Boolean
+_G['GameServer'].RefreshPvpTeamAssignments = function(assignUnassignedNow, autoBalanceNow) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].AssignClientToPvpTeamMidgame = function(client) end
+
+---`Method Private Instance`
+_G['GameServer'].StopAutoBalanceCountdown = function() end
+
+---`Method Public Instance`
+_G['GameServer'].PrintSenderTransters = function() end
+
+---`Method Public Instance`
+_G['GameServer'].ClearRecentlyDisconnectedClients = function() end
+
+---`Method Public Instance`
+---@param conn Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['GameServer'].FindAndRemoveRecentlyDisconnectedConnection = function(conn) end
+
+---`Method Public Instance`
+---@param registerToServerList System.Boolean
+_G['GameServer'].StartServer = function(registerToServerList) end
+
+---`Method Public Static`
+---@param message System.String
+---@param messageType Barotrauma.Networking.ChatMessageType
+_G['GameServer'].AddPendingMessageToOwner = function(message, messageType) end
+
+---`Method Private Instance`
+---@param connection Barotrauma.Networking.NetworkConnection
+_G['GameServer'].OnOwnerDetermined = function(connection) end
+
+---`Method Public Instance`
+_G['GameServer'].NotifyCrash = function() end
+
+---`Method Private Instance`
+---@param connection Barotrauma.Networking.NetworkConnection
+---@param clientName System.String
+_G['GameServer'].OnInitializationComplete = function(connection, clientName) end
+
+---`Method Private Instance`
+---@param connection Barotrauma.Networking.NetworkConnection
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['GameServer'].OnClientDisconnect = function(connection, peerDisconnectPacket) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['GameServer'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['GameServer'].UpdatePing = function() end
+
+---`Method Private Instance`
+---@param sender Barotrauma.Networking.NetworkConnection
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameServer'].ReadDataMessage = function(sender, inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param connectedClient Barotrauma.Networking.Client
+_G['GameServer'].SendBackupIndices = function(inc, connectedClient) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param c Barotrauma.Networking.Client
+_G['GameServer'].HandleClientError = function(inc, c) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@param errorStr System.String
+_G['GameServer'].WriteEventErrorData = function(client, errorStr) end
+
+---`Method Public Instance Virtual`
+---@param entity Barotrauma.Networking.INetSerializable
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['GameServer'].CreateEntityEvent = function(entity, extraData) end
+
+---`Method Private Instance`
+---@return System.Byte
+_G['GameServer'].GetNewClientSessionId = function() end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameServer'].ClientReadLobby = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameServer'].ClientReadIngame = function(inc) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].ReadCrewMessage = function(inc, sender) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].ReadMoneyMessage = function(inc, sender) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].ReadRewardDistributionMessage = function(inc, sender) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].ResetRewardDistribution = function(client) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].ReadMedicalMessage = function(inc, sender) end
+
+---`Method Private Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].ReadCircuitBoxMessage = function(inc, sender) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].ReadReadyToSpawnMessage = function(inc, sender) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['GameServer'].ReadTakeOverBotMessage = function(inc, sender) end
+
+---`Method Private Static`
+---@param campaign Barotrauma.CampaignMode
+---@param botInfo Barotrauma.CharacterInfo
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].SpawnAndTakeOverBot = function(campaign, botInfo, client) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['GameServer'].ClientReadServerCommand = function(inc) end
+
+---`Method Private Instance`
+---@param c Barotrauma.Networking.Client
+_G['GameServer'].ClientWrite = function(c) end
+
+---`Method Private Instance`
+---@param c Barotrauma.Networking.Client
+---@param outmsg Barotrauma.Networking.IWriteMessage
+_G['GameServer'].ClientWriteInitial = function(c, outmsg) end
+
+---`Method Private Instance`
+---@param c Barotrauma.Networking.Client
+_G['GameServer'].ClientWriteIngame = function(c) end
+
+---`Method Private Instance`
+---@param segmentTable Barotrauma.Networking.SegmentTableWriter
+---@param c Barotrauma.Networking.Client
+---@param outmsg Barotrauma.Networking.IWriteMessage
+_G['GameServer'].WriteClientList = function(segmentTable, c, outmsg) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Networking.Client
+_G['GameServer'].ClientWriteLobby = function(c) end
+
+---`Method Private Static`
+---@param segmentTable Barotrauma.Networking.SegmentTableWriter
+---@param outmsg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+_G['GameServer'].WriteChatMessages = function(segmentTable, outmsg, c) end
+
+---`Method Public Instance`
+---@return Barotrauma.Networking.GameServer.TryStartGameResult
+_G['GameServer'].TryStartGame = function() end
+
+---`Method Private Instance`
+---@param team1Sub Barotrauma.SubmarineInfo
+---@param team2Sub Barotrauma.SubmarineInfo
+---@param preset Barotrauma.GameModePreset
+---@param incompatiblePerks Barotrauma.PerkCollection-ref
+---@return System.Boolean
+_G['GameServer'].CheckIfAnyPerksAreIncompatible = function(team1Sub, team2Sub, preset, incompatiblePerks) end
+
+---`Method Private Instance`
+_G['GameServer'].AbortStartGameIfWarningActive = function() end
+
+---`Method Private Instance`
+---@param incompatiblePerks Barotrauma.PerkCollection
+---@param selectedSub Barotrauma.SubmarineInfo
+---@param selectedEnemySub Barotrauma.Option*1Barotrauma*SubmarineInfo
+---@param selectedShuttle Barotrauma.SubmarineInfo
+---@param selectedMode Barotrauma.GameModePreset
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameServer'].WarnAndDelayStartGame = function(incompatiblePerks, selectedSub, selectedEnemySub, selectedShuttle, selectedMode) end
+
+---`Method Private Instance`
+---@param selectedSub Barotrauma.SubmarineInfo
+---@param selectedEnemySub Barotrauma.Option*1Barotrauma*SubmarineInfo
+---@param selectedShuttle Barotrauma.SubmarineInfo
+---@param selectedMode Barotrauma.GameModePreset
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameServer'].InitiateStartGame = function(selectedSub, selectedEnemySub, selectedShuttle, selectedMode) end
+
+---`Method Private Instance`
+---@param selectedSub Barotrauma.SubmarineInfo
+---@param selectedShuttle Barotrauma.SubmarineInfo
+---@param selectedEnemySub Barotrauma.Option*1Barotrauma*SubmarineInfo
+---@param selectedMode Barotrauma.GameModePreset
+---@param settings Barotrauma.CampaignSettings
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus)|(fun():(Barotrauma.CoroutineStatus))
+_G['GameServer'].StartGame = function(selectedSub, selectedShuttle, selectedEnemySub, selectedMode, settings) end
+
+---`Method Private Instance`
+---@overload fun(seed:System.Int32, levelSeed:System.String, gameSession:Barotrauma.GameSession, clients:(System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[]), includesFinalize:System.Boolean)
+---@param seed System.Int32
+---@param levelSeed System.String
+---@param gameSession Barotrauma.GameSession
+---@param client Barotrauma.Networking.Client
+---@param includesFinalize System.Boolean
+_G['GameServer'].SendStartMessage = function(seed, levelSeed, gameSession, client, includesFinalize) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@return System.Boolean
+_G['GameServer'].TrySendCampaignSetupInfo = function(client) end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['GameServer'].IsUsingRespawnShuttle = function() end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].SendRoundStartFinalize = function(client) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param client Barotrauma.Networking.Client
+_G['GameServer'].WriteRoundStartFinalize = function(msg, client) end
+
+---`Method Public Instance`
+---@param transitionType? Barotrauma.CampaignMode.TransitionType
+---@param wasSaved? System.Boolean
+---@param missions? (System.Collections.Generic.IEnumerable*1Barotrauma*Mission)|(fun():(Barotrauma.Mission))
+_G['GameServer'].EndGame = function(transitionType, wasSaved, missions) end
+
+---`Method Public Instance Virtual`
+---@param message Barotrauma.Networking.ChatMessage
+_G['GameServer'].AddChatMessage = function(message) end
+
+---`Method Private Instance`
+---@param c Barotrauma.Networking.Client
+---@param inc Barotrauma.Networking.IReadMessage
+---@return System.Boolean
+_G['GameServer'].ReadClientNameChange = function(c, inc) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Networking.Client
+---@param newName System.String
+---@return System.Boolean
+_G['GameServer'].TryChangeClientName = function(c, newName) end
+
+---`Method Public Instance`
+---@param c Barotrauma.Networking.Client
+---@param newName System.String
+---@return System.Boolean
+_G['GameServer'].IsNameValid = function(c, newName) end
+
+---`Method Public Instance Virtual`
+---@param playerName System.String
+---@param reason System.String
+_G['GameServer'].KickPlayer = function(playerName, reason) end
+
+---`Method Public Instance`
+---@overload fun(conn:Barotrauma.Networking.NetworkConnection, reason:System.String)
+---@param client Barotrauma.Networking.Client
+---@param reason System.String
+---@param resetKarma? System.Boolean
+_G['GameServer'].KickClient = function(client, reason, resetKarma) end
+
+---`Method Public Instance Virtual`
+---@param playerName System.String
+---@param reason System.String
+---@param duration? System.Nullable*1System*TimeSpan
+_G['GameServer'].BanPlayer = function(playerName, reason, duration) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@param reason System.String
+---@param duration? System.Nullable*1System*TimeSpan
+_G['GameServer'].BanClient = function(client, reason, duration) end
+
+---`Method Public Instance`
+---@param previousPlayer Barotrauma.Networking.PreviousPlayer
+---@param reason System.String
+---@param duration? System.Nullable*1System*TimeSpan
+_G['GameServer'].BanPreviousPlayer = function(previousPlayer, reason, duration) end
+
+---`Method Public Instance Virtual`
+---@overload fun(playerName:System.String)
+---@param endpoint Barotrauma.Networking.Endpoint
+_G['GameServer'].UnbanPlayer = function(endpoint) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.GameServer
+---@param name System.String
+---@param listenIp System.Net.IPAddress
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param isPublic System.Boolean
+---@param password System.String
+---@param attemptUPnP System.Boolean
+---@param maxPlayers System.Int32
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@param ownerEndpoint Barotrauma.Option*1Barotrauma*Networking*P2PEndpoint
+---@return Barotrauma.Networking.GameServer
+_G['GameServer'] = function(name, listenIp, port, queryPort, isPublic, password, attemptUPnP, maxPlayers, ownerKey, ownerEndpoint) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Networking.GameServer
+---@param name System.String
+---@param listenIp System.Net.IPAddress
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param isPublic System.Boolean
+---@param password System.String
+---@param attemptUPnP System.Boolean
+---@param maxPlayers System.Int32
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@param ownerEndpoint Barotrauma.Option*1Barotrauma*Networking*P2PEndpoint
+---@return Barotrauma.Networking.GameServer
+_G['GameServer'].__new = function(name, listenIp, port, queryPort, isPublic, password, attemptUPnP, maxPlayers, ownerKey, ownerEndpoint) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.GameServer
+---@param name System.String
+---@param listenIp System.Net.IPAddress
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param isPublic System.Boolean
+---@param password System.String
+---@param attemptUPnP System.Boolean
+---@param maxPlayers System.Int32
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@param ownerEndpoint Barotrauma.Option*1Barotrauma*Networking*P2PEndpoint
+---@return Barotrauma.Networking.GameServer
+_G['GameServer'] = function(name, listenIp, port, queryPort, isPublic, password, attemptUPnP, maxPlayers, ownerKey, ownerEndpoint) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Networking.GameServer
+---@param name System.String
+---@param listenIp System.Net.IPAddress
+---@param port System.Int32
+---@param queryPort System.Int32
+---@param isPublic System.Boolean
+---@param password System.String
+---@param attemptUPnP System.Boolean
+---@param maxPlayers System.Int32
+---@param ownerKey Barotrauma.Option*1System*Int32
+---@param ownerEndpoint Barotrauma.Option*1Barotrauma*Networking*P2PEndpoint
+---@return Barotrauma.Networking.GameServer
+_G['GameServer'].__new = function(name, listenIp, port, queryPort, isPublic, password, attemptUPnP, maxPlayers, ownerKey, ownerEndpoint) end
+
diff --git a/Meta/Types/server/_00007FFD96971340.lua b/Meta/Types/server/_00007FFD96971340.lua
new file mode 100644
index 0000000..91753c5
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96971340.lua
@@ -0,0 +1,51 @@
+---@meta
+---@class Barotrauma.Networking.ServerPeer : System.Object
+---`Field NonPublic Instance`
+---@field callbacks Barotrauma.Networking.ServerPeer.Callbacks
+_G['ServerPeer'] = {}
+
+---`Method Public Instance Abstract Virtual`
+_G['ServerPeer'].Start = function() end
+
+---`Method Public Instance Abstract Virtual`
+_G['ServerPeer'].Close = function() end
+
+---`Method Public Instance Abstract Virtual`
+---@param deltaTime System.Single
+_G['ServerPeer'].Update = function(deltaTime) end
+
+---`Method Public Instance Abstract Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param conn Barotrauma.Networking.NetworkConnection
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@param compressPastThreshold? System.Boolean
+_G['ServerPeer'].Send = function(msg, conn, deliveryMethod, compressPastThreshold) end
+
+---`Method Public Instance Abstract Virtual`
+---@param conn Barotrauma.Networking.NetworkConnection
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['ServerPeer'].Disconnect = function(conn, peerDisconnectPacket) end
+
+---`Method Private Instance`
+---@param conn Barotrauma.Networking.NetworkConnection
+_G['ServerPeer'].LogMalformedMessage = function(conn) end
+
+---`Method NonPublic Static`
+_G['ServerPeer'].LogMalformedMessage = function() end
+
+---`Method NonPublic Instance`
+---@param serverSettings Barotrauma.Networking.ServerSettings
+---@param connection Barotrauma.Networking.NetworkConnection
+---@return System.Boolean
+_G['ServerPeer'].ShouldAskForPassword = function(serverSettings, connection) end
+
+---`Constructor NonPublic Instance`
+---@param callbacks Barotrauma.Networking.ServerPeer.Callbacks
+---@return Barotrauma.Networking.ServerPeer
+_G['ServerPeer'] = function(callbacks) end
+
+---`Constructor NonPublic Instance`
+---@param callbacks Barotrauma.Networking.ServerPeer.Callbacks
+---@return Barotrauma.Networking.ServerPeer
+_G['ServerPeer'].__new = function(callbacks) end
+
diff --git a/Meta/Types/server/_00007FFD96971B18.lua b/Meta/Types/server/_00007FFD96971B18.lua
new file mode 100644
index 0000000..de70267
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96971B18.lua
@@ -0,0 +1,98 @@
+---@meta
+---@class Barotrauma.Networking.LidgrenServerPeer : Barotrauma.Networking.ServerPeer*1Barotrauma*Networking*LidgrenConnection
+---`Field Private Instance`
+---@field netPeerConfiguration Lidgren.Network.NetPeerConfiguration
+---`Field Private Instance`
+---@field authenticators (System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Networking*AuthenticationTicketKind*1Barotrauma*Networking*Authenticator)|({[Barotrauma.Networking.AuthenticationTicketKind]:(Barotrauma.Networking.Authenticator)})
+---`Field Private Instance`
+---@field netServer Lidgren.Network.NetServer
+---`Field Private Instance`
+---@field incomingLidgrenMessages (System.Collections.Generic.List*1Lidgren*Network*NetIncomingMessage)|(Lidgren.Network.NetIncomingMessage[])
+_G['LidgrenServerPeer'] = {}
+
+---`Method Public Instance Virtual`
+_G['LidgrenServerPeer'].Start = function() end
+
+---`Method Public Instance Virtual`
+_G['LidgrenServerPeer'].Close = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['LidgrenServerPeer'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+_G['LidgrenServerPeer'].InitUPnP = function() end
+
+---`Method Private Instance`
+---@return System.Boolean
+_G['LidgrenServerPeer'].DiscoveringUPnP = function() end
+
+---`Method Private Instance`
+_G['LidgrenServerPeer'].FinishUPnP = function() end
+
+---`Method Private Instance`
+---@param inc Lidgren.Network.NetIncomingMessage
+_G['LidgrenServerPeer'].HandleConnection = function(inc) end
+
+---`Method Private Instance`
+---@param lidgrenMsg Lidgren.Network.NetIncomingMessage
+_G['LidgrenServerPeer'].HandleDataMessage = function(lidgrenMsg) end
+
+---`Method Private Instance`
+---@param inc Lidgren.Network.NetIncomingMessage
+_G['LidgrenServerPeer'].HandleStatusChanged = function(inc) end
+
+---`Method Private Instance`
+---@param steamId Steamworks.SteamId
+---@param ownerId Steamworks.SteamId
+---@param status Steamworks.AuthResponse
+_G['LidgrenServerPeer'].OnSteamAuthChange = function(steamId, ownerId, status) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param conn Barotrauma.Networking.NetworkConnection
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@param compressPastThreshold? System.Boolean
+_G['LidgrenServerPeer'].Send = function(msg, conn, deliveryMethod, compressPastThreshold) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Networking.NetworkConnection
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['LidgrenServerPeer'].Disconnect = function(conn, peerDisconnectPacket) end
+
+---`Method NonPublic Instance Virtual`
+---@param conn Barotrauma.Networking.LidgrenConnection
+---@param headers Barotrauma.Networking.PeerPacketHeaders
+---@param body Barotrauma.INetSerializableStruct
+_G['LidgrenServerPeer'].SendMsgInternal = function(conn, headers, body) end
+
+---`Method NonPublic Instance Virtual`
+---@param pendingClient Barotrauma.Networking.ServerPeer.PendingClient*1Barotrauma*Networking*LidgrenConnection
+_G['LidgrenServerPeer'].CheckOwnership = function(pendingClient) end
+
+---`Method NonPublic Instance Virtual`
+---@param packet Barotrauma.Networking.ClientAuthTicketAndVersionPacket
+---@param pendingClient Barotrauma.Networking.ServerPeer.PendingClient*1Barotrauma*Networking*LidgrenConnection
+_G['LidgrenServerPeer'].ProcessAuthTicket = function(packet, pendingClient) end
+
+---`Method Private Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param connection Barotrauma.Networking.NetworkConnection
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@return Lidgren.Network.NetSendResult
+_G['LidgrenServerPeer'].ForwardToLidgren = function(msg, connection, deliveryMethod) end
+
+---`Constructor Public Instance`
+---@param ownKey Barotrauma.Option*1System*Int32
+---@param settings Barotrauma.Networking.ServerSettings
+---@param callbacks Barotrauma.Networking.ServerPeer.Callbacks
+---@return Barotrauma.Networking.LidgrenServerPeer
+_G['LidgrenServerPeer'] = function(ownKey, settings, callbacks) end
+
+---`Constructor Public Instance`
+---@param ownKey Barotrauma.Option*1System*Int32
+---@param settings Barotrauma.Networking.ServerSettings
+---@param callbacks Barotrauma.Networking.ServerPeer.Callbacks
+---@return Barotrauma.Networking.LidgrenServerPeer
+_G['LidgrenServerPeer'].__new = function(ownKey, settings, callbacks) end
+
diff --git a/Meta/Types/server/_00007FFD969724F0.lua b/Meta/Types/server/_00007FFD969724F0.lua
new file mode 100644
index 0000000..0a1f912
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969724F0.lua
@@ -0,0 +1,76 @@
+---@meta
+---@class Barotrauma.Networking.P2PServerPeer : Barotrauma.Networking.ServerPeer*1Barotrauma*Networking*P2PConnection
+---`Field Private Instance`
+---@field started System.Boolean
+---`Field Private Instance`
+---@field ownerEndpoint Barotrauma.Networking.P2PEndpoint
+_G['P2PServerPeer'] = {}
+
+---`Method Public Instance Virtual`
+_G['P2PServerPeer'].Start = function() end
+
+---`Method Public Instance Virtual`
+_G['P2PServerPeer'].Close = function() end
+
+---`Method Public Instance Virtual`
+---@param deltaTime System.Single
+_G['P2PServerPeer'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+_G['P2PServerPeer'].HandleDataMessage = function(inc) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param conn Barotrauma.Networking.NetworkConnection
+---@param deliveryMethod Barotrauma.Networking.DeliveryMethod
+---@param compressPastThreshold? System.Boolean
+_G['P2PServerPeer'].Send = function(msg, conn, deliveryMethod, compressPastThreshold) end
+
+---`Method Private Instance`
+---@param endpoint Barotrauma.Networking.P2PEndpoint
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['P2PServerPeer'].SendDisconnectMessage = function(endpoint, peerDisconnectPacket) end
+
+---`Method Public Instance Virtual`
+---@param conn Barotrauma.Networking.NetworkConnection
+---@param peerDisconnectPacket Barotrauma.Networking.PeerDisconnectPacket
+_G['P2PServerPeer'].Disconnect = function(conn, peerDisconnectPacket) end
+
+---`Method NonPublic Instance Virtual`
+---@param conn Barotrauma.Networking.P2PConnection
+---@param headers Barotrauma.Networking.PeerPacketHeaders
+---@param body Barotrauma.INetSerializableStruct
+_G['P2PServerPeer'].SendMsgInternal = function(conn, headers, body) end
+
+---`Method Private Instance`
+---@param connEndpoint Barotrauma.Networking.P2PEndpoint
+---@param headers Barotrauma.Networking.PeerPacketHeaders
+---@param body Barotrauma.INetSerializableStruct
+_G['P2PServerPeer'].SendMsgInternal = function(connEndpoint, headers, body) end
+
+---`Method Private Static`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['P2PServerPeer'].ForwardToOwnerProcess = function(msg) end
+
+---`Method NonPublic Instance Virtual`
+---@param packet Barotrauma.Networking.ClientAuthTicketAndVersionPacket
+---@param pendingClient Barotrauma.Networking.ServerPeer.PendingClient*1Barotrauma*Networking*P2PConnection
+_G['P2PServerPeer'].ProcessAuthTicket = function(packet, pendingClient) end
+
+---`Constructor Public Instance`
+---@param ownerEp Barotrauma.Networking.P2PEndpoint
+---@param ownerKey System.Int32
+---@param settings Barotrauma.Networking.ServerSettings
+---@param callbacks Barotrauma.Networking.ServerPeer.Callbacks
+---@return Barotrauma.Networking.P2PServerPeer
+_G['P2PServerPeer'] = function(ownerEp, ownerKey, settings, callbacks) end
+
+---`Constructor Public Instance`
+---@param ownerEp Barotrauma.Networking.P2PEndpoint
+---@param ownerKey System.Int32
+---@param settings Barotrauma.Networking.ServerSettings
+---@param callbacks Barotrauma.Networking.ServerPeer.Callbacks
+---@return Barotrauma.Networking.P2PServerPeer
+_G['P2PServerPeer'].__new = function(ownerEp, ownerKey, settings, callbacks) end
+
diff --git a/Meta/Types/server/_00007FFD969728A0.lua b/Meta/Types/server/_00007FFD969728A0.lua
new file mode 100644
index 0000000..8bde285
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969728A0.lua
@@ -0,0 +1,61 @@
+---@meta
+---@class Barotrauma.Networking.FileSender : System.Object
+---`Field Public Instance`
+---@field OnStarted (Barotrauma.Networking.FileSender.FileTransferDelegate)|(fun(fileStreamReceiver:Barotrauma.Networking.FileSender.FileTransferOut))
+---`Field Public Instance`
+---@field OnEnded (Barotrauma.Networking.FileSender.FileTransferDelegate)|(fun(fileStreamReceiver:Barotrauma.Networking.FileSender.FileTransferOut))
+---`Field Private Instance`
+---@field activeTransfers (System.Collections.Generic.List*1Barotrauma*Networking*FileSender*FileTransferOut)|(Barotrauma.Networking.FileSender.FileTransferOut[])
+---`Field Private Instance`
+---@field chunkLen System.Int32
+---`Field Private Instance`
+---@field peer Barotrauma.Networking.ServerPeer
+---`Field Public Static`
+---@field StartTime System.DateTime
+---`Field Private Static`
+---@field MaxTransferCount System.Int32
+---`Field Private Static`
+---@field MaxTransferCountPerRecipient System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceMinimumFileTransferDuration System.Single
+---`Getter Public Instance`
+---@field ActiveTransfers (System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*FileSender*FileTransferOut)|(Barotrauma.Networking.FileSender.FileTransferOut[])
+_G['FileSender'] = {}
+
+---`Method Public Instance`
+---@param recipient Barotrauma.Networking.NetworkConnection
+---@param fileType Barotrauma.Networking.FileTransferType
+---@param filePath System.String
+---@return Barotrauma.Networking.FileSender.FileTransferOut
+_G['FileSender'].StartTransfer = function(recipient, fileType, filePath) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['FileSender'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param transfer Barotrauma.Networking.FileSender.FileTransferOut
+_G['FileSender'].Send = function(transfer) end
+
+---`Method Public Instance`
+---@param transfer Barotrauma.Networking.FileSender.FileTransferOut
+_G['FileSender'].CancelTransfer = function(transfer) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param client Barotrauma.Networking.Client
+_G['FileSender'].ReadFileRequest = function(inc, client) end
+
+---`Constructor Public Instance`
+---@param serverPeer Barotrauma.Networking.ServerPeer
+---@param mtu System.Int32
+---@return Barotrauma.Networking.FileSender
+_G['FileSender'] = function(serverPeer, mtu) end
+
+---`Constructor Public Instance`
+---@param serverPeer Barotrauma.Networking.ServerPeer
+---@param mtu System.Int32
+---@return Barotrauma.Networking.FileSender
+_G['FileSender'].__new = function(serverPeer, mtu) end
+
diff --git a/Meta/Types/server/_00007FFD96972B90.lua b/Meta/Types/server/_00007FFD96972B90.lua
new file mode 100644
index 0000000..22fc57c
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96972B90.lua
@@ -0,0 +1,56 @@
+---@meta
+---@class Barotrauma.Key : System.Object
+---`Field Private Instance`
+---@field hit System.Boolean
+---`Field Private Instance`
+---@field hitQueue System.Boolean
+---`Field Private Instance`
+---@field held System.Boolean
+---`Field Private Instance`
+---@field heldQueue System.Boolean
+---`Field Private Instance`
+---@field inputType Barotrauma.InputType
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Hit System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field Held System.Boolean
+---`Getter Public Instance`
+---@field GetHeldQueue System.Boolean
+---`Getter Public Instance`
+---@field GetHitQueue System.Boolean
+_G['Key'] = {}
+
+---`Method Public Instance`
+---@param hit System.Boolean
+---@param held System.Boolean
+_G['Key'].SetState = function(hit, held) end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Key'].DequeueHit = function() end
+
+---`Method Public Instance`
+---@return System.Boolean
+_G['Key'].DequeueHeld = function() end
+
+---`Method Public Instance`
+_G['Key'].Reset = function() end
+
+---`Method Public Instance`
+_G['Key'].ResetHit = function() end
+
+---`Method Public Instance`
+_G['Key'].ResetHeld = function() end
+
+---`Constructor Public Instance`
+---@param inputType Barotrauma.InputType
+---@return Barotrauma.Key
+_G['Key'] = function(inputType) end
+
+---`Constructor Public Instance`
+---@param inputType Barotrauma.InputType
+---@return Barotrauma.Key
+_G['Key'].__new = function(inputType) end
+
diff --git a/Meta/Types/server/_00007FFD96972C90.lua b/Meta/Types/server/_00007FFD96972C90.lua
new file mode 100644
index 0000000..b6f8b0b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96972C90.lua
@@ -0,0 +1,8 @@
+---@meta
+---@class Barotrauma.NumberType : System.Enum
+---`Field Public Static`
+---@field Int Barotrauma.NumberType
+---`Field Public Static`
+---@field Float Barotrauma.NumberType
+_G['NumberType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96972F30.lua b/Meta/Types/server/_00007FFD96972F30.lua
new file mode 100644
index 0000000..f7c7b21
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96972F30.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Networking.VoipConfig : System.Object
+---`Field Public Static`
+---@field SEND_INTERVAL System.TimeSpan
+---`Field Public Static`
+---@field MAX_COMPRESSED_SIZE System.Int32
+---`Field Public Static`
+---@field FREQUENCY System.Int32
+---`Field Public Static`
+---@field BITRATE System.Int32
+---`Field Public Static`
+---@field BUFFER_SIZE System.Int32
+_G['VoipConfig'] = {}
+
+---`Method Public Static`
+---@return Concentus.Structs.OpusDecoder
+_G['VoipConfig'].CreateDecoder = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.VoipConfig
+_G['VoipConfig'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.Networking.VoipConfig
+_G['VoipConfig'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96973260.lua b/Meta/Types/server/_00007FFD96973260.lua
new file mode 100644
index 0000000..d79b390
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96973260.lua
@@ -0,0 +1,74 @@
+---@meta
+---@class Barotrauma.Networking.VoipQueue : System.Object
+---`Field NonPublic Instance`
+---@field bufferLengths (System.Int32-arr)|(System.Int32[])
+---`Field NonPublic Instance`
+---@field buffers (System.Byte-arr-arr)|((System.Byte-arr)|(System.Byte[])[])
+---`Field NonPublic Instance`
+---@field newestBufferInd System.Int32
+---`Field NonPublic Instance`
+---@field firstRead System.Boolean
+---`Field Public Static`
+---@field BUFFER_COUNT System.Int32
+---`Getter Public Instance`
+---@field EnqueuedTotalLength System.Int32
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field BufferToQueue (System.Byte-arr)|(System.Byte[])
+---`Getter Public Instance Virtual`
+---
`Setter NonPublic Instance Virtual`
+---@field QueueID System.Byte
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field LatestBufferID System.UInt16
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field CanSend System.Boolean
+---`Getter Public Instance`
+---
`Setter NonPublic Instance`
+---@field CanReceive System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ForceLocal System.Boolean
+---`Getter Public Instance`
+---
`Setter Private Instance`
+---@field LastReadTime System.DateTime
+_G['VoipQueue'] = {}
+
+---`Method Public Instance`
+---@param length System.Int32
+_G['VoipQueue'].EnqueueBuffer = function(length) end
+
+---`Method Public Instance`
+---@param id System.Int32
+---@param outSize System.Int32-ref
+---@param outBuf System.Byte-arr-ref
+_G['VoipQueue'].RetrieveBuffer = function(id, outSize, outBuf) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['VoipQueue'].Write = function(msg) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IReadMessage
+---@param discardData? System.Boolean
+---@return System.Boolean
+_G['VoipQueue'].Read = function(msg, discardData) end
+
+---`Method Public Instance Virtual`
+_G['VoipQueue'].Dispose = function() end
+
+---`Constructor Public Instance`
+---@param id System.Byte
+---@param canSend System.Boolean
+---@param canReceive System.Boolean
+---@return Barotrauma.Networking.VoipQueue
+_G['VoipQueue'] = function(id, canSend, canReceive) end
+
+---`Constructor Public Instance`
+---@param id System.Byte
+---@param canSend System.Boolean
+---@param canReceive System.Boolean
+---@return Barotrauma.Networking.VoipQueue
+_G['VoipQueue'].__new = function(id, canSend, canReceive) end
+
diff --git a/Meta/Types/server/_00007FFD96973488.lua b/Meta/Types/server/_00007FFD96973488.lua
new file mode 100644
index 0000000..9257af3
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96973488.lua
@@ -0,0 +1,44 @@
+---@meta
+---@class Barotrauma.Networking.VoipServer : System.Object
+---`Field Private Instance`
+---@field netServer Barotrauma.Networking.ServerPeer
+---`Field Private Instance`
+---@field queues (System.Collections.Generic.List*1Barotrauma*Networking*VoipQueue)|(Barotrauma.Networking.VoipQueue[])
+---`Field Private Instance`
+---@field lastSendTime (System.Collections.Generic.Dictionary*1Barotrauma*Networking*VoipQueue*1System*DateTime)|({[Barotrauma.Networking.VoipQueue]:(System.DateTime)})
+_G['VoipServer'] = {}
+
+---`Method Public Instance`
+---@param queue Barotrauma.Networking.VoipQueue
+_G['VoipServer'].RegisterQueue = function(queue) end
+
+---`Method Public Instance`
+---@param queue Barotrauma.Networking.VoipQueue
+_G['VoipServer'].UnregisterQueue = function(queue) end
+
+---`Method Public Instance`
+---@param clients (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+_G['VoipServer'].SendToClients = function(clients) end
+
+---`Method Private Static`
+---@param sender Barotrauma.Networking.Client
+---@param recipient Barotrauma.Networking.Client
+---@param distanceFactor System.Single-ref
+---@return System.Boolean
+_G['VoipServer'].CanReceive = function(sender, recipient, distanceFactor) end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param connectedClient Barotrauma.Networking.Client
+_G['VoipServer'].Read = function(inc, connectedClient) end
+
+---`Constructor Public Instance`
+---@param server Barotrauma.Networking.ServerPeer
+---@return Barotrauma.Networking.VoipServer
+_G['VoipServer'] = function(server) end
+
+---`Constructor Public Instance`
+---@param server Barotrauma.Networking.ServerPeer
+---@return Barotrauma.Networking.VoipServer
+_G['VoipServer'].__new = function(server) end
+
diff --git a/Meta/Types/server/_00007FFD969740E8.lua b/Meta/Types/server/_00007FFD969740E8.lua
new file mode 100644
index 0000000..62a1cd7
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969740E8.lua
@@ -0,0 +1,246 @@
+---@meta
+---@class Barotrauma.KarmaManager : System.Object
+---`Field Public Instance`
+---@field TestMode System.Boolean
+---`Field Private Instance`
+---@field clientMemories (System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1Barotrauma*KarmaManager*ClientMemory)|({[Barotrauma.Networking.Client]:(Barotrauma.KarmaManager.ClientMemory)})
+---`Field Private Instance`
+---@field bannedClients (System.Collections.Generic.List*1Barotrauma*Networking*Client)|(Barotrauma.Networking.Client[])
+---`Field Private Instance`
+---@field perSecondUpdate System.DateTime
+---`Field Private Instance`
+---@field allowedWireDisconnectionsPerMinute System.Int32
+---`Field Private Instance`
+---@field herpesAffliction Barotrauma.AfflictionPrefab
+---`Field Public Instance`
+---@field Presets (System.Collections.Generic.Dictionary*1System*String*1System*Xml*Linq*XElement)|({[System.String]:(System.Xml.Linq.XElement)})
+---`Field Public Static`
+---@field ConfigFile System.String
+---`Getter Public Instance Virtual`
+---@field Name System.String
+---`Getter Public Instance Virtual`
+---
`Setter Private Instance`
+---@field SerializableProperties (System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ResetKarmaBetweenRounds System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaDecay System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaDecayThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaIncreaseThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureRepairKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StructureDamageKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxStructureDamageKarmaDecreasePerSecond System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ItemRepairKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReactorOverheatKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ReactorMeltdownKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageEnemyKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HealFriendlyKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DamageFriendlyKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StunFriendlyKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field StunFriendlyKarmaDecreaseThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field ExtinguishFireKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DangerousItemStealKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DangerousItemStealBots System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field BallastFloraKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowedWireDisconnectionsPerMinute System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field WireDisconnectionKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SteerSubKarmaIncrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field SpamFilterKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field HerpesThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KickBanThreshold System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KicksBeforeBan System.Int32
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field KarmaNotificationInterval System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field AllowedRetaliationTime System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field DangerousItemContainKarmaDecrease System.Single
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field IsDangerousItemContainKarmaDecreaseIncremental System.Boolean
+---`Getter Public Instance`
+---
`Setter Public Instance`
+---@field MaxDangerousItemContainKarmaDecrease System.Single
+_G['KarmaManager'] = {}
+
+---`Method Public Instance`
+---@param presetName System.String
+_G['KarmaManager'].SelectPreset = function(presetName) end
+
+---`Method Public Instance`
+_G['KarmaManager'].SaveCustomPreset = function() end
+
+---`Method Public Instance`
+_G['KarmaManager'].Save = function() end
+
+---`Method Public Instance`
+---@param clients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@param deltaTime System.Single
+_G['KarmaManager'].UpdateClients = function(clients, deltaTime) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@param debugKarmaChangeReason? System.String
+_G['KarmaManager'].SendKarmaNotifications = function(client, debugKarmaChangeReason) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@param deltaTime System.Single
+_G['KarmaManager'].UpdateClient = function(client, deltaTime) end
+
+---`Method Public Instance`
+_G['KarmaManager'].OnRoundEnded = function() end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['KarmaManager'].OnClientDisconnected = function(client) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param damage System.Single
+_G['KarmaManager'].OnBallastFloraDamaged = function(character, damage) end
+
+---`Method Public Instance`
+---@param inventory Barotrauma.CharacterInventory
+---@param yoinker Barotrauma.Networking.Client
+---@param item Barotrauma.Item
+_G['KarmaManager'].OnItemTakenFromPlayer = function(inventory, yoinker, item) end
+
+---`Method Public Instance`
+---@param target Barotrauma.Character
+---@param attacker Barotrauma.Character
+---@param damage System.Single
+---@param stun System.Single
+---@param appliedAfflictions? (System.Collections.Generic.IEnumerable*1Barotrauma*Affliction)|(fun():(Barotrauma.Affliction))
+_G['KarmaManager'].OnCharacterHealthChanged = function(target, attacker, damage, stun, appliedAfflictions) end
+
+---`Method Public Instance`
+---@param structure Barotrauma.Structure
+---@param attacker Barotrauma.Character
+---@param damageAmount System.Single
+_G['KarmaManager'].OnStructureHealthChanged = function(structure, attacker, damageAmount) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param repairable Barotrauma.Items.Components.Repairable
+---@param repairAmount System.Single
+_G['KarmaManager'].OnItemRepaired = function(character, repairable, repairAmount) end
+
+---`Method Public Instance`
+---@param reactor Barotrauma.Item
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+_G['KarmaManager'].OnReactorOverHeating = function(reactor, character, deltaTime) end
+
+---`Method Public Instance`
+---@param reactor Barotrauma.Item
+---@param character Barotrauma.Character
+_G['KarmaManager'].OnReactorMeltdown = function(reactor, character) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param deltaTime System.Single
+_G['KarmaManager'].OnExtinguishingFire = function(character, deltaTime) end
+
+---`Method Public Instance`
+---@param character Barotrauma.Character
+---@param wire Barotrauma.Items.Components.Wire
+_G['KarmaManager'].OnWireDisconnected = function(character, wire) end
+
+---`Method Private Instance`
+---@param client Barotrauma.Networking.Client
+---@return Barotrauma.KarmaManager.ClientMemory
+_G['KarmaManager'].GetClientMemory = function(client) end
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+_G['KarmaManager'].OnSpamFilterTriggered = function(client) end
+
+---`Method Public Instance`
+---@param containedItem Barotrauma.Item
+---@param container Barotrauma.Item
+---@param character Barotrauma.Character
+_G['KarmaManager'].OnItemContained = function(containedItem, container, character) end
+
+---`Method Private Instance`
+---@param target Barotrauma.Character
+---@param amount System.Single
+---@param debugKarmaChangeReason? System.String
+_G['KarmaManager'].AdjustKarma = function(target, amount, debugKarmaChangeReason) end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'].__new = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.KarmaManager
+---@return Barotrauma.KarmaManager
+_G['KarmaManager'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969746B8.lua b/Meta/Types/server/_00007FFD969746B8.lua
new file mode 100644
index 0000000..f579fcf
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969746B8.lua
@@ -0,0 +1,201 @@
+---@meta
+---@class Barotrauma.Networking.RespawnManager : Barotrauma.Entity
+---`Field Private Instance`
+---@field shuttleEmptyTimer System.Single
+---`Field Private Instance`
+---@field networkMember Barotrauma.Networking.NetworkMember
+---`Field Private Instance`
+---@field shuttleSteering (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Steering)|({[Barotrauma.CharacterTeamType]:((System.Collections.Generic.List*1Barotrauma*Items*Components*Steering)|(Barotrauma.Items.Components.Steering[]))})
+---`Field Private Instance`
+---@field shuttleDoors (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Door)|({[Barotrauma.CharacterTeamType]:((System.Collections.Generic.List*1Barotrauma*Items*Components*Door)|(Barotrauma.Items.Components.Door[]))})
+---`Field Private Instance`
+---@field respawnContainers (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*ItemContainer)|({[Barotrauma.CharacterTeamType]:((System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer)|(Barotrauma.Items.Components.ItemContainer[]))})
+---`Field Private Instance`
+---@field teamSpecificStates (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Networking*RespawnManager*TeamSpecificState)|({[Barotrauma.CharacterTeamType]:(Barotrauma.Networking.RespawnManager.TeamSpecificState)})
+---`Field Private Instance`
+---@field maxTransportTime System.Single
+---`Field Private Instance`
+---@field updateReturnTimer System.Single
+---`Field Private Instance`
+---@field respawnShuttles (System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Submarine)|({[Barotrauma.CharacterTeamType]:(Barotrauma.Submarine)})
+---`Getter Public Instance`
+---@field IsShuttleInsideLevel System.Boolean
+---`Getter Public Static`
+---@field SkillLossPercentageOnDeath System.Single
+---`Getter Public Static`
+---@field SkillLossPercentageOnImmediateRespawn System.Single
+---`Getter Public Static`
+---@field UseDeathPrompt System.Boolean
+---`Getter Public Instance`
+---@field UsingShuttle System.Boolean
+---`Getter Public Instance`
+---@field RespawnShuttles (System.Collections.Generic.IEnumerable*1Barotrauma*Submarine)|(fun():(Barotrauma.Submarine))
+_G['RespawnManager'] = {}
+
+---`Method Private Instance`
+---@param teamId Barotrauma.CharacterTeamType
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+_G['RespawnManager'].GetClientsToRespawn = function(teamId) end
+
+---`Method Private Static`
+---@param c Barotrauma.Networking.Client
+---@return System.Boolean
+_G['RespawnManager'].IsRespawnDecisionPendingForClient = function(c) end
+
+---`Method Private Static`
+---@param teamId Barotrauma.CharacterTeamType
+---@return (System.Collections.Generic.List*1Barotrauma*CharacterInfo)|(Barotrauma.CharacterInfo[])
+_G['RespawnManager'].GetBotsToRespawn = function(teamId) end
+
+---`Method Private Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return System.String
+_G['RespawnManager'].GetRespawnShuttleText = function(team) end
+
+---`Method Private Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return System.String
+_G['RespawnManager'].GetTeamNameText = function(team) end
+
+---`Method Private Instance`
+---@overload fun(teamSpecificState:Barotrauma.Networking.RespawnManager.TeamSpecificState):(System.Boolean)
+---@param characterToRespawnCount System.Int32
+---@return System.Boolean
+_G['RespawnManager'].ShouldStartRespawnCountdown = function(characterToRespawnCount) end
+
+---`Method Private Static`
+---@return System.Int32
+_G['RespawnManager'].GetMinCharactersToRespawn = function() end
+
+---`Method Public Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager'].DispatchShuttle = function(teamSpecificState) end
+
+---`Method Private Instance`
+---@param deltaTime System.Single
+---@return System.Boolean
+_G['RespawnManager'].CheckShuttleEmpty = function(deltaTime) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager'].RespawnCharacters = function(teamSpecificState) end
+
+---`Method Public Instance`
+---@param shuttlePos System.Nullable*1Microsoft*Xna*Framework*Vector2
+_G['RespawnManager'].RespawnCharacters = function(shuttlePos) end
+
+---`Method Public Static`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param applyExtraSkillLoss? System.Boolean
+_G['RespawnManager'].ReduceCharacterSkillsOnDeath = function(characterInfo, applyExtraSkillLoss) end
+
+---`Method Public Instance Virtual`
+---@param msg Barotrauma.Networking.IWriteMessage
+---@param c Barotrauma.Networking.Client
+---@param extraData? Barotrauma.Networking.NetEntityEvent.IData
+_G['RespawnManager'].ServerEventWrite = function(msg, c, extraData) end
+
+---`Method Public Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return System.Boolean
+_G['RespawnManager'].CanRespawnAgain = function(team) end
+
+---`Method Private Instance`
+---@param sender FarseerPhysics.Dynamics.Fixture
+---@param other FarseerPhysics.Dynamics.Fixture
+---@param contact FarseerPhysics.Dynamics.Contacts.Contact
+---@return System.Boolean
+_G['RespawnManager'].OnShuttleCollision = function(sender, other, contact) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['RespawnManager'].Update = function(deltaTime) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager'].UpdateWaiting = function(teamSpecificState) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+---@param deltaTime System.Single
+_G['RespawnManager'].UpdateTransporting = function(teamSpecificState, deltaTime) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+---@param deltaTime System.Single
+_G['RespawnManager'].UpdateTransportingProjSpecific = function(teamSpecificState, deltaTime) end
+
+---`Method Public Instance`
+_G['RespawnManager'].ForceRespawn = function() end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+---@param deltaTime System.Single
+_G['RespawnManager'].UpdateReturning = function(teamSpecificState, deltaTime) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+---@param deltaTime System.Single
+_G['RespawnManager'].UpdateReturningProjSpecific = function(teamSpecificState, deltaTime) end
+
+---`Method Public Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return Barotrauma.Submarine
+_G['RespawnManager'].GetShuttle = function(team) end
+
+---`Method Public Instance`
+---@param team Barotrauma.CharacterTeamType
+---@return Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager'].GetTeamSpecificState = function(team) end
+
+---`Method Private Instance`
+---@param teamSpecificState Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager'].ResetShuttle = function(teamSpecificState) end
+
+---`Method Public Static`
+---@param characterInfo Barotrauma.CharacterInfo
+---@param skill Barotrauma.Skill
+---@param skillLossPercentage System.Single
+---@param currentSkillLevel? System.Nullable*1System*Single
+---@return System.Single
+_G['RespawnManager'].GetReducedSkill = function(characterInfo, skill, skillLossPercentage, currentSkillLevel) end
+
+---`Method Public Static`
+---@return Barotrauma.AfflictionPrefab
+_G['RespawnManager'].GetRespawnPenaltyAfflictionPrefab = function() end
+
+---`Method Public Static`
+---@return Barotrauma.Affliction
+_G['RespawnManager'].GetRespawnPenaltyAffliction = function() end
+
+---`Method Public Static`
+---@param character Barotrauma.Character
+_G['RespawnManager'].GiveRespawnPenaltyAffliction = function(character) end
+
+---`Method Public Instance`
+---@param respawnShuttle Barotrauma.Submarine
+---@param mainSub Barotrauma.Submarine
+---@return Microsoft.Xna.Framework.Vector2
+_G['RespawnManager'].FindSpawnPos = function(respawnShuttle, mainSub) end
+
+---`Method Private Instance`
+---@param respawnShuttle Barotrauma.Submarine
+---@param minWidth System.Single
+---@param minHeight System.Single
+---@param minDistFromSubs System.Single
+---@param minDistFromCharacters System.Single
+---@return (System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition)|(Barotrauma.Level.InterestingPosition[])
+_G['RespawnManager'].FindValidSpawnPoints = function(respawnShuttle, minWidth, minHeight, minDistFromSubs, minDistFromCharacters) end
+
+---`Constructor Public Instance`
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param shuttleInfo Barotrauma.SubmarineInfo
+---@return Barotrauma.Networking.RespawnManager
+_G['RespawnManager'] = function(networkMember, shuttleInfo) end
+
+---`Constructor Public Instance`
+---@param networkMember Barotrauma.Networking.NetworkMember
+---@param shuttleInfo Barotrauma.SubmarineInfo
+---@return Barotrauma.Networking.RespawnManager
+_G['RespawnManager'].__new = function(networkMember, shuttleInfo) end
+
diff --git a/Meta/Types/server/_00007FFD96974768.lua b/Meta/Types/server/_00007FFD96974768.lua
new file mode 100644
index 0000000..17cbdca
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96974768.lua
@@ -0,0 +1,10 @@
+---@meta
+---@class Barotrauma.Networking.RespawnManager.State : System.Enum
+---`Field Public Static`
+---@field Waiting Barotrauma.Networking.RespawnManager.State
+---`Field Public Static`
+---@field Transporting Barotrauma.Networking.RespawnManager.State
+---`Field Public Static`
+---@field Returning Barotrauma.Networking.RespawnManager.State
+_G['RespawnManager']['State'] = {}
+
diff --git a/Meta/Types/server/_00007FFD969749D8.lua b/Meta/Types/server/_00007FFD969749D8.lua
new file mode 100644
index 0000000..5020e9a
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969749D8.lua
@@ -0,0 +1,42 @@
+---@meta
+---@class Barotrauma.Networking.RespawnManager.TeamSpecificState : System.Object
+---`Field Public Instance`
+---@field TeamID Barotrauma.CharacterTeamType
+---`Field Public Instance`
+---@field State Barotrauma.Networking.RespawnManager.State
+---`Field Public Instance`
+---@field RespawnedCharacters (System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])
+---`Field Public Instance`
+---@field RespawnTime System.DateTime
+---`Field Public Instance`
+---@field ReturnTime System.DateTime
+---`Field Public Instance`
+---@field DespawnTime System.DateTime
+---`Field Public Instance`
+---@field RespawnCountdownStarted System.Boolean
+---`Field Public Instance`
+---@field ReturnCountdownStarted System.Boolean
+---`Field Public Instance`
+---@field PendingRespawnCount System.Int32
+---`Field Public Instance`
+---@field RequiredRespawnCount System.Int32
+---`Field Public Instance`
+---@field PrevPendingRespawnCount System.Int32
+---`Field Public Instance`
+---@field PrevRequiredRespawnCount System.Int32
+---`Field Public Instance`
+---@field CurrentState Barotrauma.Networking.RespawnManager.State
+---`Field Public Instance`
+---@field RespawnItems (System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])
+_G['RespawnManager']['TeamSpecificState'] = {}
+
+---`Constructor Public Instance`
+---@param teamID Barotrauma.CharacterTeamType
+---@return Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager']['TeamSpecificState'] = function(teamID) end
+
+---`Constructor Public Instance`
+---@param teamID Barotrauma.CharacterTeamType
+---@return Barotrauma.Networking.RespawnManager.TeamSpecificState
+_G['RespawnManager']['TeamSpecificState'].__new = function(teamID) end
+
diff --git a/Meta/Types/server/_00007FFD96974C80.lua b/Meta/Types/server/_00007FFD96974C80.lua
new file mode 100644
index 0000000..8495b1b
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96974C80.lua
@@ -0,0 +1,105 @@
+---@meta
+---@class Barotrauma.Voting : System.Object
+---`Field Private Instance`
+---@field rejectedVoteCooldown System.TimeSpan
+---`Field Private Instance`
+---@field rejectedVoteTimes (System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1System*ValueTuple*2Barotrauma*Networking*VoteType*2System*DateTime)|({[Barotrauma.Networking.Client]:(System.ValueTuple*1Barotrauma*Networking*VoteType*1System*DateTime)})
+---`Field Public Static`
+---@field ActiveVote Barotrauma.Voting.IVote
+---`Field Private Static`
+---@field pendingVotes (System.Collections.Generic.Queue*1Barotrauma*Voting*IVote)|(fun():(Barotrauma.Voting.IVote))
+_G['Voting'] = {}
+
+---`Method Private Instance`
+---@param subInfo Barotrauma.SubmarineInfo
+---@param transferItems System.Boolean
+---@param voteType Barotrauma.Networking.VoteType
+---@param sender Barotrauma.Networking.Client
+_G['Voting'].StartSubmarineVote = function(subInfo, transferItems, voteType, sender) end
+
+---`Method Public Instance`
+---@param passed System.Boolean
+_G['Voting'].StopSubmarineVote = function(passed) end
+
+---`Method Public Instance`
+---@param passed System.Boolean
+_G['Voting'].StopMoneyTransferVote = function(passed) end
+
+---`Method Public Instance`
+---@param passed System.Boolean
+_G['Voting'].StopActiveVote = function(passed) end
+
+---`Method Public Instance`
+---@param starter Barotrauma.Networking.Client
+---@param from Barotrauma.Networking.Client
+---@param transferAmount System.Int32
+---@param to Barotrauma.Networking.Client
+_G['Voting'].StartTransferVote = function(starter, from, transferAmount, to) end
+
+---`Method Private Static`
+---@param vote Barotrauma.Voting.IVote
+_G['Voting'].StartOrEnqueueVote = function(vote) end
+
+---`Method Private Instance`
+---@param sender Barotrauma.Networking.Client
+---@param voteType Barotrauma.Networking.VoteType
+---@return System.Boolean
+_G['Voting'].ShouldRejectVote = function(sender, voteType) end
+
+---`Method NonPublic Instance`
+---@param vote Barotrauma.Voting.IVote
+_G['Voting'].RegisterRejectedVote = function(vote) end
+
+---`Method Public Instance`
+---@param deltaTime System.Single
+_G['Voting'].Update = function(deltaTime) end
+
+---`Method Public Static`
+---@param connectedClients (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@param resetKickVotes System.Boolean
+_G['Voting'].ResetVotes = function(connectedClients, resetKickVotes) end
+
+---`Method Public Instance`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+---@param dosProtection Barotrauma.DoSProtection
+_G['Voting'].ServerRead = function(inc, sender, dosProtection) end
+
+---`Method Public Instance`
+---@param msg Barotrauma.Networking.IWriteMessage
+_G['Voting'].ServerWrite = function(msg) end
+
+---`Method Private Static`
+---@param voteType Barotrauma.Networking.VoteType
+---@param voters (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@return (System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Voting*T*1System*Int32)|({[Barotrauma.Voting.T]:(System.Int32)})
+_G['Voting'].GetVoteCounts = function(voteType, voters) end
+
+---`Method Public Static`
+---@overload fun(voteType:Barotrauma.Networking.VoteType, voters:(System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))):(Barotrauma.Voting.T)
+---@param voteType Barotrauma.Networking.VoteType
+---@param voters (System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client)|(fun():(Barotrauma.Networking.Client))
+---@param voteCount System.Int32-ref
+---@return Barotrauma.Voting.T
+_G['Voting'].HighestVoted = function(voteType, voters, voteCount) end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Voting
+---@return Barotrauma.Voting
+_G['Voting'] = function() end
+
+---`Constructor Public Instance`
+---@overload fun():Barotrauma.Voting
+---@return Barotrauma.Voting
+_G['Voting'].__new = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Voting
+---@return Barotrauma.Voting
+_G['Voting'] = function() end
+
+---`Constructor Private Static`
+---@overload fun():Barotrauma.Voting
+---@return Barotrauma.Voting
+_G['Voting'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD96974DA8.lua b/Meta/Types/server/_00007FFD96974DA8.lua
new file mode 100644
index 0000000..b7cf350
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96974DA8.lua
@@ -0,0 +1,26 @@
+---@meta
+---@class Barotrauma.Networking.VoteType : System.Enum
+---`Field Public Static`
+---@field Unknown Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Sub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Mode Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field EndRound Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Kick Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field StartRound Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field PurchaseAndSwitchSub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field PurchaseSub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field SwitchSub Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field TransferMoney Barotrauma.Networking.VoteType
+---`Field Public Static`
+---@field Traitor Barotrauma.Networking.VoteType
+_G['VoteType'] = {}
+
diff --git a/Meta/Types/server/_00007FFD96975708.lua b/Meta/Types/server/_00007FFD96975708.lua
new file mode 100644
index 0000000..f577feb
--- /dev/null
+++ b/Meta/Types/server/_00007FFD96975708.lua
@@ -0,0 +1,317 @@
+---@meta
+---@class Barotrauma.DebugConsole : System.Object
+---`Field Private Static`
+---@field rateLimiter Barotrauma.RateLimiter
+---`Field Public Static`
+---@field QueuedCommands (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Private Static`
+---@field input System.String
+---`Field Private Static`
+---@field memoryIndex System.Int32
+---`Field Private Static`
+---@field commandMemory (System.Collections.Generic.List*1System*String)|(System.String[])
+---`Field Private Static`
+---@field queuedMessages (System.Collections.Concurrent.ConcurrentQueue*1Barotrauma*ColoredText)|(fun():(Barotrauma.ColoredText))
+---`Field Public Static`
+---@field MessageHandler Barotrauma.NamedEvent*1Barotrauma*ColoredText
+---`Field Public Static`
+---@field Messages (System.Collections.Generic.List*1Barotrauma*ColoredText)|(Barotrauma.ColoredText[])
+---`Field Private Static`
+---@field activeQuestionCallback (Barotrauma.DebugConsole.QuestionCallback)|(fun(answer:System.String))
+---`Field Private Static`
+---@field commands (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+---`Field Private Static`
+---@field currentAutoCompletedCommand System.String
+---`Field Private Static`
+---@field currentAutoCompletedIndex System.Int32
+---`Field Public Static`
+---@field CheatsEnabled System.Boolean
+---`Field Private Static`
+---@field unsavedMessages (System.Collections.Generic.List*1Barotrauma*ColoredText)|(Barotrauma.ColoredText[])
+---`Field Private Static`
+---@field messagesPerFile System.Int32
+---`Field Private Static`
+---@field loggedErrorIdentifiers (System.Collections.Generic.HashSet*1System*String)|(System.String[])
+---`Field Private Static`
+---@field MaxMessages System.Int32
+---`Field Public Static`
+---@field SavePath System.String
+---`Getter Public Static`
+---@field Commands (System.Collections.Generic.List*1Barotrauma*DebugConsole*Command)|(Barotrauma.DebugConsole.Command[])
+_G['DebugConsole'] = {}
+
+---`Method Public Static`
+_G['DebugConsole'].Update = function() end
+
+---`Method Public Static`
+---@param maxTime System.Int32
+_G['DebugConsole'].UpdateCommandLine = function(maxTime) end
+
+---`Method Private Static`
+---@param txt System.String
+_G['DebugConsole'].WriteAndResetLine = function(txt) end
+
+---`Method Private Static`
+---@param input System.String
+_G['DebugConsole'].RewriteInputToCommandLine = function(input) end
+
+---`Method Public Static`
+_G['DebugConsole'].Clear = function() end
+
+---`Method Private Static`
+---@param arg System.String
+---@return Barotrauma.Networking.Client
+_G['DebugConsole'].FindClient = function(arg) end
+
+---`Method Public Static`
+---@param names System.String
+---@param onClientRequestExecute (System.Action*1Barotrauma*Networking*Client*1Microsoft*Xna*Framework*Vector2*1System*String-arr)|(fun(arg1:Barotrauma.Networking.Client, arg2:Microsoft.Xna.Framework.Vector2, arg3:(System.String-arr)|(System.String[])))
+_G['DebugConsole'].AssignOnClientRequestExecute = function(names, onClientRequestExecute) end
+
+---`Method Private Static`
+_G['DebugConsole'].InitProjectSpecific = function() end
+
+---`Method Public Static`
+---@param inc Barotrauma.Networking.IReadMessage
+---@param sender Barotrauma.Networking.Client
+_G['DebugConsole'].ServerRead = function(inc, sender) end
+
+---`Method Public Static`
+---@param client Barotrauma.Networking.Client
+---@param cursorWorldPos Microsoft.Xna.Framework.Vector2
+---@param command System.String
+_G['DebugConsole'].ExecuteClientCommand = function(client, cursorWorldPos, command) end
+
+---`Method Private Static`
+---@param command Barotrauma.DebugConsole.Command
+_G['DebugConsole'].ShowHelpMessage = function(command) end
+
+---`Method Public Static`
+---@param names System.String
+---@param onExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+_G['DebugConsole'].AssignOnExecute = function(names, onExecute) end
+
+---`Method Private Static`
+---@param healedCharacter Barotrauma.Character
+---@param healAll System.Boolean
+_G['DebugConsole'].HealCharacter = function(healedCharacter, healAll) end
+
+---`Method Public Static`
+---@param command System.String
+---@param increment? System.Int32
+---@return System.String
+_G['DebugConsole'].AutoComplete = function(command, increment) end
+
+---`Method Public Static`
+_G['DebugConsole'].ResetAutoComplete = function() end
+
+---`Method Public Static`
+---@param inputtedCommands System.String
+_G['DebugConsole'].ExecuteCommand = function(inputtedCommands) end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListAvailableLocations = function() end
+
+---`Method Private Static`
+---@param locationName System.String
+---@param teleportPosition Microsoft.Xna.Framework.Vector2-ref
+---@return System.Boolean
+_G['DebugConsole'].TryFindTeleportPosition = function(locationName, teleportPosition) end
+
+---`Method Private Static`
+---@param submarineName System.String
+---@return Barotrauma.DebugConsole.TFile
+_G['DebugConsole'].GetSubmarineFile = function(submarineName) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile)|(Barotrauma.DebugConsole.TFile[])
+_G['DebugConsole'].GetContentFiles = function() end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile)|(Barotrauma.DebugConsole.TFile[])
+_G['DebugConsole'].GetSubmarineFiles = function() end
+
+---`Method Private Static`
+---@param path System.String
+---@return Barotrauma.ContentFile
+_G['DebugConsole'].GetContentFile = function(path) end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListContentFilePaths = function() end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListSubmarineFileNames = function() end
+
+---`Method Private Static`
+---@param characterList (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+---@return (System.Linq.IOrderedEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['DebugConsole'].SortSpawnedSpecies = function(characterList) end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].ListCharacterNames = function() end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].GetCharacterNames = function() end
+
+---`Method Private Static`
+---@return (System.String-arr)|(System.String[])
+_G['DebugConsole'].GetSpawnedSpeciesNames = function() end
+
+---`Method Private Static`
+---@overload fun(args:(System.String-arr)|(System.String[])):((System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character)))
+---@param speciesName System.String
+---@return (System.Collections.Generic.IEnumerable*1Barotrauma*Character)|(fun():(Barotrauma.Character))
+_G['DebugConsole'].FindMatchingSpecies = function(speciesName) end
+
+---`Method Private Static`
+---@param args (System.String-arr)|(System.String[])
+---@param ignoreRemotePlayers? System.Boolean
+---@param allowedRemotePlayer? Barotrauma.Networking.Client
+---@param botsOnly? System.Boolean
+---@return Barotrauma.Character
+_G['DebugConsole'].FindMatchingCharacter = function(args, ignoreRemotePlayers, allowedRemotePlayer, botsOnly) end
+
+---`Method Private Static`
+---@param cursorWorldPos Microsoft.Xna.Framework.Vector2
+---@param controlledCharacter Barotrauma.Character
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole'].TeleportCharacter = function(cursorWorldPos, controlledCharacter, args) end
+
+---`Method Public Static`
+---@param args (System.String-arr)|(System.String[])
+---@param cursorWorldPos Microsoft.Xna.Framework.Vector2
+---@param errorMsg System.String-ref
+_G['DebugConsole'].SpawnCharacter = function(args, cursorWorldPos, errorMsg) end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['DebugConsole'].GetSpawnPosParams = function() end
+
+---`Method Private Static`
+---@return (System.Collections.Generic.IEnumerable*1System*String)|(fun():(System.String))
+_G['DebugConsole'].GetItemNameOrIdParams = function() end
+
+---`Method Private Static`
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole'].TrySpawnItem = function(args) end
+
+---`Method Public Static`
+---@param args (System.String-arr)|(System.String[])
+---@param cursorPos Microsoft.Xna.Framework.Vector2
+---@param controlledCharacter Barotrauma.Character
+---@param errorMsg System.String-ref
+_G['DebugConsole'].SpawnItem = function(args, cursorPos, controlledCharacter, errorMsg) end
+
+---`Method Public Static`
+---@param error System.String
+_G['DebugConsole'].AddSafeError = function(error) end
+
+---`Method Public Static`
+---@param msg System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param contentPackage? Barotrauma.ContentPackage
+_G['DebugConsole'].LogError = function(msg, color, contentPackage) end
+
+---`Method Public Static`
+---@param command System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+_G['DebugConsole'].NewCommand = function(command, color) end
+
+---`Method Public Static`
+---@overload fun(msg:Barotrauma.LocalizedString, color?:System.Nullable*1Microsoft*Xna*Framework*Color, debugOnly?:System.Boolean)
+---@param msg System.String
+---@param color? System.Nullable*1Microsoft*Xna*Framework*Color
+---@param debugOnly? System.Boolean
+_G['DebugConsole'].NewMessage = function(msg, color, debugOnly) end
+
+---`Method Private Static`
+---@param msg System.String
+---@param color Microsoft.Xna.Framework.Color
+---@param isCommand System.Boolean
+---@param isError System.Boolean
+_G['DebugConsole'].NewMessage = function(msg, color, isCommand, isError) end
+
+---`Method Public Static`
+---@param question System.String
+---@param onAnswered (Barotrauma.DebugConsole.QuestionCallback)|(fun(answer:System.String))
+---@param args? (System.String-arr)|(System.String[])
+---@param argCount? System.Int32
+_G['DebugConsole'].ShowQuestionPrompt = function(question, onAnswered, args, argCount) end
+
+---`Method Private Static`
+---@param s System.String
+---@param timeSpan System.TimeSpan-ref
+---@return System.Boolean
+_G['DebugConsole'].TryParseTimeSpan = function(s, timeSpan) end
+
+---`Method Public Static`
+---@param commandName System.String
+---@return Barotrauma.DebugConsole.Command
+_G['DebugConsole'].FindCommand = function(commandName) end
+
+---`Method Public Static`
+---@overload fun(message:Barotrauma.LocalizedString)
+---@param message System.String
+_G['DebugConsole'].Log = function(message) end
+
+---`Method Public Static`
+---@param error Barotrauma.LocalizedString
+---@param e? System.Exception
+---@param contentPackage? Barotrauma.ContentPackage
+---@param createMessageBox? System.Boolean
+---@param appendStackTrace? System.Boolean
+_G['DebugConsole'].ThrowErrorLocalized = function(error, e, contentPackage, createMessageBox, appendStackTrace) end
+
+---`Method Public Static`
+---@param error System.String
+---@param e? System.Exception
+---@param contentPackage? Barotrauma.ContentPackage
+---@param createMessageBox? System.Boolean
+---@param appendStackTrace? System.Boolean
+_G['DebugConsole'].ThrowError = function(error, e, contentPackage, createMessageBox, appendStackTrace) end
+
+---`Method Public Static`
+---@param gaIdentifier System.String
+---@param errorMsg System.String
+_G['DebugConsole'].ThrowErrorAndLogToGA = function(gaIdentifier, errorMsg) end
+
+---`Method Public Static`
+---@param identifier System.String
+---@param errorMsg System.String
+---@param e? System.Exception
+_G['DebugConsole'].ThrowErrorOnce = function(identifier, errorMsg, e) end
+
+---`Method Public Static`
+---@param warning System.String
+---@param contentPackage? Barotrauma.ContentPackage
+_G['DebugConsole'].AddWarning = function(warning, contentPackage) end
+
+---`Method Private Static`
+---@param message System.String
+---@param contentPackage Barotrauma.ContentPackage
+---@return System.String
+_G['DebugConsole'].AddContentPackageInfoToMessage = function(message, contentPackage) end
+
+---`Method Public Static`
+_G['DebugConsole'].SaveLogs = function() end
+
+---`Method Private Static`
+---@param restrictions Barotrauma.EnemyTargetingRestrictions
+_G['DebugConsole'].ToggleEnemyAITargetingRestrictions = function(restrictions) end
+
+---`Method Public Static`
+_G['DebugConsole'].DeactivateCheats = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.DebugConsole
+_G['DebugConsole'] = function() end
+
+---`Constructor Private Static`
+---@return Barotrauma.DebugConsole
+_G['DebugConsole'].__new = function() end
+
diff --git a/Meta/Types/server/_00007FFD969758B0.lua b/Meta/Types/server/_00007FFD969758B0.lua
new file mode 100644
index 0000000..8453ab6
--- /dev/null
+++ b/Meta/Types/server/_00007FFD969758B0.lua
@@ -0,0 +1,48 @@
+---@meta
+---@class Barotrauma.DebugConsole.Command : System.Object
+---`Field Public Instance`
+---@field OnClientRequestExecute (System.Action*1Barotrauma*Networking*Client*1Microsoft*Xna*Framework*Vector2*1System*String-arr)|(fun(arg1:Barotrauma.Networking.Client, arg2:Microsoft.Xna.Framework.Vector2, arg3:(System.String-arr)|(System.String[])))
+---`Field Public Instance`
+---@field Names (System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])
+---`Field Public Instance`
+---@field Help System.String
+---`Field Public Instance`
+---@field OnExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+---`Field Public Instance`
+---@field GetValidArgs (System.Func*1System*String-arr-arr)|(fun():((System.String-arr-arr)|((System.String-arr)|(System.String[])[])))
+---`Field Public Instance`
+---@field IsCheat System.Boolean
+_G['DebugConsole']['Command'] = {}
+
+---`Method Public Instance`
+---@param client Barotrauma.Networking.Client
+---@param cursorWorldPos Microsoft.Xna.Framework.Vector2
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole']['Command'].ServerExecuteOnClientRequest = function(client, cursorWorldPos, args) end
+
+---`Method Public Instance`
+---@param args (System.String-arr)|(System.String[])
+_G['DebugConsole']['Command'].Execute = function(args) end
+
+---`Method Public Instance Virtual`
+---@return System.Int32
+_G['DebugConsole']['Command'].GetHashCode = function() end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param help System.String
+---@param onExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+---@param getValidArgs? (System.Func*1System*String-arr-arr)|(fun():((System.String-arr-arr)|((System.String-arr)|(System.String[])[])))
+---@param isCheat? System.Boolean
+---@return Barotrauma.DebugConsole.Command
+_G['DebugConsole']['Command'] = function(name, help, onExecute, getValidArgs, isCheat) end
+
+---`Constructor Public Instance`
+---@param name System.String
+---@param help System.String
+---@param onExecute (System.Action*1System*String-arr)|(fun(obj:(System.String-arr)|(System.String[])))
+---@param getValidArgs? (System.Func*1System*String-arr-arr)|(fun():((System.String-arr-arr)|((System.String-arr)|(System.String[])[])))
+---@param isCheat? System.Boolean
+---@return Barotrauma.DebugConsole.Command
+_G['DebugConsole']['Command'].__new = function(name, help, onExecute, getValidArgs, isCheat) end
+
diff --git a/Meta/Types/server/_0Global.lua b/Meta/Types/server/_0Global.lua
new file mode 100644
index 0000000..78cf747
--- /dev/null
+++ b/Meta/Types/server/_0Global.lua
@@ -0,0 +1,1949 @@
+---@meta
+
+---@class System.Type : System.Reflection.MemberInfo
+---@class System.Reflection.MemberInfo : System.Object
+---@class System.ValueType : System.Object
+---@class System.Char : System.ValueType
+---@class System.StringComparison : System.Enum
+---@class System.Enum : System.ValueType
+---@class System.Globalization.CultureInfo : System.Object
+---@class System.Globalization.CompareInfo : System.Object
+---@class System.Globalization.CompareOptions : System.Enum
+---@class System.ReadOnlySpan*1System*Char : System.ValueType, {[System.Int32]:System.Char-ref}
+---@class System.ReadOnlySpan*1System*Int32 : System.ValueType, {[System.Int32]:System.Int32-ref}
+---@class System.Int32-ref
+---@class System.StringSplitOptions : System.Enum
+---@class System.String-arr : System.Array
+---@class System.Array : System.Object, {[System.Int32]:System.Object}
+---@class System.Char-arr : System.Array
+---@class System.Collections.Generic.ValueListBuilder
+---@class System.Text.TrimType : System.Enum
+---@class System.Char-ptr
+---@class System.UInt32-ptr
+---@class System.Char-ref
+---@class System.Byte-ptr
+---@class System.Text.Encoding : System.Object
+---@class System.IFormatProvider
+---@class System.CharEnumerator : System.Object
+---@class System.Text.StringRuneEnumerator : System.ValueType
+---@class System.TypeCode : System.Enum
+---@class System.Text.NormalizationForm : System.Enum
+---@class System.Object-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*String
+---@class System.ParamsArray : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*String*T
+---@class System.String.T : System.Object
+---@class System.ReadOnlySpan*1System*String : System.ValueType, {[System.Int32]:System.String-ref}
+---@class System.Byte-ref
+---@class System.IntPtr : System.ValueType
+---@class System.SByte-ptr
+---@class System.String.TState : System.Object
+---@class System.Buffers.SpanAction*1System*Char*1System*String*TState : System.MulticastDelegate
+---@class System.MulticastDelegate : System.Delegate
+---@class System.Delegate : System.Object
+---@class System.Span*1System*Char : System.ValueType, {[System.Int32]:System.Char-ref}
+---@class System.Runtime.CompilerServices.DefaultInterpolatedStringHandler-ref
+---@class System.ReadOnlySpan
+---@class System.Boolean-ref
+---@class System.Globalization.NumberStyles : System.Enum
+---@class System.Globalization.NumberFormatInfo : System.Object
+---@class System.SByte-ref
+---@class System.Int16-ref
+---@class System.UInt16-ref
+---@class System.Int32.TOther : System.Object
+---@class System.UInt32-ref
+---@class System.Int64-ref
+---@class System.UInt64-ref
+---@class System.Single-ref
+---@class System.Double-ref
+---@class System.Globalization.TimeSpanStyles : System.Enum
+---@class System.TimeSpan-ref
+---@class System.IO.TextReader : System.MarshalByRefObject
+---@class System.MarshalByRefObject : System.Object
+---@class System.IO.TextWriter : System.MarshalByRefObject
+---@class System.ConsoleCancelEventHandler : System.MulticastDelegate
+---@class System.ConsoleCancelEventArgs : System.EventArgs
+---@class System.EventArgs : System.Object
+---@class System.Runtime.InteropServices.PosixSignalRegistration : System.Object
+---@class System.Runtime.CompilerServices.StrongBox*1System*Boolean : System.Object
+---@class System.ConsoleColor : System.Enum
+---@class System.Decimal : System.ValueType
+---@class System.Runtime.InteropServices.PosixSignalContext : System.Object
+---@class System.ConsoleKeyInfo : System.ValueType
+---@class System.IO.Stream : System.MarshalByRefObject
+---@class System.ValueTuple*1System*Int32*1System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Reflection.MethodBase : System.Reflection.MemberInfo
+---@class System.Collections.IDictionary : {[System.Object]:System.Object}
+---@class System.Byte-arr : System.Array
+---@class System.UIntPtr : System.ValueType
+---@class System.IRuntimeMethodInfo
+---@class System.Runtime.Serialization.StreamingContext : System.ValueType
+---@class System.Byte-arr-ref
+---@class System.Object-arr-ref
+---@class System.DispatchState-ref
+---@class System.Exception.ExceptionMessageKind : System.Enum
+---@class System.Runtime.CompilerServices.StringHandleOnStack : System.ValueType
+---@class System.Exception.DispatchState : System.ValueType
+---@class System.Runtime.Serialization.SerializationInfo : System.Object
+---@class Microsoft.Xna.Framework.Matrix-ref
+---@class System.Single-arr : System.Array
+---@class System.Nullable*1Microsoft*Xna*Framework*Vector3 : System.ValueType
+---@class Microsoft.Xna.Framework.Vector3-ref
+---@class Microsoft.Xna.Framework.Quaternion : System.ValueType
+---@class Microsoft.Xna.Framework.Quaternion-ref
+---@class Microsoft.Xna.Framework.Plane : System.ValueType
+---@class Microsoft.Xna.Framework.Plane-ref
+---@class Microsoft.Xna.Framework.Vector2-ref
+---@class Microsoft.Xna.Framework.Vector2-arr : System.Array
+---@class Microsoft.Xna.Framework.Vector3-arr : System.Array
+---@class Microsoft.Xna.Framework.Vector4-ref
+---@class Microsoft.Xna.Framework.Vector4-arr : System.Array
+---@class Microsoft.Xna.Framework.Point-ref
+---@class Microsoft.Xna.Framework.Rectangle-ref
+---@class Barotrauma.LuaCsMessageLogger : System.MulticastDelegate
+---@class Barotrauma.LuaCsExceptionHandler : System.MulticastDelegate
+---@class Barotrauma.LuaCsMessageOrigin : System.Enum
+---@class System.Nullable*1Microsoft*Xna*Framework*Color : System.ValueType
+---@class System.Reflection.FieldInfo : System.Reflection.MemberInfo
+---@class System.Type-arr : System.Array
+---@class System.Reflection.MethodInfo : System.Reflection.MethodBase
+---@class System.Reflection.PropertyInfo : System.Reflection.MemberInfo
+---@class MoonSharp.Interpreter.DynValue : System.Object
+---@class System.Nullable*1System*Boolean : System.ValueType, boolean
+---@class System.Collections.Generic.HashSet*1Barotrauma*Item : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Character : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*DebugConsole*Command : System.Object, {[System.Int32]:Barotrauma.DebugConsole.Command}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*DebugConsole*Command
+---@class Barotrauma.ContentPackage-arr : System.Array
+---@class System.Nullable*1Barotrauma*Networking*ChatMessageType : System.ValueType
+---@class Barotrauma.Networking.GameServer.TryStartGameResult : System.Enum
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Object : System.Object, {[System.String]:System.Object}, {[System.Object]:System.Object}
+---@class System.AsyncCallback : System.MulticastDelegate
+---@class System.IAsyncResult
+---@class HarmonyLib.Harmony : System.Object
+---@class System.Lazy*1System*Reflection*Emit*ModuleBuilder : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*ValueTuple*3Barotrauma*LuaCsHook*LuaCsHookCallback*3Barotrauma*ACsMod : System.Object, {[System.String]:(System.Collections.Generic.Dictionary*1System*String*1System*ValueTuple*2Barotrauma*LuaCsHook*LuaCsHookCallback*2Barotrauma*ACsMod)|({[System.String]:(System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1System*ValueTuple*2Barotrauma*LuaCsHook*LuaCsHookCallback*2Barotrauma*ACsMod : System.Object, {[System.String]:System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod}, {[System.Object]:System.Object}
+---@class System.ValueTuple*1Barotrauma*LuaCsHook*LuaCsHookCallback*1Barotrauma*ACsMod : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*LuaCsHook*MethodKey*1Barotrauma*LuaCsHook*PatchedMethod : System.Object, {[Barotrauma.LuaCsHook.MethodKey]:Barotrauma.LuaCsHook.PatchedMethod}, {[System.Object]:System.Object}
+---@class Barotrauma.LuaCsHook.MethodKey : System.ValueType
+---@class Barotrauma.LuaCsHook.PatchedMethod : System.Object
+---@class Barotrauma.LuaCsSetup : System.Object
+---@class System.Diagnostics.Stopwatch : System.Object
+---@class System.Collections.Generic.Dictionary*1System*Int64*1System*Collections*Generic*HashSet*2System*ValueTuple*3System*String*3Barotrauma*LuaCsPatch*3Barotrauma*ACsMod : System.Object, {[System.Int64]:(System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod)|(System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2System*String*2Barotrauma*LuaCsPatch*2Barotrauma*ACsMod : System.Object
+---@class System.ValueTuple*1System*String*1Barotrauma*LuaCsPatch*1Barotrauma*ACsMod : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Text.RegularExpressions.Regex : System.Object
+---@class System.Reflection.Emit.ModuleBuilder : System.Reflection.Module
+---@class System.Reflection.Module : System.Object
+---@class Barotrauma.ACsMod : System.Object
+---@class Barotrauma.LuaCsHook.T : System.Object
+---@class System.Object-ref
+---@class System.Collections.Generic.List*1Barotrauma*LuaCsTimer*TimedAction : System.Object, {[System.Int32]:Barotrauma.LuaCsTimer.TimedAction}, {[System.Int32]:System.Object}
+---@class Barotrauma.LuaCsTimer.TimedAction : System.Object
+---@class System.IO.FileStream : System.IO.Stream
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Int32 : System.Object, {[System.String]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*LuaCsAction : System.Object, {[System.String]:(Barotrauma.LuaCsAction)|(fun(...:System.Object))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1System*String : System.Object, {[System.UInt16]:System.String}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1System*UInt16 : System.Object, {[System.String]:System.UInt16}, {[System.Object]:System.Object}
+---@class System.Net.Http.HttpClient : System.Net.Http.HttpMessageInvoker
+---@class System.Net.Http.HttpMessageInvoker : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*String : System.Object, {[System.String]:System.String}, {[System.Object]:System.Object}
+---@class Barotrauma.Networking.INetSerializable
+---@class Barotrauma.Networking.NetEntityEvent.IData
+---@class System.Collections.Generic.List*1Barotrauma*LuaCsSteam*WorkshopItemDownload : System.Object, {[System.Int32]:Barotrauma.LuaCsSteam.WorkshopItemDownload}, {[System.Int32]:System.Object}
+---@class Barotrauma.LuaCsSteam.WorkshopItemDownload : System.ValueType
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Dictionary*2System*String*2System*Double : System.Object, {[System.String]:(System.Collections.Generic.Dictionary*1System*String*1System*Double)|({[System.String]:(System.Double)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Double : System.Object, {[System.String]:System.Double}, {[System.Object]:System.Object}
+---@class System.Xml.Linq.XObject : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Type
+---@class System.Collections.Generic.IEnumerable*1System*Xml*Linq*XElement
+---@class Barotrauma.LuaCsConfig.ValueType : System.Enum
+---@class System.Collections.Generic.List*1System*Type : System.Object, {[System.Int32]:System.Type}, {[System.Int32]:System.Object}
+---@class Barotrauma.LuaCsConfig.T : System.Object
+---@class Barotrauma.LuaCsConfig.T : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*LuaModStore : System.Object
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1System*String*1MoonSharp*Interpreter*DynValue : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*LuaCsSetup*LuaCsModStore*CsModStore : System.Object
+---@class Barotrauma.LuaCsSetup.LuaCsModStore.ModStore*1Barotrauma*ACsMod*1System*Object : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1MoonSharp*Interpreter*DynValue : System.Object, {[System.String]:MoonSharp.Interpreter.DynValue}, {[System.Object]:System.Object}
+---@class System.Action*1System*Reflection*Assembly : System.MulticastDelegate
+---@class System.Reflection.Assembly : System.Object
+---@class System.Action*1System*String*1System*Exception : System.MulticastDelegate
+---@class System.Action*1System*Guid : System.MulticastDelegate
+---@class System.Guid : System.ValueType
+---@class System.Func*1Barotrauma*AssemblyManager*LoadedACL*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.AssemblyManager.LoadedACL : System.Object
+---@class System.Collections.Concurrent.ConcurrentDictionary*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type : System.Object, {[System.String]:(System.Collections.Immutable.ImmutableList*1System*Type)|(System.Type[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1System*String*1System*Collections*Immutable*ImmutableList*2System*Type : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1System*String*1System*Type : System.Object, {[System.String]:System.Type}, {[System.String]:System.Type}, {[System.Object]:System.Object}
+---@class System.Collections.Concurrent.ConcurrentDictionary*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL : System.Object, {[System.Guid]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1System*Guid*1Barotrauma*AssemblyManager*LoadedACL : System.ValueType
+---@class System.Collections.Generic.List*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader : System.Object, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.Object}
+---@class System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader : System.Object
+---@class System.Threading.ReaderWriterLockSlim : System.Object
+---@class System.Collections.Immutable.ImmutableList*1System*WeakReference*2Barotrauma*MemoryFileAssemblyContextLoader : System.Object, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.WeakReference*1Barotrauma*MemoryFileAssemblyContextLoader}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AssemblyManager*LoadedACL
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*AssemblyManager*LoadedACL : System.Object, {[System.Int32]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Int32]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Int32]:Barotrauma.AssemblyManager.LoadedACL}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*SyntaxTree
+---@class Microsoft.CodeAnalysis.SyntaxTree : System.Object
+---@class System.Collections.Generic.IEnumerable*1Microsoft*CodeAnalysis*MetadataReference
+---@class Microsoft.CodeAnalysis.MetadataReference : System.Object
+---@class Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions : Microsoft.CodeAnalysis.CompilationOptions
+---@class Microsoft.CodeAnalysis.CompilationOptions : System.Object
+---@class System.Guid-ref
+---@class System.Collections.Generic.IEnumerable*1System*Reflection*Assembly
+---@class Barotrauma.AssemblyLoadingSuccessState : System.Enum
+---@class Barotrauma.LoadedACL-ref
+---@class System.Collections.Generic.List*1Barotrauma*ContentPackage : System.Object, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Collections*Immutable*ImmutableList*2Barotrauma*ContentPackage : System.Object, {[Barotrauma.ContentPackage]:(System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage)|(Barotrauma.ContentPackage[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*ContentPackage : System.Object, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:Barotrauma.ContentPackage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1System*Guid : System.Object, {[Barotrauma.ContentPackage]:System.Guid}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Guid*1Barotrauma*ContentPackage : System.Object, {[System.Guid]:Barotrauma.ContentPackage}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Generic*HashSet*2Barotrauma*IAssemblyPlugin : System.Object, {[System.Guid]:(System.Collections.Generic.HashSet*1Barotrauma*IAssemblyPlugin)|(Barotrauma.IAssemblyPlugin[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*IAssemblyPlugin : System.Object
+---@class Barotrauma.IAssemblyPlugin
+---@class System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableHashSet*2System*Type : System.Object, {[System.Guid]:(System.Collections.Immutable.ImmutableHashSet*1System*Type)|(System.Type[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableHashSet*1System*Type : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ContentPackage*1Barotrauma*RunConfig : System.Object, {[Barotrauma.ContentPackage]:Barotrauma.RunConfig}, {[System.Object]:System.Object}
+---@class Barotrauma.RunConfig : System.Object
+---@class System.Collections.Generic.Dictionary*1System*Guid*1System*Collections*Immutable*ImmutableList*2System*Type : System.Object, {[System.Guid]:(System.Collections.Immutable.ImmutableList*1System*Type)|(System.Type[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableList*1System*Type : System.Object, {[System.Int32]:System.Type}, {[System.Int32]:System.Type}, {[System.Int32]:System.Type}, {[System.Int32]:System.Object}
+---@class System.DateTime : System.ValueType
+---@class System.Action : System.MulticastDelegate
+---@class Microsoft.CodeAnalysis.CSharp.CSharpParseOptions : Microsoft.CodeAnalysis.ParseOptions
+---@class Microsoft.CodeAnalysis.ParseOptions : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage
+---@class Barotrauma.ContentPackage-ref
+---@class System.Collections.Generic.IEnumerable
+---@class Barotrauma.RunConfig-ref
+---@class System.Collections.Immutable.ImmutableList
+---@class System.Collections.Generic.Dictionary
+---@class System.Collections.Generic.IEnumerable
+---@class System.Collections.Generic.IEnumerable
+---@class System.Func*1Barotrauma*ContentPackage*1System*Boolean : System.MulticastDelegate
+---@class MoonSharp.Interpreter.Script : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2System*String : System.Object, {[System.String]:(System.Collections.Generic.List*1System*String)|(System.String[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*String : System.Object, {[System.Int32]:System.String}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableHashSet*1System*Char : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Func*1Barotrauma*ToolBox*T*1System*Single : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ToolBox*T
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Func*1Barotrauma*ToolBox*T*1System*Single : System.MulticastDelegate
+---@class System.Random : System.Object
+---@class System.Collections.Generic.IList*1Barotrauma*ToolBox*T : {[System.Int32]:Barotrauma.ToolBox.T}
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Collections.Generic.IList*1System*Single : {[System.Int32]:System.Single}
+---@class System.Collections.Generic.IList*1Barotrauma*ToolBox*T : {[System.Int32]:Barotrauma.ToolBox.T}
+---@class Barotrauma.ToolBox.T : System.Object
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Reflection.BindingFlags : System.Enum
+---@class Barotrauma.ToolBox.T : System.Object
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*ToolBox*T : System.Object, {[System.Int32]:Barotrauma.ToolBox.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.ToolBox.T : System.Object
+---@class Barotrauma.ToolBox.T : System.Object
+---@class System.Net.IPEndPoint : System.Net.EndPoint
+---@class System.Net.EndPoint : System.Object
+---@class Barotrauma.SquareLine : System.ValueType
+---@class Microsoft.Xna.Framework.RectangleF : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*PrefabWithUintIdentifier
+---@class System.Collections.Immutable.ImmutableArray*1System*UInt32 : System.ValueType, {[System.Int32]:System.UInt32}, {[System.Int32]:System.UInt32}, {[System.Int32]:System.Object}, {[System.Int32]:System.UInt32}
+---@class Barotrauma.PrefabCollection*1Barotrauma*ToolBox*T : System.Object, {[Barotrauma.Identifier]:Barotrauma.ToolBox.T}, {[System.String]:Barotrauma.ToolBox.T}
+---@class Barotrauma.ToolBox.T : Barotrauma.PrefabWithUintIdentifier
+---@class System.Collections.Generic.IEnumerable*1System*UInt32
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ToolBox*T : System.ValueType, {[System.Int32]:Barotrauma.ToolBox.T}, {[System.Int32]:Barotrauma.ToolBox.T}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ToolBox.T}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Rand*RandSync*1System*Random : System.Object, {[Barotrauma.Rand.RandSync]:System.Random}, {[System.Object]:System.Object}
+---@class Steamworks.SteamServerClass*1Steamworks*SteamServer : Steamworks.SteamClass
+---@class Steamworks.SteamClass : System.Object
+---@class System.Action*1Steamworks*SteamId*1Steamworks*SteamId*1Steamworks*AuthResponse : System.MulticastDelegate
+---@class Steamworks.SteamId : System.ValueType
+---@class Steamworks.AuthResponse : System.Enum
+---@class System.Action*1Steamworks*Result*1System*Boolean : System.MulticastDelegate
+---@class Steamworks.Result : System.Enum
+---@class System.Action*1Steamworks*Result : System.MulticastDelegate
+---@class System.Action*1Steamworks*SteamNetworkingAvailability : System.MulticastDelegate
+---@class Steamworks.SteamNetworkingAvailability : System.Enum
+---@class System.Collections.Generic.List*1Steamworks*SteamClass : System.Object, {[System.Int32]:Steamworks.SteamClass}, {[System.Int32]:System.Object}
+---@class Steamworks.ISteamGameServer : Steamworks.SteamInterface
+---@class Steamworks.SteamInterface : System.Object
+---@class Steamworks.AppId : System.ValueType
+---@class Steamworks.SteamServerInit : System.ValueType
+---@class Steamworks.BeginAuthResult : System.Enum
+---@class Steamworks.Data.OutgoingPacket-ref
+---@class Steamworks.UserHasLicenseForAppResult : System.Enum
+---@class Steamworks.Relationship : System.Enum
+---@class Steamworks.FriendState : System.Enum
+---@class System.Nullable*1Steamworks*Friend*FriendGameInfo : System.ValueType
+---@class System.Threading.Tasks.Task : System.Object
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Data*Image : System.Threading.Tasks.Task
+---@class System.Threading.Tasks.Task*1System*Boolean : System.Threading.Tasks.Task
+---@class Steamworks.Data.SteamUGCDetails_t : System.ValueType
+---@class Steamworks.Data.PublishedFileId : System.ValueType
+---@class Steamworks.Data.PublishedFileId-arr : System.Array
+---@class Steamworks.Ugc.Visibility : System.Enum
+---@class Steamworks.Data.UgcAdditionalPreview-arr : System.Array
+---@class Steamworks.Data.UgcAdditionalPreview : System.ValueType
+---@class System.Nullable*1System*DateTime : System.ValueType
+---@class Steamworks.ItemState : System.Enum
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*Item : System.Threading.Tasks.Task
+---@class System.Action*1System*Single : System.MulticastDelegate
+---@class System.Threading.CancellationToken : System.ValueType
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Result : System.Threading.Tasks.Task
+---@class System.Threading.Tasks.Task*1System*Nullable*2Steamworks*Ugc*UserItemVote : System.Threading.Tasks.Task
+---@class Steamworks.Ugc.Editor : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*SteamWorkshopId : System.ValueType
+---@class Barotrauma.T1-ref
+---@class Barotrauma.Character-ref
+---@class System.Func*1Barotrauma*Character*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class Barotrauma.Option.TType : System.Object
+---@class Barotrauma.Option*1Barotrauma*Option*TType : System.ValueType
+---@class System.Func*1Barotrauma*Character*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class Barotrauma.Option*1Barotrauma*Option*TType : System.ValueType
+---@class System.Func*1Barotrauma*Character*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Threading.Tasks.Task*1Barotrauma*Option*2Barotrauma*Option*TType : System.Threading.Tasks.Task
+---@class System.Func*1Barotrauma*Character*1Barotrauma*Character : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Character : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Character : System.MulticastDelegate
+---@class Barotrauma.Networking.AccountId-ref
+---@class System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId*1Barotrauma*Networking*AccountId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*AccountId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*AccountId : System.MulticastDelegate
+---@class Barotrauma.Networking.SteamId-ref
+---@class System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId*1Barotrauma*Networking*SteamId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*SteamId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*SteamId : System.MulticastDelegate
+---@class Barotrauma.Networking.EpicAccountId-ref
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId*1Barotrauma*Networking*EpicAccountId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*EpicAccountId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*EpicAccountId : System.MulticastDelegate
+---@class Barotrauma.ContentPackageId-ref
+---@class System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId*1Barotrauma*ContentPackageId : System.MulticastDelegate
+---@class System.Func*1Barotrauma*ContentPackageId : System.MulticastDelegate
+---@class System.Action*1Barotrauma*ContentPackageId : System.MulticastDelegate
+---@class System.DateTime-ref
+---@class System.Func*1System*DateTime*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1System*DateTime*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1System*DateTime*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1System*DateTime*1System*DateTime : System.MulticastDelegate
+---@class System.Func*1System*DateTime : System.MulticastDelegate
+---@class System.Action*1System*DateTime : System.MulticastDelegate
+---@class Barotrauma.Networking.BannedPlayer-ref
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Option*2Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1System*Threading*Tasks*Task*2Barotrauma*Option*3Barotrauma*Option*TType : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer*1Barotrauma*Networking*BannedPlayer : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Networking*BannedPlayer : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*BannedPlayer : System.MulticastDelegate
+---@class System.Nullable
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Vector2}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2-arr : System.Object, {[System.Int32]:(Microsoft.Xna.Framework.Vector2-arr)|(Microsoft.Xna.Framework.Vector2[])}, {[System.Int32]:System.Object}
+---@class System.Nullable*1Microsoft*Xna*Framework*Rectangle : System.ValueType
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}, {[System.Int32]:System.Object}
+---@class System.Double-arr : System.Array
+---@class System.MidpointRounding : System.Enum
+---@class System.Math.T : System.Object
+---@class System.ValueTuple*1System*Double*1System*Double : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Double-ptr
+---@class System.ValueTuple*1System*SByte*1System*SByte : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Byte*1System*Byte : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Int16*1System*Int16 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt16*1System*UInt16 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt32*1System*UInt32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Int64*1System*Int64 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt64*1System*UInt64 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*IntPtr*1System*IntPtr : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UIntPtr*1System*UIntPtr : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Single*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Single-ptr
+---@class System.Collections.Generic.Queue*1System*Double : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*Queue*2System*Int64 : System.Object, {[System.String]:(System.Collections.Generic.Queue*1System*Int64)|(fun():(System.Int64))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Queue*1System*Int64 : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Int64 : System.Object, {[System.String]:System.Int64}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1System*String : {[System.Int32]:System.String}
+---@class System.Version : System.Object
+---@class System.Collections.Generic.Queue*1System*Int32 : System.Object
+---@class System.Threading.Thread : System.Runtime.ConstrainedExecution.CriticalFinalizerObject
+---@class System.Runtime.ConstrainedExecution.CriticalFinalizerObject : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CoroutineStatus
+---@class Barotrauma.CoroutineStatus : System.Object
+---@class Barotrauma.CoroutineHandle : System.Object
+---@class System.ComponentModel.AttributeCollection : System.Object, {[System.Int32]:System.Attribute}, {[System.Type]:System.Attribute}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*Object*2System*Object : System.Object, {[Barotrauma.Identifier]:(System.Func*1System*Object*1System*Object)|(fun(arg:System.Object):(System.Object))}, {[Barotrauma.Identifier]:(System.Func*1System*Object*1System*Object)|(fun(arg:System.Object):(System.Object))}, {[System.Object]:System.Object}
+---@class System.Func*1System*Object*1System*Object : System.MulticastDelegate
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*String : System.Object, {[System.Type]:System.String}, {[System.Type]:System.String}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Type*1System*Collections*Generic*Dictionary*2Barotrauma*Identifier*2Barotrauma*SerializableProperty : System.Object, {[System.Type]:(System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty)|({[Barotrauma.Identifier]:(Barotrauma.SerializableProperty)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*SerializableProperty : System.Object, {[Barotrauma.Identifier]:Barotrauma.SerializableProperty}, {[System.Object]:System.Object}
+---@class Barotrauma.SerializableProperty.T : System.Attribute
+---@class System.Attribute : System.Object
+---@class Barotrauma.Identifier-arr : System.Array
+---@class System.String-ref
+---@class Barotrauma.ISerializableEntity
+---@class System.Collections.Generic.List*1Barotrauma*SerializableProperty : System.Object, {[System.Int32]:Barotrauma.SerializableProperty}, {[System.Int32]:System.Object}
+---@class System.ComponentModel.PropertyDescriptor : System.ComponentModel.MemberDescriptor
+---@class System.ComponentModel.MemberDescriptor : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:Barotrauma.LocalizedString}, {[System.Int32]:Barotrauma.LocalizedString}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.LocalizedString}
+---@class Barotrauma.LocalizedString-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LocalizedString
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*LocalizedString : {[System.Int32]:Barotrauma.LocalizedString}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*LocalizedString*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals : System.Object, {[Barotrauma.LocalizedString]:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals}, {[Barotrauma.LocalizedString]:System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals}, {[System.Object]:System.Object}
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*LocalizedString*2Barotrauma*FormatCapitals
+---@class System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*String : System.ValueType, {[System.Int32]:System.String}, {[System.Int32]:System.String}, {[System.Int32]:System.Object}, {[System.Int32]:System.String}
+---@class Barotrauma.LocalizedString.LoadedSuccessfully : System.Enum
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Func*2System*String*2System*String : System.Object, {[Barotrauma.Identifier]:(System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))}, {[Barotrauma.Identifier]:(System.Func*1System*String*1System*String)|(fun(arg:System.String):(System.String))}, {[System.Object]:System.Object}
+---@class System.Func*1System*String*1System*String : System.MulticastDelegate
+---@class Barotrauma.LStringSplitter : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier : System.ValueType, {[System.Int32]:Barotrauma.Identifier}, {[System.Int32]:Barotrauma.Identifier}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Identifier}
+---@class Barotrauma.TrimLString.Mode : System.Enum
+---@class System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*RichTextData : System.ValueType
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack : System.Object, {[Barotrauma.LanguageIdentifier]:(System.Collections.Immutable.ImmutableList*1Barotrauma*TextPack)|(Barotrauma.TextPack[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*LanguageIdentifier*1System*Collections*Immutable*ImmutableList*2Barotrauma*TextPack : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*WeakReference*2Barotrauma*TagLString : System.Object, {[Barotrauma.Identifier]:System.WeakReference*1Barotrauma*TagLString}, {[System.Object]:System.Object}
+---@class System.WeakReference*1Barotrauma*TagLString : System.Object
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TextManager*SpeciallyHandledCharCategory : System.ValueType, {[System.Int32]:Barotrauma.TextManager.SpeciallyHandledCharCategory}, {[System.Int32]:Barotrauma.TextManager.SpeciallyHandledCharCategory}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TextManager.SpeciallyHandledCharCategory}
+---@class Barotrauma.TextManager.SpeciallyHandledCharCategory : System.Enum
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*TextManager*SpeciallyHandledCharCategory*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Range*3System*Int32 : System.Object, {[Barotrauma.TextManager.SpeciallyHandledCharCategory]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])}, {[Barotrauma.TextManager.SpeciallyHandledCharCategory]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32)|(Barotrauma.Range*1System*Int32[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Range*2System*Int32 : System.ValueType, {[System.Int32]:Barotrauma.Range*1System*Int32}, {[System.Int32]:Barotrauma.Range*1System*Int32}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Range*1System*Int32}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LanguageIdentifier
+---@class System.Text.Unicode.UnicodeRange-arr : System.Array
+---@class System.Text.Unicode.UnicodeRange : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2System*String
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1System*String : System.ValueType
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.FormatCapitals : System.Enum
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1Barotrauma*LocalizedString : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1Barotrauma*LocalizedString*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1System*String*1System*String*1Barotrauma*FormatCapitals : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.LocalizedString-ref
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*TextPack*Text : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text)|(Barotrauma.TextPack.Text[])}, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text)|(Barotrauma.TextPack.Text[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TextPack*Text : System.ValueType, {[System.Int32]:Barotrauma.TextPack.Text}, {[System.Int32]:Barotrauma.TextPack.Text}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TextPack.Text}
+---@class Barotrauma.TextPack.Text : System.ValueType
+---@class System.Range : System.ValueType
+---@class System.Lazy*1System*Int32 : System.Object
+---@class Barotrauma.Identifier-ref
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Networking*AccountId : System.ValueType, {[System.Int32]:Barotrauma.Networking.AccountId}, {[System.Int32]:Barotrauma.Networking.AccountId}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Networking.AccountId}
+---@class Barotrauma.Networking.AccountId-arr : System.Array
+---@class System.UInt16-arr : System.Array
+---@class System.Net.Sockets.AddressFamily : System.Enum
+---@class System.Net.IPAddress-ref
+---@class System.Span*1System*Byte : System.ValueType, {[System.Int32]:System.Byte-ref}
+---@class System.ReadOnlySpan*1System*Byte : System.ValueType, {[System.Int32]:System.Byte-ref}
+---@class System.ReadOnlySpan*1System*UInt16 : System.ValueType, {[System.Int32]:System.UInt16-ref}
+---@class Barotrauma.Option*1Barotrauma*Networking*Address : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*LidgrenAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*SteamP2PAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*P2PAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*EosP2PAddress : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*Endpoint : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*Networking*LidgrenEndpoint : System.ValueType
+---@class Barotrauma.Networking.P2PEndpoint : Barotrauma.Networking.Endpoint
+---@class Barotrauma.Option*1Barotrauma*Networking*SteamP2PEndpoint : System.ValueType
+---@class Barotrauma.Networking.P2PConnection : Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*P2PEndpoint
+---@class Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*P2PEndpoint : Barotrauma.Networking.NetworkConnection
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Md5Hash
+---@class Barotrauma.Md5Hash.StringHashOptions : System.Enum
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*ContentFile*TypeInfo : System.Object
+---@class Barotrauma.ContentFile.TypeInfo : System.Object
+---@class Barotrauma.Result*1Barotrauma*ContentFile*1Barotrauma*ContentPackage*LoadError : System.Object
+---@class System.Action*1Barotrauma*Sprite : System.MulticastDelegate
+---@class Barotrauma.Option*1Barotrauma*SerializableDateTime : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentFile : System.ValueType, {[System.Int32]:Barotrauma.ContentFile}, {[System.Int32]:Barotrauma.ContentFile}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ContentFile}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ContentPackage*LoadError : System.ValueType, {[System.Int32]:Barotrauma.ContentPackage.LoadError}, {[System.Int32]:Barotrauma.ContentPackage.LoadError}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ContentPackage.LoadError}
+---@class Barotrauma.ContentPackage.LoadError : System.ValueType
+---@class Barotrauma.Option*1Barotrauma*ContentPackageManager*LoadProgress*Error : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackage*T
+---@class Barotrauma.ContentPackage.T : Barotrauma.ContentFile
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentFile
+---@class Barotrauma.Result*1Barotrauma*ContentPackage*1System*Exception : System.Object
+---@class Barotrauma.ContentPackage.LoadResult : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentPackageManager*LoadProgress
+---@class Barotrauma.ContentPackageManager.LoadProgress : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CorePackage
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*RegularPackage
+---@class System.Predicate*1System*String : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*RegularPackage : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*CorePackage : System.Object
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*ContentPackage
+---@class System.Collections.Generic.List*1Barotrauma*RegularPackage : System.Object, {[System.Int32]:Barotrauma.RegularPackage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*RegularPackage : {[System.Int32]:Barotrauma.RegularPackage}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*ContentPackage
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ContentXElement
+---@class System.Collections.Generic.IEnumerable*1System*Xml*Linq*XAttribute
+---@class System.Int32-arr : System.Array
+---@class Microsoft.Xna.Framework.Color-ref
+---@class Microsoft.Xna.Framework.Color-arr : System.Array
+---@class Barotrauma.T-ref
+---@class Barotrauma.ContentXElement.T : System.ValueType
+---@class Barotrauma.T-arr : System.Array
+---@class Barotrauma.ContentXElement.T : System.ValueType
+---@class System.ValueTuple
+---@class System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*ContentXElement*T1*1Barotrauma*ContentXElement*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Range
+---@class System.Exception-ref
+---@class Barotrauma.HashlessFile : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*BallastFloraPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*BallastFloraPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.BallastFloraPrefab}, {[System.String]:Barotrauma.BallastFloraPrefab}
+---@class Barotrauma.BallastFloraPrefab : Barotrauma.Prefab
+---@class Barotrauma.BaseSubFile : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*CaveGenerationParams : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*CaveGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.CaveGenerationParams}, {[System.String]:Barotrauma.CaveGenerationParams}
+---@class Barotrauma.CaveGenerationParams : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*CorpsePrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*CorpsePrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.CorpsePrefab}, {[System.String]:Barotrauma.CorpsePrefab}
+---@class Barotrauma.CorpsePrefab : Barotrauma.HumanPrefab
+---@class Barotrauma.HumanPrefab : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*EventManagerSettings : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*FactionPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*FactionPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.FactionPrefab}, {[System.String]:Barotrauma.FactionPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*ItemAssemblyPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*ItemAssemblyPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemAssemblyPrefab}, {[System.String]:Barotrauma.ItemAssemblyPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*ItemPrefab : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*LevelObjectPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*LevelObjectPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.LevelObjectPrefab}, {[System.String]:Barotrauma.LevelObjectPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*LocationType : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*MissionPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*MissionPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.MissionPrefab}, {[System.String]:Barotrauma.MissionPrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*NPCPersonalityTrait : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*NPCPersonalityTrait : System.Object, {[Barotrauma.Identifier]:Barotrauma.NPCPersonalityTrait}, {[System.String]:Barotrauma.NPCPersonalityTrait}
+---@class Barotrauma.NPCPersonalityTrait : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*NPCSet : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*NPCSet : System.Object, {[Barotrauma.Identifier]:Barotrauma.NPCSet}, {[System.String]:Barotrauma.NPCSet}
+---@class Barotrauma.NPCSet : Barotrauma.Prefab
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*OutpostGenerationParams : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*OutpostGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.OutpostGenerationParams}, {[System.String]:Barotrauma.OutpostGenerationParams}
+---@class Barotrauma.OutpostGenerationParams : Barotrauma.PrefabWithUintIdentifier
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*RuinGeneration*RuinGenerationParams : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*RuinGeneration*RuinGenerationParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.RuinGeneration.RuinGenerationParams}, {[System.String]:Barotrauma.RuinGeneration.RuinGenerationParams}
+---@class Barotrauma.RuinGeneration.RuinGenerationParams : Barotrauma.OutpostGenerationParams
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*StartItemSet : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*StartItemSet : System.Object, {[Barotrauma.Identifier]:Barotrauma.StartItemSet}, {[System.String]:Barotrauma.StartItemSet}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*StructurePrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*StructurePrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.StructurePrefab}, {[System.String]:Barotrauma.StructurePrefab}
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*TalentPrefab : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*TalentTree : Barotrauma.ContentFile
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*TutorialPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*TutorialPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.TutorialPrefab}, {[System.String]:Barotrauma.TutorialPrefab}
+---@class Barotrauma.TutorialPrefab : Barotrauma.Prefab
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*UpgradeContentPrefab : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*UpgradeContentPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.UpgradeContentPrefab}, {[System.String]:Barotrauma.UpgradeContentPrefab}
+---@class Barotrauma.UpgradeContentPrefab : Barotrauma.Prefab
+---@class Barotrauma.GenericPrefabFile*1Barotrauma*WreckAIConfig : Barotrauma.ContentFile
+---@class Barotrauma.PrefabCollection*1Barotrauma*WreckAIConfig : System.Object, {[Barotrauma.Identifier]:Barotrauma.WreckAIConfig}, {[System.String]:Barotrauma.WreckAIConfig}
+---@class Barotrauma.WreckAIConfig : Barotrauma.PrefabWithUintIdentifier
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Type*1System*Func*2System*String*2System*Object*2System*Object : System.Object, {[System.Type]:(System.Func*1System*String*1System*Object*1System*Object)|(fun(arg1:System.String, arg2:System.Object):(System.Object))}, {[System.Type]:(System.Func*1System*String*1System*Object*1System*Object)|(fun(arg1:System.String, arg2:System.Object):(System.Object))}, {[System.Object]:System.Object}
+---@class System.Func*1System*String*1System*Object*1System*Object : System.MulticastDelegate
+---@class System.Xml.XmlReaderSettings : System.Object
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color : System.Object, {[Barotrauma.Identifier]:Microsoft.Xna.Framework.Color}, {[Barotrauma.Identifier]:Microsoft.Xna.Framework.Color}, {[System.Object]:System.Object}
+---@class System.Xml.XmlReader : System.Object, {[System.Int32]:System.String}, {[System.String]:System.String}
+---@class Barotrauma.XMLExtensions.T : System.ValueType
+---@class Barotrauma.XMLExtensions.T : System.ValueType
+---@class Barotrauma.T-arr : System.Array
+---@class Barotrauma.XMLExtensions.T : System.ValueType
+---@class System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple : System.Array
+---@class System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*XMLExtensions*T1*1Barotrauma*XMLExtensions*T2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1System*Xml*Linq*XAttribute*1System*Boolean : System.MulticastDelegate
+---@class System.Xml.XmlNodeType : System.Enum
+---@class System.Xml.Linq.LoadOptions : System.Enum
+---@class System.Threading.Tasks.Task*1System*Xml*Linq*XElement : System.Threading.Tasks.Task
+---@class System.Xml.Linq.SaveOptions : System.Enum
+---@class System.Xml.XmlWriter : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Xml*Linq*XNode
+---@class System.Xml.Linq.XNamespace : System.Object
+---@class System.Xml.Linq.XStreamingElement : System.Object
+---@class System.Xml.Linq.XElement.AsyncConstructionSentry : System.ValueType
+---@class System.Text.StringBuilder : System.Object, {[System.Int32]:System.Char}
+---@class System.Xml.Linq.XNode-ref
+---@class System.Collections.Generic.List*1System*Object : System.Object, {[System.Int32]:System.Object}, {[System.Int32]:System.Object}
+---@class System.Xml.Linq.XDeclaration : System.Object
+---@class System.Xml.Linq.XDocumentType : System.Xml.Linq.XNode
+---@class System.Threading.Tasks.Task*1System*Xml*Linq*XDocument : System.Threading.Tasks.Task
+---@class System.Xml.Linq.XDocument.T : System.Xml.Linq.XNode
+---@class System.Xml.Linq.XNodeDocumentOrderComparer : System.Object
+---@class System.Xml.Linq.XNodeEqualityComparer : System.Object
+---@class System.Xml.Linq.ReaderOptions : System.Enum
+---@class System.Threading.Tasks.Task*1System*Xml*Linq*XNode : System.Threading.Tasks.Task
+---@class System.Xml.XmlWriterSettings : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Identifier : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Gap : System.Object
+---@class Barotrauma.Level.Tunnel : System.Object
+---@class Barotrauma.RuinGeneration.Ruin : System.Object
+---@class Barotrauma.Level.Cave : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*WayPoint : System.Object, {[System.Int32]:Barotrauma.WayPoint}, {[System.Int32]:System.Object}
+---@class System.Action*1Barotrauma*WayPoint : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Identifier
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32
+---@class System.ValueTuple*1Barotrauma*WayPoint*1System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.Body : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*WayPoint
+---@class System.Func*1System*ValueTuple*2Barotrauma*WayPoint*2System*Int32*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1Barotrauma*WayPoint*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*CharacterInfo : System.Object, {[System.Int32]:Barotrauma.CharacterInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.WayPoint-arr : System.Array
+---@class Barotrauma.IdRemap : System.Object
+---@class Barotrauma.WayPoint.Type : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1Microsoft*Xna*Framework*Color : System.Object, {[Barotrauma.Networking.ServerLog.MessageType]:Microsoft.Xna.Framework.Color}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerLog*MessageType*1System*String : System.Object, {[Barotrauma.Networking.ServerLog.MessageType]:System.String}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Queue*1Barotrauma*Networking*ServerLog*LogMessage : System.Object
+---@class Barotrauma.Networking.ServerLog.LogMessage : System.ValueType
+---@class System.Boolean-arr : System.Array
+---@class System.Nullable*1System*Single : System.ValueType, number
+---@class Barotrauma.WorldHostilityOption : System.Enum
+---@class Barotrauma.PropertyConditional.LogicalOperatorType : System.Enum
+---@class System.Predicate*1System*Xml*Linq*XAttribute : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*PropertyConditional
+---@class System.ValueTuple*1Barotrauma*PropertyConditional*ComparisonOperatorType*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*Identifier*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.PropertyConditional.T : System.Object
+---@class Barotrauma.PropertyConditional.LogicalComparison : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*RelatedItem : System.Object, {[System.Int32]:Barotrauma.RelatedItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Object : System.ValueType, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Object : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PropertyConditional : System.Object, {[System.Int32]:Barotrauma.PropertyConditional}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Entity*1System*Single : System.Object, {[Barotrauma.Entity]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Explosion : System.Object, {[System.Int32]:Barotrauma.Explosion}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*ItemSpawnInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.ItemSpawnInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.StatusEffect.ItemSpawnInfo : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*CharacterSpawnInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.CharacterSpawnInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveTalentInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.GiveTalentInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*AITrigger : System.Object, {[System.Int32]:Barotrauma.StatusEffect.AITrigger}, {[System.Int32]:System.Object}
+---@class Barotrauma.StatusEffect.AITrigger : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*EventPrefab : System.Object, {[System.Int32]:Barotrauma.EventPrefab}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.LimbType-arr : System.Array
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Identifier*2System*Single : System.Object
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Identifier : System.Object, {[System.Int32]:Barotrauma.Identifier}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*Int32 : System.Object, {[System.Int32]:System.Int32}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*GiveSkill : System.Object, {[System.Int32]:Barotrauma.StatusEffect.GiveSkill}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*String*2Barotrauma*ContentXElement : System.Object, {[System.Int32]:System.ValueTuple*1System*String*1Barotrauma*ContentXElement}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*String*1Barotrauma*ContentXElement : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*StatusEffect*AnimLoadInfo : System.Object
+---@class System.ValueTuple*1Barotrauma*Character*1Barotrauma*StatusEffect*AnimLoadInfo : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect*AnimLoadInfo : System.Object, {[System.Int32]:Barotrauma.StatusEffect.AnimLoadInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.StatusEffect.AnimLoadInfo : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*ISerializableEntity : System.Object, {[System.Int32]:Barotrauma.ISerializableEntity}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*DurationListElement : System.Object, {[System.Int32]:Barotrauma.DurationListElement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Entity : System.Object, {[System.Int32]:Barotrauma.Entity}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Explosion
+---@class System.Collections.Generic.List*1Barotrauma*Affliction : System.Object, {[System.Int32]:Barotrauma.Affliction}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect*CharacterSpawnInfo
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*ISerializableEntity : {[System.Int32]:Barotrauma.ISerializableEntity}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*PropertyConditional : {[System.Int32]:Barotrauma.PropertyConditional}
+---@class System.Nullable*1Microsoft*Xna*Framework*Vector2 : System.ValueType
+---@class Barotrauma.Abilities.AbilityObject : System.Object
+---@class Barotrauma.DelayedEffect.DelayTypes : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*DelayedListElement : System.Object, {[System.Int32]:Barotrauma.DelayedListElement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ISerializableEntity
+---@class Barotrauma.GapPosition-arr : System.Array
+---@class Barotrauma.OutpostModuleInfo.GapPosition : System.Enum
+---@class Barotrauma.OutpostModuleFile-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*SubmarineInfo
+---@class Barotrauma.OutpostGenerator.PlacedModule : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*SubmarineInfo : System.Object, {[System.Int32]:Barotrauma.SubmarineInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*OutpostGenerator*PlacedModule : System.Object, {[System.Int32]:Barotrauma.OutpostGenerator.PlacedModule}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerator*PlacedModule
+---@class Barotrauma.PlacedModule-ref
+---@class System.Collections.Generic.Dictionary
+---@class Barotrauma.OutpostModuleInfo : System.Object
+---@class System.Collections.Generic.List
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MapEntity
+---@class System.Collections.Generic.Dictionary*1Barotrauma*OutpostGenerator*PlacedModule*1System*Collections*Generic*List*2Barotrauma*MapEntity : System.Object, {[Barotrauma.OutpostGenerator.PlacedModule]:(System.Collections.Generic.List*1Barotrauma*MapEntity)|(Barotrauma.MapEntity[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*MapEntity : System.Object, {[System.Int32]:Barotrauma.MapEntity}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Decal : System.Object, {[System.Int32]:Barotrauma.Decal}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*FireSource : System.Object, {[System.Int32]:Barotrauma.FireSource}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*DummyFireSource : System.Object, {[System.Int32]:Barotrauma.DummyFireSource}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Structure
+---@class System.Collections.Generic.HashSet*1Barotrauma*Submarine : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Structure*1System*Single : System.Object, {[Barotrauma.Structure]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Submarine
+---@class Barotrauma.GameModePreset-arr : System.Array
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*SubmarineInfo : {[System.Int32]:Barotrauma.SubmarineInfo}
+---@class Barotrauma.Networking.BotSpawnMode : System.Enum
+---@class Barotrauma.GameSettings.Config : System.ValueType
+---@class Barotrauma.Config-ref
+---@class Barotrauma.Location-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*Mission : System.Object, {[System.Int32]:Barotrauma.Mission}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Option*2Barotrauma*Networking*AccountId*1System*Int32 : System.Object, {[Barotrauma.Option*1Barotrauma*Networking*AccountId]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Nullable*1Barotrauma*CharacterTeamType : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Mission
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Character
+---@class Barotrauma.CampaignDataPath : System.ValueType
+---@class Barotrauma.CampaignSettings : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MissionPrefab
+---@class Barotrauma.Submarine-ref
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Character : System.Object
+---@class Barotrauma.CampaignMode.TransitionType : System.Enum
+---@class System.Nullable*1Barotrauma*TraitorManager*TraitorResults : System.ValueType
+---@class Barotrauma.PerkCollection : System.ValueType
+---@class System.Collections.Generic.IList*1System*String : {[System.Int32]:System.String}
+---@class Barotrauma.Option*1Barotrauma*SubmarineInfo : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Object : System.Object, {[Barotrauma.Identifier]:System.Object}, {[System.Object]:System.Object}
+---@class System.Nullable*1System*Int32 : System.ValueType, integer
+---@class System.Func*1Barotrauma*AfflictionPrefab*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.FactionAffiliation : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*HireableCharacter : System.ValueType, {[System.Int32]:Barotrauma.FactionPrefab.HireableCharacter}, {[System.Int32]:Barotrauma.FactionPrefab.HireableCharacter}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.FactionPrefab.HireableCharacter}
+---@class Barotrauma.FactionPrefab.HireableCharacter : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*FactionPrefab*AutomaticMission : System.ValueType, {[System.Int32]:Barotrauma.FactionPrefab.AutomaticMission}, {[System.Int32]:Barotrauma.FactionPrefab.AutomaticMission}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.FactionPrefab.AutomaticMission}
+---@class Barotrauma.FactionPrefab.AutomaticMission : System.Object
+---@class Barotrauma.NamedEvent*1Barotrauma*Reputation : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*GameModePreset : System.Object, {[System.Int32]:Barotrauma.GameModePreset}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Faction : System.Object, {[System.Int32]:Barotrauma.Faction}, {[System.Int32]:System.Object}
+---@class Barotrauma.NamedEvent*1Barotrauma*WalletChangedEvent : System.Object
+---@class Barotrauma.Wallet : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Single : System.Object, {[Barotrauma.Character]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Faction : {[System.Int32]:Barotrauma.Faction}
+---@class Barotrauma.CampaignMode.InteractionType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Submarine : System.Object, {[System.Int32]:Barotrauma.Submarine}, {[System.Int32]:System.Object}
+---@class Barotrauma.LevelData-ref
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Faction
+---@class System.Collections.Generic.List*1Barotrauma*CharacterCampaignData : System.Object, {[System.Int32]:Barotrauma.CharacterCampaignData}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Wallet : System.Object, {[System.UInt16]:Barotrauma.Wallet}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*NetWalletTransaction : System.Object
+---@class Barotrauma.NetWalletTransaction : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MultiPlayerCampaign*SavedExperiencePoints : System.Object, {[System.Int32]:Barotrauma.MultiPlayerCampaign.SavedExperiencePoints}, {[System.Int32]:System.Object}
+---@class Barotrauma.MultiPlayerCampaign.SavedExperiencePoints : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*MultiPlayerCampaign*NetFlags*1System*UInt16 : System.Object, {[Barotrauma.MultiPlayerCampaign.NetFlags]:System.UInt16}, {[System.Object]:System.Object}
+---@class Barotrauma.MultiPlayerCampaign.NetFlags : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Networking*Client
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1Barotrauma*Job : System.Object, {[Barotrauma.Networking.Client]:Barotrauma.Job}, {[System.Object]:System.Object}
+---@class System.ValueTuple*1System*UInt16*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*PurchasedItem : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*PurchasedItem)|(Barotrauma.PurchasedItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PurchasedItem : System.Object, {[System.Int32]:Barotrauma.PurchasedItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*SoldItem : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*SoldItem)|(Barotrauma.SoldItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*SoldItem : System.Object, {[System.Int32]:Barotrauma.SoldItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Type : System.Object, {[Barotrauma.Identifier]:System.Type}, {[System.Object]:System.Object}
+---@class System.Nullable*1Barotrauma*Identifier : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Item
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemContainer
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer : System.Object, {[Barotrauma.Items.Components.ItemContainer]:Barotrauma.PreferredContainer}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemContainer}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Items*Components*ItemContainer*1Barotrauma*PreferredContainer : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Item : System.Object, {[System.Int32]:Barotrauma.Item}, {[System.Int32]:System.Object}
+---@class Barotrauma.NamedEvent*1Barotrauma*CargoManager : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*PurchasedItem*2Barotrauma*Items*Components*IdCard : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*PurchasedItem*1Barotrauma*Items*Components*IdCard}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*PurchasedItem*1Barotrauma*Items*Components*IdCard : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Int32 : System.Object, {[Barotrauma.ItemPrefab]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*CargoManager*T : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*CargoManager*T)|(Barotrauma.CargoManager.T[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CargoManager*T : System.Object, {[System.Int32]:Barotrauma.CargoManager.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.CargoManager.T : System.Object
+---@class Barotrauma.Location.StoreInfo : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*ItemPrefab
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Item
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CargoManager*SoldEntity
+---@class Barotrauma.CargoManager.SoldEntity : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Hull
+---@class System.Func*1Barotrauma*Item*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.ISpatialEntity
+---@class System.Collections.Generic.List
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*PurchasedItem
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2System*String : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Character*1System*String}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Character*1System*String : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Character : System.Object, {[System.Int32]:Barotrauma.Character}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CrewManager*ActiveOrder : System.Object, {[System.Int32]:Barotrauma.CrewManager.ActiveOrder}, {[System.Int32]:System.Object}
+---@class Barotrauma.CrewManager.ActiveOrder : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CharacterInfo
+---@class Barotrauma.ISteerable
+---@class Barotrauma.PathFinder : System.Object
+---@class System.ValueTuple*1Barotrauma*Items*Components*Door*1System*Boolean : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*PathNode*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.PathNode : System.Object
+---@class System.Func*1Barotrauma*Items*Components*Controller*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.List*1System*Single : System.Object, {[System.Int32]:System.Single}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterInfo
+---@class Barotrauma.RateLimiter : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*AfflictionSubscriber : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.AfflictionSubscriber}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.AfflictionSubscriber : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MedicalClinic*NetCrewMember : System.Object, {[System.Int32]:Barotrauma.MedicalClinic.NetCrewMember}, {[System.Int32]:System.Object}
+---@class Barotrauma.MedicalClinic.NetCrewMember : System.ValueType
+---@class Barotrauma.MedicalClinic.NetworkHeader : System.Enum
+---@class Barotrauma.MedicalClinic.HealRequestResult : System.Enum
+---@class Barotrauma.MedicalClinic.NetAffliction : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*MedicalClinic*NetAffliction : System.ValueType, {[System.Int32]:Barotrauma.MedicalClinic.NetAffliction}, {[System.Int32]:Barotrauma.MedicalClinic.NetAffliction}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.MedicalClinic.NetAffliction}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo : System.ValueType, {[System.Int32]:Barotrauma.CharacterInfo}, {[System.Int32]:Barotrauma.CharacterInfo}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CharacterInfo}
+---@class System.Collections.Generic.Dictionary*1System*Byte*1Barotrauma*ReadyStatus : System.Object, {[System.Byte]:Barotrauma.ReadyStatus}, {[System.Object]:System.Object}
+---@class Barotrauma.ReadyStatus : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Networking*Client : System.Object, {[System.Int32]:Barotrauma.Networking.Client}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*Byte : System.Object, {[System.Int32]:System.Byte}, {[System.Int32]:System.Object}
+---@class Barotrauma.CheckDataAction : Barotrauma.BinaryOptionAction
+---@class Barotrauma.BinaryOptionAction : Barotrauma.EventAction
+---@class Barotrauma.EventAction : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Mission*DelayedTriggerEvent : System.Object, {[System.Int32]:Barotrauma.Mission.DelayedTriggerEvent}, {[System.Int32]:System.Object}
+---@class Barotrauma.Mission.DelayedTriggerEvent : System.Object
+---@class System.Action*1Barotrauma*Mission : System.MulticastDelegate
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*MissionPrefab*ReputationReward : System.Object, {[System.Int32]:Barotrauma.MissionPrefab.ReputationReward}, {[System.Int32]:Barotrauma.MissionPrefab.ReputationReward}, {[System.Int32]:Barotrauma.MissionPrefab.ReputationReward}, {[System.Int32]:System.Object}
+---@class Barotrauma.MissionPrefab.ReputationReward : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*LocalizedString*2Microsoft*Xna*Framework*Vector2
+---@class System.ValueTuple*1Barotrauma*LocalizedString*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.MTRandom : System.Random
+---@class Barotrauma.MissionPrefab.TriggerEvent : System.Object
+---@class Barotrauma.Option*1System*Int32 : System.ValueType
+---@class System.ValueTuple*1System*Int32*1System*Int32*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Character*1System*Collections*Generic*List*2Barotrauma*Item : System.Object, {[Barotrauma.Character]:(System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])}, {[System.Object]:System.Object}
+---@class System.Reflection.ConstructorInfo : System.Reflection.MethodBase
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2System*Object*2Barotrauma*SetDataAction*OperationType : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Object*1Barotrauma*SetDataAction*OperationType}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Object*1Barotrauma*SetDataAction*OperationType : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Nullable*1Barotrauma*Networking*RespawnMode : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MissionPrefab*TriggerEvent : System.Object, {[System.Int32]:Barotrauma.MissionPrefab.TriggerEvent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Entity
+---@class System.Collections.Generic.HashSet*1Barotrauma*Entity : System.Object
+---@class Barotrauma.SubmarineType : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Character : System.ValueType, {[System.Int32]:Barotrauma.Character}, {[System.Int32]:Barotrauma.Character}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Character}
+---@class Barotrauma.EndMission.MissionPhase : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*BeaconMission*MonsterSet : System.Object, {[System.Int32]:Barotrauma.BeaconMission.MonsterSet}, {[System.Int32]:System.Object}
+---@class Barotrauma.BeaconMission.MonsterSet : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*UInt16 : System.Object, {[Barotrauma.Item]:System.UInt16}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Int32 : System.Object, {[Barotrauma.Item]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1System*Byte : System.Object, {[Barotrauma.Item]:System.Byte}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*ContentXElement*2Barotrauma*Items*Components*ItemContainer : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*ContentXElement*1Barotrauma*Items*Components*ItemContainer}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*ContentXElement*1Barotrauma*Items*Components*ItemContainer : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CargoMission : System.Object, {[System.Int32]:Barotrauma.CargoMission}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*CombatMission*KillCount : System.Object, {[System.Int32]:Barotrauma.CombatMission.KillCount}, {[System.Int32]:System.Object}
+---@class Barotrauma.CombatMission.KillCount : System.Object
+---@class Barotrauma.Submarine-arr : System.Array
+---@class Barotrauma.CombatMission.WinCondition : System.Enum
+---@class Barotrauma.TagAction.SubType : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*HumanPrefab*1System*Collections*Generic*List*2Barotrauma*StatusEffect : System.Object, {[Barotrauma.HumanPrefab]:(System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*StatusEffect : System.Object, {[System.Int32]:Barotrauma.StatusEffect}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Int32 : System.Object, {[Barotrauma.Identifier]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Item-arr : System.Object, {[Barotrauma.Identifier]:(Barotrauma.Item-arr)|(Barotrauma.Item[])}, {[System.Object]:System.Object}
+---@class Barotrauma.Item-arr : System.Array
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Identifier*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Level*Cave : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Level*PositionType : System.ValueType, {[System.Int32]:Barotrauma.Level.PositionType}, {[System.Int32]:Barotrauma.Level.PositionType}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Level.PositionType}
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point : System.Object
+---@class System.ValueTuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*StatusEffect : System.Object, {[Barotrauma.Item]:Barotrauma.StatusEffect}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1System*Tuple*2Barotrauma*CharacterPrefab*2Microsoft*Xna*Framework*Point : System.Object
+---@class System.Tuple*1Barotrauma*CharacterPrefab*1Microsoft*Xna*Framework*Point : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*SalvageMission*Target*1Barotrauma*SalvageMission*SpawnInfo : System.Object, {[Barotrauma.SalvageMission.Target]:Barotrauma.SalvageMission.SpawnInfo}, {[System.Object]:System.Object}
+---@class Barotrauma.SalvageMission.Target : System.Object
+---@class Barotrauma.SalvageMission.SpawnInfo : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*SalvageMission*Target : System.Object, {[System.Int32]:Barotrauma.SalvageMission.Target}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Scanner : System.Object, {[System.Int32]:Barotrauma.Items.Components.Scanner}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*WayPoint*1System*Boolean : System.Object, {[Barotrauma.WayPoint]:System.Boolean}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*WayPoint : System.Object
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*WayPoint*1System*Boolean : System.ValueType
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Generic.List*1Voronoi2*VoronoiCell : System.Object, {[System.Int32]:Voronoi2.VoronoiCell}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*AbyssIsland : System.Object, {[System.Int32]:Barotrauma.Level.AbyssIsland}, {[System.Int32]:System.Object}
+---@class Barotrauma.Level.AbyssIsland : System.Object
+---@class System.Collections.Generic.List*1System*Double : System.Object, {[System.Int32]:System.Double}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Microsoft*Xna*Framework*Point*2System*Double : System.Object, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Point*1System*Double}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Point*1System*Double : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Body : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Body}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Microsoft*Xna*Framework*Point : System.Object, {[System.Int32]:Microsoft.Xna.Framework.Point}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Level*LevelGenStage*1System*Int32 : System.Object, {[Barotrauma.Level.LevelGenStage]:System.Int32}, {[System.Object]:System.Object}
+---@class Barotrauma.Level.LevelGenStage : System.Enum
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.String]:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2)|(Microsoft.Xna.Framework.Vector2[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*List*2Microsoft*Xna*Framework*Rectangle : System.Object, {[Barotrauma.Submarine]:(System.Collections.Generic.List*1Microsoft*Xna*Framework*Rectangle)|(Microsoft.Xna.Framework.Rectangle[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*RuinGeneration*Ruin : System.Object, {[System.Int32]:Barotrauma.RuinGeneration.Ruin}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LevelWall : System.Object, {[System.Int32]:Barotrauma.LevelWall}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*Tunnel : System.Object, {[System.Int32]:Barotrauma.Level.Tunnel}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*Cave : System.Object, {[System.Int32]:Barotrauma.Level.Cave}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Level*InterestingPosition : System.Object, {[System.Int32]:Barotrauma.Level.InterestingPosition}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Level*LevelGenStage*1System*Int32 : {[Barotrauma.Level.LevelGenStage]:System.Int32}
+---@class Barotrauma.LevelData.LevelType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Level*PathPoint : System.Object, {[System.Int32]:Barotrauma.Level.PathPoint}, {[System.Int32]:System.Object}
+---@class Barotrauma.Level.PathPoint : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Level*ClusterLocation : System.Object, {[System.Int32]:Barotrauma.Level.ClusterLocation}, {[System.Int32]:System.Object}
+---@class Barotrauma.Level.ClusterLocation : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Voronoi2*GraphEdge
+---@class System.Collections.Generic.List*1Voronoi2*GraphEdge : System.Object, {[System.Int32]:Voronoi2.GraphEdge}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Level*Cave
+---@class System.Collections.Generic.List
+---@class System.Func*1Barotrauma*Level*InterestingPosition*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.InterestingPosition-ref
+---@class Barotrauma.LevelData.ThalamusSpawn : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Int32 : System.Object, {[Barotrauma.EventSet]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*OutpostGenerationParams
+---@class System.Collections.Generic.List*1Barotrauma*LevelObject : System.Object, {[System.Int32]:Barotrauma.LevelObject}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Generic.HashSet*1Barotrauma*LevelObject : System.Object
+---@class Barotrauma.LevelObjectManager.SpawnPosition : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LevelObject
+---@class System.Collections.Generic.IEnumerable*1Voronoi2*VoronoiCell
+---@class Barotrauma.LevelObjectPrefab.SpawnPosType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*LevelObjectManager*SpawnPosition : System.Object, {[System.Int32]:Barotrauma.LevelObjectManager.SpawnPosition}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IList*1Barotrauma*LevelObjectPrefab : {[System.Int32]:Barotrauma.LevelObjectPrefab}
+---@class System.Collections.Generic.List*1Barotrauma*ContentXElement : System.Object, {[System.Int32]:Barotrauma.ContentXElement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Single : System.Object, {[Barotrauma.Identifier]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Sprite : System.Object, {[System.Int32]:Barotrauma.Sprite}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Sprite*1System*Xml*Linq*XElement : System.Object, {[Barotrauma.Sprite]:System.Xml.Linq.XElement}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab*ChildObject : System.Object, {[System.Int32]:Barotrauma.LevelObjectPrefab.ChildObject}, {[System.Int32]:System.Object}
+---@class Barotrauma.LevelObjectPrefab.ChildObject : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*LevelObjectPrefab : System.Object, {[System.Int32]:Barotrauma.LevelObjectPrefab}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LevelTrigger : System.Object, {[System.Int32]:Barotrauma.LevelTrigger}, {[System.Int32]:System.Object}
+---@class System.Action*1Barotrauma*LevelTrigger*1Barotrauma*Entity : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*Attack : System.Object, {[System.Int32]:Barotrauma.Attack}, {[System.Int32]:System.Object}
+---@class Barotrauma.LevelTrigger.TriggererType : System.Enum
+---@class System.Collections.Generic.HashSet*1System*String : System.Object
+---@class Barotrauma.LevelTrigger.TriggerForceMode : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*StatusEffect
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Entity*1Microsoft*Xna*Framework*Vector2 : System.Object, {[Barotrauma.Entity]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class FarseerPhysics.Dynamics.Category : System.Enum
+---@class FarseerPhysics.Dynamics.Contacts.Contact : System.Object
+---@class System.ValueTuple*1System*Boolean*1Barotrauma*Submarine : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.IDamageable
+---@class System.Collections.Immutable.ImmutableHashSet*1System*Int32 : System.Object
+---@class System.Nullable*1Barotrauma*Biome*SubmarineAvailability : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Biome*SubmarineAvailability : System.Object
+---@class Barotrauma.Biome.SubmarineAvailability : System.ValueType
+---@class Barotrauma.PrefabCollection*1Barotrauma*Biome : System.Object, {[Barotrauma.Identifier]:Barotrauma.Biome}, {[System.String]:Barotrauma.Biome}
+---@class Barotrauma.SubmarineClass : System.Enum
+---@class Barotrauma.MapGenerationParams : Barotrauma.Prefab
+---@class System.Action*1Barotrauma*Location*1Barotrauma*LocationConnection : System.MulticastDelegate
+---@class System.Action*1Barotrauma*LocationConnection*1System*Collections*Generic*IEnumerable*2Barotrauma*Mission : System.MulticastDelegate
+---@class Barotrauma.NamedEvent*1Barotrauma*Map*LocationChangeInfo : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Location : System.Object, {[System.Int32]:Barotrauma.Location}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Location : {[System.Int32]:Barotrauma.Location}
+---@class System.Collections.Generic.List*1Barotrauma*LocationConnection : System.Object, {[System.Int32]:Barotrauma.LocationConnection}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*Int32
+---@class System.Func*1Barotrauma*Location*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1Barotrauma*LocationConnection*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.RadiationParams : System.Object
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Single : {[Barotrauma.Identifier]:System.Single}
+---@class Barotrauma.PriceInfo-ref
+---@class System.Collections.Generic.List*1Barotrauma*PriceInfo : System.Object, {[System.Int32]:Barotrauma.PriceInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Sprite : System.ValueType, {[System.Int32]:Barotrauma.Sprite}, {[System.Int32]:Barotrauma.Sprite}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Sprite}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2System*Single*2System*Boolean : System.ValueType, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean}
+---@class System.ValueTuple*1Barotrauma*Identifier*1System*Single*1System*Boolean : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1System*Single : System.Object, {[System.Int32]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1System*Int32 : System.Object, {[System.Int32]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LocationTypeChange : System.Object, {[System.Int32]:Barotrauma.LocationTypeChange}, {[System.Int32]:System.Object}
+---@class System.Nullable*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier : System.ValueType
+---@class System.Nullable*1System*Collections*Immutable*ImmutableArray*2System*String : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Location
+---@class System.Func*1Barotrauma*LocationType*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*LocationTypeChange*Requirement*1System*Int32 : System.Object, {[Barotrauma.LocationTypeChange.Requirement]:System.Int32}, {[System.Object]:System.Object}
+---@class Barotrauma.LocationTypeChange.Requirement : System.Object
+---@class System.Nullable*1System*ValueTuple*2Barotrauma*LocationTypeChange*2System*Int32*2Barotrauma*MissionPrefab : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Location*TakenItem : System.Object, {[System.Int32]:Barotrauma.Location.TakenItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Location.TakenItem : System.Object
+---@class System.Collections.Generic.HashSet*1System*Int32 : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Location*LoadedMission : System.Object, {[System.Int32]:Barotrauma.Location.LoadedMission}, {[System.Int32]:System.Object}
+---@class Barotrauma.Location.LoadedMission : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Location*StoreInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.Location.StoreInfo}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Location*TakenItem
+---@class Barotrauma.LocationConnection-ref
+---@class System.Collections.Generic.List*1Barotrauma*LocationTypeChange*Requirement : System.Object, {[System.Int32]:Barotrauma.LocationTypeChange.Requirement}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*EventSet : System.Object, {[System.Int32]:Barotrauma.EventSet}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*EventSet*1System*Collections*Generic*List*2Barotrauma*Event : System.Object, {[Barotrauma.EventSet]:(System.Collections.Generic.List*1Barotrauma*Event)|(Barotrauma.Event[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Event : System.Object, {[System.Int32]:Barotrauma.Event}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Event : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*Event : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*Identifier : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*EventManager*TimeStamp : System.Object, {[System.Int32]:Barotrauma.EventManager.TimeStamp}, {[System.Int32]:System.Object}
+---@class Barotrauma.EventManager.TimeStamp : System.ValueType
+---@class Barotrauma.EventLog : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Event
+---@class Barotrauma.EventManager.NetEventLogEntry : System.ValueType
+---@class Barotrauma.EventManager.NetEventObjective : System.ValueType
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*EventSet : {[System.Int32]:Barotrauma.EventSet}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*EventSet
+---@class System.Linq.IOrderedEnumerable*1Barotrauma*EventManagerSettings
+---@class Barotrauma.T-ref
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Single : System.Object, {[Barotrauma.Identifier]:System.Single}, {[Barotrauma.Identifier]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet*SubEventPrefab : System.ValueType, {[System.Int32]:Barotrauma.EventSet.SubEventPrefab}, {[System.Int32]:Barotrauma.EventSet.SubEventPrefab}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.EventSet.SubEventPrefab}
+---@class Barotrauma.EventSet.SubEventPrefab : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*EventSet : System.ValueType, {[System.Int32]:Barotrauma.EventSet}, {[System.Int32]:Barotrauma.EventSet}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.EventSet}
+---@class System.Func*1Barotrauma*MonsterEvent*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Character : {[System.Int32]:Barotrauma.Character}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*ScriptedEvent*TargetPredicate : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*ScriptedEvent*TargetPredicate)|(Barotrauma.ScriptedEvent.TargetPredicate[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*ScriptedEvent*TargetPredicate : System.Object, {[System.Int32]:Barotrauma.ScriptedEvent.TargetPredicate}, {[System.Int32]:System.Object}
+---@class Barotrauma.ScriptedEvent.TargetPredicate : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Entity : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Entity)|(Barotrauma.Entity[])}, {[System.Object]:System.Object}
+---@class Barotrauma.OnRoundEndAction : Barotrauma.EventAction
+---@class System.Collections.Generic.List*1Barotrauma*EventAction : System.Object, {[System.Int32]:Barotrauma.EventAction}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*Int32*2Barotrauma*EventAction : System.Object, {[System.Int32]:System.ValueTuple*1System*Int32*1Barotrauma*EventAction}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Int32*1Barotrauma*EventAction : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.ScriptedEvent.TargetPredicate.EntityType : System.Enum
+---@class System.Predicate*1Barotrauma*Entity : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Entity : System.Object, {[System.UInt16]:Barotrauma.Entity}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Entity
+---@class System.Collections.Generic.Queue*1Barotrauma*Either*2Barotrauma*EntitySpawner*IEntitySpawnInfo*2Barotrauma*Entity : System.Object
+---@class Barotrauma.Either*1Barotrauma*EntitySpawner*IEntitySpawnInfo*1Barotrauma*Entity : System.Object
+---@class Barotrauma.EntitySpawner.SpawnOrRemove : System.Object
+---@class System.Action*1Barotrauma*Item : System.MulticastDelegate
+---@class System.Predicate*1Barotrauma*EntitySpawner*IEntitySpawnInfo : System.MulticastDelegate
+---@class Barotrauma.EntitySpawner.IEntitySpawnInfo
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Generic.List*1System*UInt16 : System.Object, {[System.Int32]:System.UInt16}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Upgrade : System.Object, {[System.Int32]:Barotrauma.Upgrade}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*MapEntity : System.Object
+---@class Barotrauma.Quad2D : System.ValueType
+---@class System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T : System.Object
+---@class Barotrauma.MapEntity.T : Barotrauma.MapEntity
+---@class System.Func*1Barotrauma*MapEntity*T*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*MapEntity*T : System.Object
+---@class Barotrauma.MapEntity.T : Barotrauma.MapEntity
+---@class System.Func*1Barotrauma*MapEntity*T*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MapEntityPrefab
+---@class System.Collections.Immutable.ImmutableHashSet*1System*String : System.Object
+---@class System.Predicate*1Barotrauma*MapEntityPrefab : System.MulticastDelegate
+---@class Barotrauma.PrefabCollection*1Barotrauma*CoreEntityPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.CoreEntityPrefab}, {[System.String]:Barotrauma.CoreEntityPrefab}
+---@class System.Action*1Barotrauma*ItemPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*ItemPrefab : System.MulticastDelegate
+---@class System.Action*1Barotrauma*ContentFile : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*ItemPrefab)|(fun():(Barotrauma.ItemPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*ItemPrefab : System.ValueType
+---@class System.Collections.Generic.HashSet*1Barotrauma*ContentFile : System.Object
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*ItemPrefab
+---@class Barotrauma.ItemPrefab-ref
+---@class System.Predicate*1Barotrauma*ItemPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*ItemPrefab
+---@class System.Action*1Barotrauma*JobPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*JobPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*JobPrefab)|(fun():(Barotrauma.JobPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*JobPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*JobPrefab
+---@class Barotrauma.JobPrefab-ref
+---@class System.Predicate*1Barotrauma*JobPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*JobPrefab
+---@class System.Action*1Barotrauma*CharacterPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*CharacterPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*CharacterPrefab)|(fun():(Barotrauma.CharacterPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*CharacterPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*CharacterPrefab
+---@class Barotrauma.CharacterPrefab-ref
+---@class System.Predicate*1Barotrauma*CharacterPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*CharacterPrefab
+---@class System.Action*1Barotrauma*HumanPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*HumanPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*HumanPrefab)|(fun():(Barotrauma.HumanPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*HumanPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*HumanPrefab
+---@class Barotrauma.HumanPrefab-ref
+---@class System.Predicate*1Barotrauma*HumanPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*HumanPrefab
+---@class System.Action*1Barotrauma*AfflictionPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*AfflictionPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*AfflictionPrefab)|(fun():(Barotrauma.AfflictionPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*AfflictionPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*AfflictionPrefab
+---@class Barotrauma.AfflictionPrefab-ref
+---@class System.Predicate*1Barotrauma*AfflictionPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*AfflictionPrefab
+---@class System.Action*1Barotrauma*TalentPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*TalentPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*TalentPrefab)|(fun():(Barotrauma.TalentPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentPrefab
+---@class Barotrauma.TalentPrefab-ref
+---@class System.Predicate*1Barotrauma*TalentPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*TalentPrefab
+---@class System.Action*1Barotrauma*TalentTree*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*TalentTree : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*TalentTree)|(fun():(Barotrauma.TalentTree))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*TalentTree : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*TalentTree
+---@class Barotrauma.TalentTree-ref
+---@class System.Predicate*1Barotrauma*TalentTree : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*TalentTree
+---@class System.Action*1Barotrauma*OrderPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*OrderPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*OrderPrefab)|(fun():(Barotrauma.OrderPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*OrderPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*OrderPrefab
+---@class Barotrauma.OrderPrefab-ref
+---@class System.Predicate*1Barotrauma*OrderPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*OrderPrefab
+---@class System.Action*1Barotrauma*LevelGenerationParams*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*LevelGenerationParams : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*LevelGenerationParams)|(fun():(Barotrauma.LevelGenerationParams))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LevelGenerationParams : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LevelGenerationParams
+---@class Barotrauma.LevelGenerationParams-ref
+---@class System.Predicate*1Barotrauma*LevelGenerationParams : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*LevelGenerationParams
+---@class System.Action*1Barotrauma*LocationType*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*LocationType : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*LocationType)|(fun():(Barotrauma.LocationType))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*LocationType : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*LocationType
+---@class Barotrauma.LocationType-ref
+---@class System.Predicate*1Barotrauma*LocationType : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*LocationType
+---@class System.Action*1Barotrauma*EventPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*EventPrefab : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*EventPrefab)|(fun():(Barotrauma.EventPrefab))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventPrefab : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventPrefab
+---@class Barotrauma.EventPrefab-ref
+---@class System.Predicate*1Barotrauma*EventPrefab : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*EventPrefab
+---@class System.Action*1Barotrauma*EventSet*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*EventSet : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*EventSet)|(fun():(Barotrauma.EventSet))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventSet : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventSet
+---@class Barotrauma.EventSet-ref
+---@class System.Predicate*1Barotrauma*EventSet : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*EventSet
+---@class System.Action*1Barotrauma*EventManagerSettings*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*EventManagerSettings : System.MulticastDelegate
+---@class System.Collections.Concurrent.ConcurrentDictionary*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings : System.Object, {[Barotrauma.Identifier]:(Barotrauma.PrefabSelector*1Barotrauma*EventManagerSettings)|(fun():(Barotrauma.EventManagerSettings))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*PrefabSelector*2Barotrauma*EventManagerSettings : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1System*Collections*Generic*KeyValuePair*2Barotrauma*Identifier*2Barotrauma*PrefabSelector*3Barotrauma*EventManagerSettings
+---@class Barotrauma.EventManagerSettings-ref
+---@class System.Predicate*1Barotrauma*EventManagerSettings : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*EventManagerSettings
+---@class System.Collections.Generic.List*1Barotrauma*SkillSettings : System.Object, {[System.Int32]:Barotrauma.SkillSettings}, {[System.Int32]:System.Object}
+---@class System.Action*1Barotrauma*SkillSettings : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerator*1Barotrauma*SkillSettings
+---@class System.Collections.Generic.List*1Barotrauma*WearableSprite : System.Object, {[System.Int32]:Barotrauma.WearableSprite}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Microsoft*Xna*Framework*Color*2System*Single : System.ValueType, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single}, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single}
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Color*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Collections*Generic*List*2Barotrauma*SavedStatValue : System.Object, {[Barotrauma.StatTypes]:(System.Collections.Generic.List*1Barotrauma*SavedStatValue)|(Barotrauma.SavedStatValue[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*SavedStatValue : System.Object, {[System.Int32]:Barotrauma.SavedStatValue}, {[System.Int32]:System.Object}
+---@class Barotrauma.SavedStatValue : System.Object
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*StatTypes : System.Object, {[Barotrauma.Identifier]:Barotrauma.StatTypes}, {[Barotrauma.Identifier]:Barotrauma.StatTypes}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Order : System.Object, {[System.Int32]:Barotrauma.Order}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*ContentXElement : {[System.Int32]:Barotrauma.ContentXElement}
+---@class Barotrauma.Order-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*LinkedSubmarine : System.Object, {[System.Int32]:Barotrauma.LinkedSubmarine}, {[System.Int32]:System.Object}
+---@class Barotrauma.LinkedSubmarine : Barotrauma.MapEntity
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Character
+---@class System.Nullable*1Barotrauma*WearableType : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray
+---@class System.Collections.Generic.IEnumerable*1System*Single
+---@class Barotrauma.Either*1Barotrauma*Job*1Barotrauma*JobPrefab : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CharacterInfo*HeadPreset : System.ValueType, {[System.Int32]:Barotrauma.CharacterInfo.HeadPreset}, {[System.Int32]:Barotrauma.CharacterInfo.HeadPreset}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CharacterInfo.HeadPreset}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[System.Object]:System.Object}
+---@class Barotrauma.Key-arr : System.Array
+---@class System.Collections.Generic.HashSet*1Barotrauma*LatchOntoAI : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Projectile : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*ActiveTeamChange : System.Object, {[System.String]:Barotrauma.ActiveTeamChange}, {[System.Object]:System.Object}
+---@class Barotrauma.ActiveTeamChange : System.Object
+---@class Barotrauma.CombatAction : Barotrauma.EventAction
+---@class System.Collections.Generic.List*1Barotrauma*Character*Attacker : System.Object, {[System.Int32]:Barotrauma.Character.Attacker}, {[System.Int32]:System.Object}
+---@class Barotrauma.Character.Attacker : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ItemPrefab*1System*Double : System.Object, {[Barotrauma.ItemPrefab]:System.Double}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ActionType*1System*Collections*Generic*List*2Barotrauma*StatusEffect : System.Object, {[Barotrauma.ActionType]:(System.Collections.Generic.List*1Barotrauma*StatusEffect)|(Barotrauma.StatusEffect[])}, {[System.Object]:System.Object}
+---@class System.Action*1Barotrauma*Character*1Barotrauma*Character : System.MulticastDelegate
+---@class Barotrauma.ConversationAction : Barotrauma.EventAction
+---@class Barotrauma.Character.OnDeathHandler : System.MulticastDelegate
+---@class Barotrauma.Character.OnAttackedHandler : System.MulticastDelegate
+---@class Barotrauma.Character.AttackTargetData : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*AIChatMessage : System.Object, {[System.Int32]:Barotrauma.AIChatMessage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*AttackContext : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Hull : System.Object, {[System.Int32]:Barotrauma.Hull}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Hull : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*CharacterTalent : System.Object, {[System.Int32]:Barotrauma.CharacterTalent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*StatTypes*1System*Single : System.Object, {[Barotrauma.StatTypes]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*TalentResistanceIdentifier*1System*Single : System.Object, {[Barotrauma.TalentResistanceIdentifier]:System.Single}, {[System.Object]:System.Object}
+---@class Barotrauma.TalentResistanceIdentifier : System.ValueType
+---@class Barotrauma.Character.InputNetFlags : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Character*NetInputMem : System.Object, {[System.Int32]:Barotrauma.Character.NetInputMem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Character.NetInputMem : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*CharacterStateInfo : System.Object, {[System.Int32]:Barotrauma.CharacterStateInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.CharacterStateInfo : Barotrauma.PosInfo
+---@class Barotrauma.PosInfo : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Character*Attacker
+---@class Barotrauma.AnimController.Animation : System.Enum
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CharacterTalent
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AttackContext
+---@class System.Nullable*1Barotrauma*InvSlotType : System.ValueType
+---@class System.Func*1Barotrauma*InvSlotType*1System*Boolean : System.MulticastDelegate
+---@class System.ValueTuple
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*InvSlotType
+---@class Barotrauma.CharacterInventory.AccessLevel : System.Enum
+---@class Barotrauma.Item-ref
+---@class System.Func*1Barotrauma*Item*1System*Single : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Order*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Affliction
+---@class Barotrauma.Limb-ref
+---@class System.Collections.Generic.List*1Barotrauma*CharacterHealth*LimbHealth : System.Object, {[System.Int32]:Barotrauma.CharacterHealth.LimbHealth}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth : System.Object, {[Barotrauma.Affliction]:Barotrauma.CharacterHealth.LimbHealth}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Affliction : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*CharacterHealth*LimbHealth*2Barotrauma*Affliction : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*Affliction}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*CharacterHealth*LimbHealth*1Barotrauma*Affliction : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*Collections*Generic*KeyValuePair*2Barotrauma*Affliction*2Barotrauma*CharacterHealth*LimbHealth : System.Object, {[System.Int32]:System.Collections.Generic.KeyValuePair*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Affliction*1Barotrauma*CharacterHealth*LimbHealth : System.ValueType
+---@class System.ValueTuple*1Barotrauma*CauseOfDeathType*1Barotrauma*Affliction : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*Affliction*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Affliction
+---@class Barotrauma.CharacterHealth.T : Barotrauma.Affliction
+---@class System.Nullable*1Barotrauma*ActionType : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*InvSlotType : System.Object, {[System.Int32]:Barotrauma.InvSlotType}, {[System.Int32]:System.Object}
+---@class Barotrauma.InvSlotType-arr : System.Array
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AbilityEffectType*1System*Collections*Generic*List*2Barotrauma*Abilities*CharacterAbilityGroupEffect : System.Object, {[Barotrauma.AbilityEffectType]:(System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupEffect)|(Barotrauma.Abilities.CharacterAbilityGroupEffect[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupEffect : System.Object, {[System.Int32]:Barotrauma.Abilities.CharacterAbilityGroupEffect}, {[System.Int32]:System.Object}
+---@class Barotrauma.Abilities.CharacterAbilityGroupEffect : Barotrauma.Abilities.CharacterAbilityGroup
+---@class Barotrauma.Abilities.CharacterAbilityGroup : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Abilities*CharacterAbilityGroupInterval : System.Object, {[System.Int32]:Barotrauma.Abilities.CharacterAbilityGroupInterval}, {[System.Int32]:System.Object}
+---@class Barotrauma.Abilities.CharacterAbilityGroupInterval : Barotrauma.Abilities.CharacterAbilityGroup
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*SubParam : System.Object, {[System.Int32]:Barotrauma.CharacterParams.SubParam}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*SoundParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.SoundParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*ParticleParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.ParticleParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.InventoryParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.CharacterParams.T : Barotrauma.CharacterParams.SubParam
+---@class System.Collections.Generic.IList*1Barotrauma*CharacterParams*T : {[System.Int32]:Barotrauma.CharacterParams.T}
+---@class System.Func*1Barotrauma*ContentXElement*1Barotrauma*CharacterParams*1Barotrauma*CharacterParams*T : System.MulticastDelegate
+---@class Barotrauma.CharacterParams.T : Barotrauma.CharacterParams.SubParam
+---@class Barotrauma.T-ref
+---@class System.Collections.Generic.IList*1Barotrauma*CharacterParams*T : {[System.Int32]:Barotrauma.CharacterParams.T}
+---@class System.Func*1System*Collections*Generic*IList*2Barotrauma*CharacterParams*T*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*TargetParams : System.Object, {[System.Int32]:Barotrauma.CharacterParams.TargetParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.WallTargetingMethod : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams
+---@class Barotrauma.TargetParams-ref
+---@class System.Func*1Barotrauma*CharacterParams*TargetParams*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable
+---@class System.Collections.Generic.List*1Barotrauma*CharacterParams*InventoryParams*InventoryItem : System.Object, {[System.Int32]:Barotrauma.CharacterParams.InventoryParams.InventoryItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.CharacterParams.InventoryParams.InventoryItem : Barotrauma.CharacterParams.SubParam
+---@class Barotrauma.CharacterParams.SubParam.T : Barotrauma.CharacterParams.SubParam
+---@class System.Collections.Generic.IList*1Barotrauma*CharacterParams*SubParam*T : {[System.Int32]:Barotrauma.CharacterParams.SubParam.T}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*CharacterFile
+---@class System.Collections.Generic.List*1System*Tuple*2Microsoft*Xna*Framework*Vector2*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.Tuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerTransfer : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*PowerContainer : System.Object
+---@class System.Collections.Generic.List*1System*Tuple*2System*UInt16*2System*Int32 : System.Object, {[System.Int32]:System.Tuple*1System*UInt16*1System*Int32}, {[System.Int32]:System.Object}
+---@class System.Tuple*1System*UInt16*1System*Int32 : System.Object, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior*AITarget : System.Object, {[System.Int32]:Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AITarget}, {[System.Int32]:System.Object}
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AITarget : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch : System.Object, {[System.Int32]:Barotrauma.MapCreatures.Behavior.BallastFloraBranch}, {[System.Int32]:System.Object}
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraStateMachine : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior : System.Object, {[System.Int32]:Barotrauma.MapCreatures.Behavior.BallastFloraBehavior}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*MapCreatures*Behavior*BallastFloraBehavior
+---@class Barotrauma.Items.Components.TileSide : System.Enum
+---@class System.Collections.Generic.List
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.AttackType : System.Enum
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.IEventData
+---@class Barotrauma.MapCreatures.Behavior.BallastFloraBehavior.InfectEventData.InfectState : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Barotrauma*MapCreatures*Behavior*BallastFloraBranch : System.Object, {[Barotrauma.Items.Components.TileSide]:Barotrauma.MapCreatures.Behavior.BallastFloraBranch}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.VineTileType : System.Enum
+---@class System.Nullable*1Barotrauma*Items*Components*FoliageConfig : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*PetBehavior*ItemProduction : System.Object, {[System.Int32]:Barotrauma.PetBehavior.ItemProduction}, {[System.Int32]:System.Object}
+---@class Barotrauma.PetBehavior.ItemProduction : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*PetBehavior*Food : System.Object, {[System.Int32]:Barotrauma.PetBehavior.Food}, {[System.Int32]:System.Object}
+---@class Barotrauma.PetBehavior.Food : System.Object
+---@class Barotrauma.PetBehavior.StatusIndicatorType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*AICharacter : System.Object, {[System.Int32]:Barotrauma.AICharacter}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*AICharacter : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AICharacter
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Joints*Joint : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Joints.Joint}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.Joints.Joint : System.Object
+---@class System.Nullable*1Barotrauma*OrderCategory : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableArray*2Barotrauma*Identifier : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[System.Object]:System.Object}
+---@class Barotrauma.ListDictionary*1Barotrauma*Identifier*1Barotrauma*LocalizedString : System.Object, {[Barotrauma.Identifier]:Barotrauma.LocalizedString}
+---@class System.Collections.Generic.KeyValuePair*1Barotrauma*Identifier*1Barotrauma*LocalizedString : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*Sprite : System.Object, {[Barotrauma.Identifier]:Barotrauma.Sprite}, {[Barotrauma.Identifier]:Barotrauma.Sprite}, {[System.Object]:System.Object}
+---@class Barotrauma.OrderPrefab.OrderTargetType : System.Enum
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Identifier : {[System.Int32]:Barotrauma.Identifier}
+---@class Barotrauma.Items.Components.ItemComponent-ref
+---@class Barotrauma.Order.OrderType : System.Enum
+---@class Barotrauma.Order.OrderTargetType : System.Enum
+---@class System.Collections.Immutable.ImmutableArray
+---@class System.Nullable*1Barotrauma*Order*OrderType : System.ValueType
+---@class System.Nullable*1Barotrauma*Order*OrderTargetType : System.ValueType
+---@class Barotrauma.EnemyTargetingRestrictions : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AITarget*1Barotrauma*AITargetMemory : System.Object, {[Barotrauma.AITarget]:Barotrauma.AITargetMemory}, {[System.Object]:System.Object}
+---@class Barotrauma.CirclePhase : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Limb : System.Object, {[System.Int32]:Barotrauma.Limb}, {[System.Int32]:System.Object}
+---@class Barotrauma.EnemyAIController.WallTarget : System.Object
+---@class System.Collections.Generic.List*1System*ValueTuple*2FarseerPhysics*Dynamics*Body*2System*Int32*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.ValueTuple*1FarseerPhysics*Dynamics*Body*1System*Int32*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1FarseerPhysics*Dynamics*Body*1System*Int32*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*AITarget : System.Object, {[System.Int32]:Barotrauma.AITarget}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*AITarget : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*StatusEffect*AITrigger*1Barotrauma*CharacterParams*TargetParams : System.Object, {[Barotrauma.StatusEffect.AITrigger]:Barotrauma.CharacterParams.TargetParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*StatusEffect*AITrigger : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*IEnumerable*2Barotrauma*CharacterParams*TargetParams : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.IEnumerable*1Barotrauma*CharacterParams*TargetParams)|(fun():(Barotrauma.CharacterParams.TargetParams))}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*CharacterParams*TargetParams : System.Object, {[Barotrauma.Identifier]:Barotrauma.CharacterParams.TargetParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Character*1Barotrauma*AttackResult : System.Object, {[Barotrauma.Character]:Barotrauma.AttackResult}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Hull*1Barotrauma*HumanAIController*HullSafety : System.Object, {[Barotrauma.Hull]:Barotrauma.HumanAIController.HullSafety}, {[System.Object]:System.Object}
+---@class Barotrauma.HumanAIController.HullSafety : System.Object
+---@class Barotrauma.HumanAIController.FindItemState : System.Enum
+---@class Barotrauma.MentalStateManager : System.Object
+---@class Barotrauma.ShipCommandManager : System.Object
+---@class System.Func*1Barotrauma*HumanAIController*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1Barotrauma*AIObjective*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable
+---@class Barotrauma.HumanAIController.T2 : System.Object
+---@class Barotrauma.HumanAIController.T2 : System.Object
+---@class System.Func*1Barotrauma*Character*1System*Boolean : System.MulticastDelegate
+---@class System.Action*1Barotrauma*HumanAIController : System.MulticastDelegate
+---@class Barotrauma.AITarget.TargetType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*AIObjective : System.Object, {[System.Int32]:Barotrauma.AIObjective}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*1Barotrauma*CoroutineHandle : System.Object, {[Barotrauma.AIObjective]:Barotrauma.CoroutineHandle}, {[System.Object]:System.Object}
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AIObjectiveManager*T
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class System.Func*1Barotrauma*AIObjectiveManager*T*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.AIObjectiveManager.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective
+---@class Barotrauma.T-ref
+---@class Barotrauma.AIObjective.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AIObjective*T1*1Barotrauma*AIObjective*T2 : System.Object, {[Barotrauma.AIObjective.T1]:Barotrauma.AIObjective.T2}, {[System.Object]:System.Object}
+---@class Barotrauma.AIObjective.T1 : System.Object
+---@class Barotrauma.AIObjective.T2 : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AIObjective*T1
+---@class Barotrauma.T-ref
+---@class System.Func*1Barotrauma*AIObjective*T : System.MulticastDelegate
+---@class Barotrauma.AIObjective.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*PowerContainer : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*PowerContainer
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Item : Barotrauma.AIObjective
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*ItemComponent : System.Object
+---@class System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Body
+---@class System.Func*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ItemComponent
+---@class System.Collections.Generic.ICollection*1Barotrauma*Items*Components*ItemComponent
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Hull : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Character : Barotrauma.AIObjective
+---@class Barotrauma.Hull-ref
+---@class Barotrauma.AIObjectiveFindSafety.HullSearchStatus : System.Enum
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Gap : Barotrauma.AIObjective
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Gap
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Item*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Item*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Item*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Func*1Barotrauma*Item*1Barotrauma*Identifier*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1System*Single : System.MulticastDelegate
+---@class Barotrauma.AIObjectiveIdle.BehaviorType : System.Enum
+---@class Barotrauma.AIObjectiveOperateItem.T : Barotrauma.AIObjective
+---@class Barotrauma.AIObjectiveLoop*1Barotrauma*Items*Components*Pump : Barotrauma.AIObjective
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Pump : System.Object, {[System.Int32]:Barotrauma.Items.Components.Pump}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Pump
+---@class Barotrauma.AIObjectiveRepairItems.T : Barotrauma.AIObjective
+---@class System.Collections.Generic.List*1Barotrauma*LocalizedString : System.Object, {[System.Int32]:Barotrauma.LocalizedString}, {[System.Int32]:System.Object}
+---@class Barotrauma.RagdollParams.LimbParams : Barotrauma.RagdollParams.SubParam
+---@class Barotrauma.RagdollParams.SubParam : System.Object
+---@class FarseerPhysics.Dynamics.Joints.FixedMouseJoint : FarseerPhysics.Dynamics.Joints.Joint
+---@class Barotrauma.Direction : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*DamageModifier : System.Object, {[System.Int32]:Barotrauma.DamageModifier}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.Joints.WeldJoint : FarseerPhysics.Dynamics.Joints.Joint
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LimbJoint
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Limb
+---@class Barotrauma.AttackResult-ref
+---@class Barotrauma.RagdollParams.JointParams : Barotrauma.RagdollParams.SubParam
+---@class FarseerPhysics.Dynamics.Joints.RevoluteJoint : FarseerPhysics.Dynamics.Joints.Joint
+---@class System.Collections.Generic.Queue*1Barotrauma*Ragdoll*Impact : System.Object
+---@class Barotrauma.Ragdoll.Impact : System.ValueType
+---@class Barotrauma.Limb-arr : System.Array
+---@class System.Collections.Generic.Dictionary*1Barotrauma*LimbType*1Barotrauma*Limb : System.Object, {[Barotrauma.LimbType]:Barotrauma.Limb}, {[System.Object]:System.Object}
+---@class Barotrauma.LimbJoint-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*PhysicsBody : System.Object, {[System.Int32]:Barotrauma.PhysicsBody}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*LimbJoint : System.Object, {[System.Int32]:Barotrauma.LimbJoint}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Ragdoll : System.Object, {[System.Int32]:Barotrauma.Ragdoll}, {[System.Int32]:System.Object}
+---@class Barotrauma.PhysicsBody-ref
+---@class System.Func*1Barotrauma*Limb*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimController*AnimSwap : System.Object, {[Barotrauma.AnimationType]:Barotrauma.AnimController.AnimSwap}, {[System.Object]:System.Object}
+---@class Barotrauma.AnimationType : System.Enum
+---@class Barotrauma.AnimController.AnimSwap : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*AnimationType : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AnimationType*1Barotrauma*AnimationParams : System.Object, {[Barotrauma.AnimationType]:Barotrauma.AnimationParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*AnimationParams : System.Object, {[System.Int32]:Barotrauma.AnimationParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*LimbType
+---@class Barotrauma.Either*1System*String*1Barotrauma*ContentPath : System.Object
+---@class Barotrauma.AnimationParams-ref
+---@class Barotrauma.IFishAnimation
+---@class Barotrauma.IHumanAnimation
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*RagdollParams : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RagdollParams)|({[System.String]:(Barotrauma.RagdollParams)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*RagdollParams : System.Object, {[System.String]:Barotrauma.RagdollParams}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*RagdollParams*ColliderParams : System.Object, {[System.Int32]:Barotrauma.RagdollParams.ColliderParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.RagdollParams.ColliderParams : Barotrauma.RagdollParams.SubParam
+---@class System.Collections.Generic.List*1Barotrauma*RagdollParams*LimbParams : System.Object, {[System.Int32]:Barotrauma.RagdollParams.LimbParams}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*RagdollParams*JointParams : System.Object, {[System.Int32]:Barotrauma.RagdollParams.JointParams}, {[System.Int32]:System.Object}
+---@class Barotrauma.Memento*1Barotrauma*RagdollParams : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*RagdollParams*SubParam
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class Barotrauma.RagdollParams.T : Barotrauma.RagdollParams
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*Dictionary*2System*String*2Barotrauma*AnimationParams : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.Dictionary*1System*String*1Barotrauma*AnimationParams)|({[System.String]:(Barotrauma.AnimationParams)})}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*AnimationParams : System.Object, {[System.String]:Barotrauma.AnimationParams}, {[System.Object]:System.Object}
+---@class Barotrauma.Memento*1Barotrauma*AnimationParams : System.Object
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class Barotrauma.AnimationParams.T : Barotrauma.AnimationParams
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Barotrauma*Skill : System.Object, {[Barotrauma.Identifier]:Barotrauma.Skill}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Skill
+---@class Barotrauma.JobPrefab.JobItem : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*JobPrefab*JobItem
+---@class Barotrauma.Skill-arr : System.Array
+---@class System.Collections.Immutable.ImmutableDictionary*1System*Int32*1System*Collections*Immutable*ImmutableArray*2Barotrauma*JobPrefab*JobItem : System.Object, {[System.Int32]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem)|(Barotrauma.JobPrefab.JobItem[])}, {[System.Int32]:(System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem)|(Barotrauma.JobPrefab.JobItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*JobPrefab*JobItem : System.ValueType, {[System.Int32]:Barotrauma.JobPrefab.JobItem}, {[System.Int32]:Barotrauma.JobPrefab.JobItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.JobPrefab.JobItem}
+---@class System.Collections.Generic.List*1Barotrauma*SkillPrefab : System.Object, {[System.Int32]:Barotrauma.SkillPrefab}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*AutonomousObjective : System.Object, {[System.Int32]:Barotrauma.AutonomousObjective}, {[System.Int32]:System.Object}
+---@class Barotrauma.AutonomousObjective : System.Object
+---@class System.Func*1Barotrauma*JobPrefab*1System*Boolean : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*BackgroundSection : System.Object
+---@class Barotrauma.BackgroundSection : System.Object
+---@class Barotrauma.PrefabCollection*1Barotrauma*DecalPrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.DecalPrefab}, {[System.String]:Barotrauma.DecalPrefab}
+---@class Barotrauma.PrefabCollection*1Barotrauma*GrimeSprite : System.Object, {[Barotrauma.Identifier]:Barotrauma.GrimeSprite}, {[System.String]:Barotrauma.GrimeSprite}
+---@class Barotrauma.GrimeSprite : Barotrauma.Prefab
+---@class Barotrauma.Option*1System*ValueTuple*2Barotrauma*Identifier*2System*Int32 : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*TalentMigration : System.Object
+---@class Barotrauma.TalentMigration : System.Object
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Immutable*ImmutableHashSet*2Barotrauma*Identifier : System.Object, {[Barotrauma.Identifier]:(System.Collections.Immutable.ImmutableHashSet*1Barotrauma*Identifier)|(Barotrauma.Identifier[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Identifier
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentOption : System.ValueType, {[System.Int32]:Barotrauma.TalentOption}, {[System.Int32]:Barotrauma.TalentOption}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TalentOption}
+---@class Barotrauma.TalentTreeType : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TalentSubTree : System.ValueType, {[System.Int32]:Barotrauma.TalentSubTree}, {[System.Int32]:Barotrauma.TalentSubTree}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TalentSubTree}
+---@class Barotrauma.TalentTree.TalentStages : System.Enum
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*PriceInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.PriceInfo}, {[Barotrauma.Identifier]:Barotrauma.PriceInfo}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Microsoft*Xna*Framework*Rectangle : System.ValueType, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}, {[System.Int32]:System.Object}, {[System.Int32]:Microsoft.Xna.Framework.Rectangle}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*DeconstructItem : System.ValueType, {[System.Int32]:Barotrauma.DeconstructItem}, {[System.Int32]:Barotrauma.DeconstructItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.DeconstructItem}
+---@class System.Collections.Immutable.ImmutableDictionary*1System*UInt32*1Barotrauma*FabricationRecipe : System.Object, {[System.UInt32]:Barotrauma.FabricationRecipe}, {[System.UInt32]:Barotrauma.FabricationRecipe}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*PreferredContainer : System.ValueType, {[System.Int32]:Barotrauma.PreferredContainer}, {[System.Int32]:Barotrauma.PreferredContainer}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.PreferredContainer}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*SkillRequirementHint : System.ValueType, {[System.Int32]:Barotrauma.SkillRequirementHint}, {[System.Int32]:Barotrauma.SkillRequirementHint}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.SkillRequirementHint}
+---@class Barotrauma.SkillRequirementHint : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*CommonnessInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.CommonnessInfo}, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.CommonnessInfo}, {[System.Object]:System.Object}
+---@class Barotrauma.ItemPrefab.CommonnessInfo : System.ValueType
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Identifier*1Barotrauma*ItemPrefab*FixedQuantityResourceInfo : System.Object, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.FixedQuantityResourceInfo}, {[Barotrauma.Identifier]:Barotrauma.ItemPrefab.FixedQuantityResourceInfo}, {[System.Object]:System.Object}
+---@class Barotrauma.ItemPrefab.FixedQuantityResourceInfo : System.ValueType
+---@class System.Nullable*1Barotrauma*ItemPrefab*CommonnessInfo : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemAssemblyPrefab*DisplayEntity : System.ValueType, {[System.Int32]:Barotrauma.ItemAssemblyPrefab.DisplayEntity}, {[System.Int32]:Barotrauma.ItemAssemblyPrefab.DisplayEntity}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ItemAssemblyPrefab.DisplayEntity}
+---@class Barotrauma.ItemAssemblyPrefab.DisplayEntity : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1Barotrauma*CampaignMode*InteractionType : System.Object, {[Barotrauma.Networking.Client]:Barotrauma.CampaignMode.InteractionType}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Type*1Barotrauma*Items*Components*ItemComponent : System.Object, {[System.Type]:Barotrauma.Items.Components.ItemComponent}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemComponent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*IDrawableComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.IDrawableComponent}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.IDrawableComponent
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Fixture : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Fixture}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*String*1Barotrauma*Items*Components*Connection : System.Object, {[System.String]:Barotrauma.Items.Components.Connection}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Repairable : System.Object, {[System.Int32]:Barotrauma.Items.Components.Repairable}, {[System.Int32]:System.Object}
+---@class System.Collections.Concurrent.ConcurrentQueue*1System*Single : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*InvSlotType : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ItemInventory : System.ValueType, {[System.Int32]:Barotrauma.ItemInventory}, {[System.Int32]:Barotrauma.ItemInventory}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ItemInventory}
+---@class System.Collections.Generic.HashSet*1Barotrauma*ItemPrefab : System.Object
+---@class Barotrauma.ItemStatManager : System.Object
+---@class System.Collections.Generic.HashSet*1System*ValueTuple*2Barotrauma*Items*Components*Signal*2Barotrauma*Items*Components*Connection : System.Object
+---@class System.ValueTuple*1Barotrauma*Items*Components*Signal*1Barotrauma*Items*Components*Connection : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1System*ValueTuple*2Barotrauma*Identifier*2Barotrauma*Identifier : System.ValueType, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}, {[System.Int32]:System.Object}, {[System.Int32]:System.ValueTuple*1Barotrauma*Identifier*1Barotrauma*Identifier}
+---@class FarseerPhysics.BodyType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Connection : System.Object, {[System.Int32]:Barotrauma.Items.Components.Connection}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*Object*2Barotrauma*SerializableProperty : System.Object, {[System.Int32]:System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*Object*1Barotrauma*SerializableProperty : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Option*1System*UInt16 : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Item*1Barotrauma*ItemPrefab : System.Object, {[Barotrauma.Item]:Barotrauma.ItemPrefab}, {[System.Object]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Item*T
+---@class Barotrauma.Item.T : System.Object
+---@class Barotrauma.Items.Components.Quality.StatType : System.Enum
+---@class System.Func*1Barotrauma*Inventory*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Items*Components*Connection*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class System.Collections.Generic.List*1Barotrauma*Item*T : System.Object, {[System.Int32]:Barotrauma.Item.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Items.Components.Controller-ref
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Item.T : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Items.Components.ItemComponent.IEventData
+---@class Barotrauma.RelatedItem.RelationType : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*RelatedItem*RelationType*1System*Collections*Generic*List*2Barotrauma*RelatedItem : System.Object, {[Barotrauma.RelatedItem.RelationType]:(System.Collections.Generic.List*1Barotrauma*RelatedItem)|(Barotrauma.RelatedItem[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*StatTypes*1System*Single : System.Object, {[Barotrauma.StatTypes]:System.Single}, {[Barotrauma.StatTypes]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Queue*1FarseerPhysics*Dynamics*Fixture : System.Object
+---@class Barotrauma.Items.Components.Propulsion.UseEnvironment : System.Enum
+---@class System.Collections.Generic.IReadOnlySet*1Barotrauma*Identifier
+---@class Barotrauma.Items.Components.RangedWeapon.ChargingState : System.Enum
+---@class Barotrauma.Items.Components.RepairTool.UseEnvironment : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1Microsoft*Xna*Framework*Color : System.Object, {[Barotrauma.Identifier]:Microsoft.Xna.Framework.Color}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.Throwable.ThrowState : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*LimbPos : System.Object, {[System.Int32]:Barotrauma.Items.Components.LimbPos}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*LimbPos
+---@class Barotrauma.Items.Components.Controller.UseEnvironment : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*DeconstructItem : System.Object, {[System.Int32]:Barotrauma.DeconstructItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1System*ValueTuple*2Barotrauma*Item*2Barotrauma*DeconstructItem
+---@class System.ValueTuple*1Barotrauma*Item*1Barotrauma*DeconstructItem : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Fabricator.FabricatorState : System.Enum
+---@class System.Collections.Generic.Dictionary*1System*UInt32*1System*Int32 : System.Object, {[System.UInt32]:System.Int32}, {[System.Object]:System.Object}
+---@class System.Action*1Barotrauma*Item*1Barotrauma*Character : System.MulticastDelegate
+---@class System.Collections.Generic.HashSet*1Barotrauma*Inventory : System.Object
+---@class Barotrauma.Items.Components.Fabricator.QualityResult : System.ValueType
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Item : {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Item)|(Barotrauma.Item[])}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Skill : System.ValueType, {[System.Int32]:Barotrauma.Skill}, {[System.Int32]:Barotrauma.Skill}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Skill}
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*Vent*2System*Single : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Items*Components*Vent*1System*Single}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Items*Components*Vent*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.PowerPriority : System.Enum
+---@class Barotrauma.Items.Components.PowerRange : System.ValueType
+---@class Barotrauma.Items.Components.Sonar.Mode : System.Enum
+---@class Barotrauma.Items.Components.ActivePing-arr : System.Array
+---@class Barotrauma.Items.Components.Sonar.ActivePing : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Sonar*ConnectedTransducer : System.Object, {[System.Int32]:Barotrauma.Items.Components.Sonar.ConnectedTransducer}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Sonar.ConnectedTransducer : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Collections*Generic*List*2Barotrauma*Character : System.Object, {[System.String]:(System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*SonarTransducer
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AITarget
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Steering*ObstacleDebugInfo : System.Object, {[System.Int32]:Barotrauma.Items.Components.Steering.ObstacleDebugInfo}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Steering.ObstacleDebugInfo : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*DockingPort : System.Object, {[System.Int32]:Barotrauma.Items.Components.DockingPort}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Powered : System.Object, {[System.Int32]:Barotrauma.Items.Components.Powered}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*GridInfo : System.Object, {[System.Int32]:Barotrauma.Items.Components.GridInfo}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.GridInfo : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*Powered
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Boolean : System.Object, {[Barotrauma.Items.Components.Connection]:System.Boolean}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Connection*1System*Collections*Generic*HashSet*2Barotrauma*Items*Components*Connection : System.Object, {[Barotrauma.Items.Components.Connection]:(System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Connection)|(Barotrauma.Items.Components.Connection[])}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.BooleanOperatorComponent : Barotrauma.Items.Components.ItemComponent
+---@class Barotrauma.Character-arr : System.Array
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Wire : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxConnection : System.Object, {[System.Int32]:Barotrauma.CircuitBoxConnection}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1System*ValueTuple*2System*UInt16*2System*Nullable*3System*Int32 : System.Object, {[System.Int32]:System.ValueTuple*1System*UInt16*1System*Nullable*2System*Int32}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1System*UInt16*1System*Nullable*2System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Wire
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*CustomInterface*CustomInterfaceElement : System.Object, {[System.Int32]:Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.CustomInterface.CustomInterfaceElement : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*Items*Components*DelayComponent*DelayedSignal : System.Object
+---@class Barotrauma.Items.Components.DelayComponent.DelayedSignal : System.Object
+---@class Barotrauma.Items.Components.FunctionComponent.FunctionType : System.Enum
+---@class Barotrauma.Items.Components.MotionSensor.TargetType : System.Enum
+---@class Barotrauma.Items.Components.OscillatorComponent.WaveType : System.Enum
+---@class System.Text.RegularExpressions.GroupCollection : System.Object, {[System.Int32]:System.Text.RegularExpressions.Group}, {[System.String]:System.Text.RegularExpressions.Group}, {[System.Int32]:System.Text.RegularExpressions.Group}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*TerminalMessage : System.Object, {[System.Int32]:Barotrauma.Items.Components.TerminalMessage}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.TerminalMessage : System.ValueType
+---@class Barotrauma.Items.Components.TrigonometricFunctionComponent.FunctionType : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*WifiComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.WifiComponent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*WifiComponent
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Wire*WireSection : System.Object, {[System.Int32]:Barotrauma.Items.Components.Wire.WireSection}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Wire.WireSection : System.Object
+---@class Barotrauma.Items.Components.Connection-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Microsoft*Xna*Framework*Vector2
+---@class Barotrauma.Hull-arr : System.Array
+---@class FarseerPhysics.Dynamics.Body-arr : System.Array
+---@class Barotrauma.Items.Components.DockingPort.AllowOutpostAutoDocking : System.Enum
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*DockingPort
+---@class Barotrauma.Items.Components.DockingPort.DirectionType : System.Enum
+---@class System.Collections.Generic.HashSet*1Barotrauma*Items*Components*Door : System.Object
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*Items*Components*Door
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger*Node : System.Object, {[System.Int32]:Barotrauma.Items.Components.ElectricalDischarger.Node}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ElectricalDischarger.Node : System.ValueType
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Character*2Barotrauma*Items*Components*ElectricalDischarger*Node : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Character*1Barotrauma*Items*Components*ElectricalDischarger*Node}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Character*1Barotrauma*Items*Components*ElectricalDischarger*Node : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ElectricalDischarger : System.Object, {[System.Int32]:Barotrauma.Items.Components.ElectricalDischarger}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Items*Components*ElectricalDischarger*Node
+---@class Barotrauma.Items.Components.EntitySpawnerComponent.AreaShape : System.Enum
+---@class Barotrauma.Items.Components.GeneticMaterial.CombineResult : System.Enum
+---@class System.Collections.Generic.HashSet*1Microsoft*Xna*Framework*Rectangle : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ProducedItem : System.Object, {[System.Int32]:Barotrauma.Items.Components.ProducedItem}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*VineTile : System.Object, {[System.Int32]:Barotrauma.Items.Components.VineTile}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.PlantSlot : System.ValueType
+---@class Barotrauma.Items.Components.FoliageConfig : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*TileSide*1Microsoft*Xna*Framework*Vector2 : System.Object, {[Barotrauma.Items.Components.TileSide]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Skill : System.Object, {[System.Int32]:Barotrauma.Skill}, {[System.Int32]:System.Object}
+---@class System.Action*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemComponent*ItemUseInfo : System.Object
+---@class Barotrauma.Items.Components.ItemComponent.T : System.Object
+---@class Barotrauma.Items.Components.T-ref
+---@class Barotrauma.Skill-ref
+---@class Barotrauma.NamedEvent*1Barotrauma*Items*Components*ItemContainer : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ActiveContainedItem : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.ActiveContainedItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ItemContainer.ActiveContainedItem : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer*ContainedItem : System.Object, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.ContainedItem}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ItemContainer.ContainedItem : System.ValueType
+---@class System.Collections.Generic.List : System.Array
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Items*Components*ItemContainer*SlotRestrictions : System.ValueType, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.SlotRestrictions}, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.SlotRestrictions}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Items.Components.ItemContainer.SlotRestrictions}
+---@class Barotrauma.Items.Components.ItemContainer.SlotRestrictions : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Ladder : System.Object, {[System.Int32]:Barotrauma.Items.Components.Ladder}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*Int32*1Barotrauma*Items*Components*PlantSlot : System.Object, {[System.Int32]:Barotrauma.Items.Components.PlantSlot}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.Growable-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*LightComponent : System.Object, {[System.Int32]:Barotrauma.Items.Components.LightComponent}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.SuitablePlantItem : System.ValueType
+---@class System.Collections.Generic.Queue*1Barotrauma*Items*Components*Projectile*Impact : System.Object
+---@class Barotrauma.Items.Components.Projectile.Impact : System.ValueType
+---@class System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Body : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1System*Single : System.ValueType, {[System.Int32]:System.Single}, {[System.Int32]:System.Single}, {[System.Int32]:System.Object}, {[System.Int32]:System.Single}
+---@class FarseerPhysics.Dynamics.Fixture-ref
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile*HitscanResult : System.Object, {[System.Int32]:Barotrauma.Items.Components.Projectile.HitscanResult}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Projectile.HitscanResult : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Items*Components*Quality*StatType*1System*Single : System.Object, {[Barotrauma.Items.Components.Quality.StatType]:System.Single}, {[System.Object]:System.Object}
+---@class Barotrauma.Items.Components.Repairable.FixActions : System.Enum
+---@class System.Action*1Barotrauma*Items*Components*Scanner : System.MulticastDelegate
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Sprite*2Microsoft*Xna*Framework*Vector2 : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Vector2}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Sprite*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.Turret.ChargingState : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Projectile : System.Object, {[System.Int32]:Barotrauma.Items.Components.Projectile}, {[System.Int32]:System.Object}
+---@class Barotrauma.ContentXElement-arr : System.Array
+---@class Barotrauma.WearableSprite-arr : System.Array
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*DamageModifier
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxInputConnection : System.ValueType, {[System.Int32]:Barotrauma.CircuitBoxInputConnection}, {[System.Int32]:Barotrauma.CircuitBoxInputConnection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CircuitBoxInputConnection}
+---@class Barotrauma.CircuitBoxInputConnection : Barotrauma.CircuitBoxConnection
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxOutputConnection : System.ValueType, {[System.Int32]:Barotrauma.CircuitBoxOutputConnection}, {[System.Int32]:Barotrauma.CircuitBoxOutputConnection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CircuitBoxOutputConnection}
+---@class Barotrauma.CircuitBoxOutputConnection : Barotrauma.CircuitBoxConnection
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxComponent : System.Object, {[System.Int32]:Barotrauma.CircuitBoxComponent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxInputOutputNode : System.Object, {[System.Int32]:Barotrauma.CircuitBoxInputOutputNode}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxLabelNode : System.Object, {[System.Int32]:Barotrauma.CircuitBoxLabelNode}, {[System.Int32]:System.Object}
+---@class Barotrauma.CircuitBoxLabelNode : Barotrauma.CircuitBoxNode
+---@class System.Collections.Generic.List*1Barotrauma*CircuitBoxWire : System.Object, {[System.Int32]:Barotrauma.CircuitBoxWire}, {[System.Int32]:System.Object}
+---@class Barotrauma.Items.Components.ItemContainer-arr : System.Array
+---@class Barotrauma.Option*1Barotrauma*ContentXElement : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*CircuitBoxOpcode : System.Object
+---@class Barotrauma.CircuitBoxOpcode : System.Enum
+---@class Barotrauma.NetCircuitBoxCursorInfo : System.ValueType
+---@class System.Func*1Barotrauma*Networking*Client*1System*Boolean : System.MulticastDelegate
+---@class System.ValueTuple*1Barotrauma*Networking*IWriteMessage*1Barotrauma*Networking*DeliveryMethod : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Option*1Barotrauma*CircuitBoxConnection : System.ValueType
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1Barotrauma*Item : System.Object, {[System.UInt16]:Barotrauma.Item}, {[System.Object]:System.Object}
+---@class System.Action*1Barotrauma*Items*Components*CircuitBox*CreatedWire : System.MulticastDelegate
+---@class Barotrauma.Items.Components.CircuitBox.CreatedWire : System.ValueType
+---@class Barotrauma.NetLimitedString : System.ValueType
+---@class System.Collections.Generic.IReadOnlyCollection*1System*UInt16
+---@class Barotrauma.CircuitBoxInputOutputNode.Type : System.Enum
+---@class Barotrauma.Option*1Barotrauma*Item : System.ValueType
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxSelectable
+---@class System.Collections.Immutable.ImmutableDictionary*1System*UInt16*1Barotrauma*Option*2System*UInt16 : System.Object, {[System.UInt16]:Barotrauma.Option*1System*UInt16}, {[System.UInt16]:Barotrauma.Option*1System*UInt16}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*CircuitBoxInputOutputNode*Type*1Barotrauma*Option*2System*UInt16 : System.Object, {[Barotrauma.CircuitBoxInputOutputNode.Type]:Barotrauma.Option*1System*UInt16}, {[Barotrauma.CircuitBoxInputOutputNode.Type]:Barotrauma.Option*1System*UInt16}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyCollection*1Barotrauma*CircuitBoxInputOutputNode*Type
+---@class Barotrauma.Option*1Barotrauma*Items*Components*CircuitBox : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*Item : System.ValueType, {[System.Int32]:Barotrauma.Item}, {[System.Int32]:Barotrauma.Item}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.Item}
+---@class Barotrauma.Option*1Barotrauma*CircuitBoxComponent : System.ValueType
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*CircuitBoxConnection : System.ValueType, {[System.Int32]:Barotrauma.CircuitBoxConnection}, {[System.Int32]:Barotrauma.CircuitBoxConnection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.CircuitBoxConnection}
+---@class Barotrauma.CircuitBoxResizeDirection : System.Enum
+---@class System.ValueTuple*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*CircuitBoxConnection : {[System.Int32]:Barotrauma.CircuitBoxConnection}
+---@class Barotrauma.Option*1Barotrauma*CircuitBoxWire : System.ValueType
+---@class Barotrauma.SubmarineInfo.CrewExperienceLevel : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Collections*Generic*List*2Barotrauma*Character : System.Object, {[Barotrauma.Identifier]:(System.Collections.Generic.List*1Barotrauma*Character)|(Barotrauma.Character[])}, {[System.Object]:System.Object}
+---@class Barotrauma.SubmarineTag : System.Enum
+---@class Barotrauma.BeaconStationInfo : Barotrauma.ExtraSubmarineInfo
+---@class Barotrauma.ExtraSubmarineInfo : System.Object
+---@class Barotrauma.WreckInfo : Barotrauma.ExtraSubmarineInfo
+---@class Barotrauma.EnemySubmarineInfo : Barotrauma.ExtraSubmarineInfo
+---@class System.IO.MemoryStream : System.IO.Stream
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1Barotrauma*Items*Components*DockingPort : System.Object, {[Barotrauma.Submarine]:Barotrauma.Items.Components.DockingPort}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PathNode : System.Object, {[System.Int32]:Barotrauma.PathNode}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Submarine*1System*Collections*Generic*HashSet*2Barotrauma*PathNode : System.Object, {[Barotrauma.Submarine]:(System.Collections.Generic.HashSet*1Barotrauma*PathNode)|(Barotrauma.PathNode[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.HashSet*1Barotrauma*PathNode : System.Object
+---@class System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1System*Single : System.Object, {[FarseerPhysics.Dynamics.Body]:System.Single}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*WayPoint : {[System.Int32]:Barotrauma.WayPoint}
+---@class Barotrauma.WreckAI : Barotrauma.SubmarineTurretAI
+---@class Barotrauma.SubmarineTurretAI : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Gap : System.Object, {[System.Int32]:Barotrauma.Gap}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Structure : System.Object, {[System.Int32]:Barotrauma.Structure}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Submarine*T : System.Object, {[System.Int32]:Barotrauma.Submarine.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.Submarine.T : Barotrauma.MapEntity
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Submarine*T
+---@class Barotrauma.Submarine.T : Barotrauma.MapEntity
+---@class System.Collections.Generic.List*1System*ValueTuple*2Barotrauma*Items*Components*ItemContainer*2System*Int32 : System.Object, {[System.Int32]:System.ValueTuple*1Barotrauma*Items*Components*ItemContainer*1System*Int32}, {[System.Int32]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Items*Components*ItemContainer*1System*Int32 : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*DisembarkPerkPrefab : System.ValueType, {[System.Int32]:Barotrauma.DisembarkPerkPrefab}, {[System.Int32]:Barotrauma.DisembarkPerkPrefab}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.DisembarkPerkPrefab}
+---@class Barotrauma.DisembarkPerkPrefab : Barotrauma.PrefabWithUintIdentifier
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*PerkBehaviors*SubItemSwapPerk : System.ValueType, {[System.Int32]:Barotrauma.PerkBehaviors.SubItemSwapPerk}, {[System.Int32]:Barotrauma.PerkBehaviors.SubItemSwapPerk}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.PerkBehaviors.SubItemSwapPerk}
+---@class Barotrauma.PerkBehaviors.SubItemSwapPerk : Barotrauma.PerkBehaviors.PerkBase
+---@class Barotrauma.PerkBehaviors.PerkBase : System.Object
+---@class System.Nullable*1Microsoft*Xna*Framework*Point : System.ValueType
+---@class System.Nullable*1FarseerPhysics*Dynamics*Category : System.ValueType
+---@class System.Predicate*1FarseerPhysics*Dynamics*Fixture : System.MulticastDelegate
+---@class System.Func*1Barotrauma*Submarine*1System*Collections*Generic*List*2Barotrauma*MapEntity : System.MulticastDelegate
+---@class System.Collections.Generic.List*1FarseerPhysics*Dynamics*Contacts*Contact : System.Object, {[System.Int32]:FarseerPhysics.Dynamics.Contacts.Contact}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PosInfo : System.Object, {[System.Int32]:Barotrauma.PosInfo}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Queue*1Barotrauma*SubmarineBody*Impact : System.Object
+---@class Barotrauma.SubmarineBody.Impact : System.ValueType
+---@class System.Collections.Generic.IEnumerable*1FarseerPhysics*Dynamics*Contacts*Contact
+---@class System.Collections.Generic.Dictionary*1FarseerPhysics*Dynamics*Body*1Microsoft*Xna*Framework*Vector2 : System.Object, {[FarseerPhysics.Dynamics.Body]:Microsoft.Xna.Framework.Vector2}, {[System.Object]:System.Object}
+---@class Barotrauma.WallSection-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*WallSection : System.Object, {[System.Int32]:Barotrauma.WallSection}, {[System.Int32]:System.Object}
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*AfflictionPrefab*Description : System.Object, {[System.Int32]:Barotrauma.AfflictionPrefab.Description}, {[System.Int32]:Barotrauma.AfflictionPrefab.Description}, {[System.Int32]:Barotrauma.AfflictionPrefab.Description}, {[System.Int32]:System.Object}
+---@class Barotrauma.AfflictionPrefab.Description : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*Effect : System.Object, {[System.Int32]:Barotrauma.AfflictionPrefab.Effect}, {[System.Int32]:System.Object}
+---@class Barotrauma.AfflictionPrefab.Effect : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*AfflictionPrefab*PeriodicEffect : System.Object, {[System.Int32]:Barotrauma.AfflictionPrefab.PeriodicEffect}, {[System.Int32]:System.Object}
+---@class Barotrauma.AfflictionPrefab.PeriodicEffect : System.Object
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*AfflictionPrefab*Effect
+---@class System.Collections.Generic.IList*1Barotrauma*AfflictionPrefab*PeriodicEffect : {[System.Int32]:Barotrauma.AfflictionPrefab.PeriodicEffect}
+---@class Barotrauma.AfflictionPrefab.Description.TargetType : System.Enum
+---@class System.ValueTuple*1System*Single*1Barotrauma*Affliction : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*AfflictionPrefab*PeriodicEffect*1System*Single : System.Object, {[Barotrauma.AfflictionPrefab.PeriodicEffect]:System.Single}, {[System.Object]:System.Object}
+---@class Barotrauma.AfflictionHusk.InfectionState : System.Enum
+---@class System.Nullable*1Barotrauma*AfflictionHusk*InfectionState : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Affliction*1System*Xml*Linq*XElement : System.Object, {[Barotrauma.Affliction]:System.Xml.Linq.XElement}, {[System.Object]:System.Object}
+---@class Barotrauma.HitDetection : System.Enum
+---@class Barotrauma.AIBehaviorAfterAttack : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1System*Collections*Generic*List : System.Object, {[Barotrauma.Networking.Client]:(System.Collections.Generic.List)|((System.Collections.Generic.List*1System*UInt16)|(System.UInt16[])[])}, {[System.Object]:System.Object}
+---@class Barotrauma.ItemSlot-arr : System.Array
+---@class Barotrauma.Inventory.ItemSlot : System.Object
+---@class Barotrauma.TraitorEvent.State : System.Enum
+---@class System.Collections.Generic.HashSet*1Barotrauma*Networking*Client : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*ReputationRequirement : System.ValueType, {[System.Int32]:Barotrauma.TraitorEventPrefab.ReputationRequirement}, {[System.Int32]:Barotrauma.TraitorEventPrefab.ReputationRequirement}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TraitorEventPrefab.ReputationRequirement}
+---@class Barotrauma.TraitorEventPrefab.ReputationRequirement : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*MissionRequirement : System.ValueType, {[System.Int32]:Barotrauma.TraitorEventPrefab.MissionRequirement}, {[System.Int32]:Barotrauma.TraitorEventPrefab.MissionRequirement}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TraitorEventPrefab.MissionRequirement}
+---@class Barotrauma.TraitorEventPrefab.MissionRequirement : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*TraitorEventPrefab*LevelRequirement : System.ValueType, {[System.Int32]:Barotrauma.TraitorEventPrefab.LevelRequirement}, {[System.Int32]:Barotrauma.TraitorEventPrefab.LevelRequirement}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.TraitorEventPrefab.LevelRequirement}
+---@class Barotrauma.TraitorEventPrefab.LevelRequirement : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*TraitorManager*PreviousTraitorEvent : System.Object, {[System.Int32]:Barotrauma.TraitorManager.PreviousTraitorEvent}, {[System.Int32]:System.Object}
+---@class Barotrauma.TraitorManager.PreviousTraitorEvent : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*TraitorManager*ActiveTraitorEvent : System.Object, {[System.Int32]:Barotrauma.TraitorManager.ActiveTraitorEvent}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*TraitorManager*ActiveTraitorEvent
+---@class System.Func*1Barotrauma*TraitorManager*PreviousTraitorEvent*1System*Boolean : System.MulticastDelegate
+---@class Barotrauma.Networking.Client-ref
+---@class Barotrauma.TraitorEvent-ref
+---@class FarseerPhysics.Common.Vertices : System.Collections.Generic.List*1Microsoft*Xna*Framework*Vector2
+---@class FarseerPhysics.Collision.AABB-ref
+---@class FarseerPhysics.Collision.RayCastOutput-ref
+---@class FarseerPhysics.Collision.RayCastInput-ref
+---@class FarseerPhysics.Common.FixedArray2*1FarseerPhysics*Collision*ManifoldPoint : System.ValueType, {[System.Int32]:FarseerPhysics.Collision.ManifoldPoint}
+---@class FarseerPhysics.Collision.ManifoldType : System.Enum
+---@class FarseerPhysics.Collision.EPAxisType : System.Enum
+---@class FarseerPhysics.Collision.Shapes.Shape : System.Object
+---@class FarseerPhysics.Common.Transform-ref
+---@class FarseerPhysics.Common.FixedArray2
+---@class FarseerPhysics.Collision.Manifold-ref
+---@class FarseerPhysics.Collision.Shapes.CircleShape : FarseerPhysics.Collision.Shapes.Shape
+---@class FarseerPhysics.Collision.Shapes.PolygonShape : FarseerPhysics.Collision.Shapes.Shape
+---@class FarseerPhysics.Collision.Shapes.EdgeShape : FarseerPhysics.Collision.Shapes.Shape
+---@class FarseerPhysics.Common.FixedArray2
+---@class System.Collections.Generic.HashSet*1FarseerPhysics*Dynamics*Joints*Joint : System.Object
+---@class System.Func*1FarseerPhysics*Dynamics*Fixture*1System*Boolean : System.MulticastDelegate
+---@class System.Func*1System*Int32*1System*Boolean : System.MulticastDelegate
+---@class FarseerPhysics.Collision.TOIInput : System.Object
+---@class System.Func*1FarseerPhysics*Dynamics*Fixture*1Microsoft*Xna*Framework*Vector2*1Microsoft*Xna*Framework*Vector2*1System*Single*1System*Single : System.MulticastDelegate
+---@class System.Func*1FarseerPhysics*Collision*RayCastInput*1FarseerPhysics*Dynamics*FixtureProxy*1System*Single : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.FixtureProxy : System.ValueType
+---@class FarseerPhysics.Dynamics.BodyDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.FixtureDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.JointDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.ControllerDelegate : System.MulticastDelegate
+---@class FarseerPhysics.Controllers.Controller : FarseerPhysics.Common.PhysicsLogic.FilterData
+---@class FarseerPhysics.Common.PhysicsLogic.FilterData : System.Object
+---@class System.Collections.Generic.List*1FarseerPhysics*Controllers*Controller : System.Object, {[System.Int32]:FarseerPhysics.Controllers.Controller}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Dynamics.ContactManager : System.Object
+---@class FarseerPhysics.Fluids.FluidSystem2 : System.Object
+---@class FarseerPhysics.Dynamics.Contacts.ContactListHead : FarseerPhysics.Dynamics.Contacts.Contact
+---@class FarseerPhysics.Dynamics.Island : System.Object
+---@class FarseerPhysics.Dynamics.TimeStep-ref
+---@class FarseerPhysics.Dynamics.SolverIterations-ref
+---@class System.Collections.Generic.List*1FarseerPhysics*Common*Vertices : System.Object, {[System.Int32]:FarseerPhysics.Common.Vertices}, {[System.Int32]:System.Object}
+---@class FarseerPhysics.Common.Path : System.Object
+---@class FarseerPhysics.Collision.IBroadPhase
+---@class FarseerPhysics.Dynamics.AfterCollisionEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.Contacts.ContactVelocityConstraint : System.Object
+---@class FarseerPhysics.Dynamics.BeforeCollisionEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.OnCollisionEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.OnSeparationEventHandler : System.MulticastDelegate
+---@class FarseerPhysics.Dynamics.FixtureProxy-arr : System.Array
+---@class FarseerPhysics.Dynamics.Category-ref
+---@class Barotrauma.PhysicsBody.Shape : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*PhysicsBody*T : System.Object, {[System.Int32]:Barotrauma.PhysicsBody.T}, {[System.Int32]:System.Object}
+---@class Barotrauma.PhysicsBody.T : Barotrauma.PosInfo
+---@class System.Collections.Generic.List*1Barotrauma*EntityGrid : System.Object, {[System.Int32]:Barotrauma.EntityGrid}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*BackgroundSection : System.Object, {[System.Int32]:Barotrauma.BackgroundSection}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*BackgroundSection
+---@class Barotrauma.BackgroundSectionsEventData-ref
+---@class Barotrauma.NetworkFireSource-arr-ref
+---@class System.Action*1Barotrauma*Hull*BackgroundSectionNetworkUpdate : System.MulticastDelegate
+---@class Barotrauma.Hull.BackgroundSectionNetworkUpdate : System.ValueType
+---@class Voronoi2.Site-arr : System.Array
+---@class Voronoi2.CellType : System.Enum
+---@class Barotrauma.RagdollParams.SpriteParams : Barotrauma.RagdollParams.SubParam
+---@class Microsoft.Xna.Framework.Rectangle-arr : System.Array
+---@class Barotrauma.WearableSprite.ObscuringMode : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*WearableType : System.Object, {[System.Int32]:Barotrauma.WearableType}, {[System.Int32]:System.Object}
+---@class System.Lazy*1Barotrauma*LocalizedString : System.Object
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*FabricationRecipe*RequiredItem : System.ValueType, {[System.Int32]:Barotrauma.FabricationRecipe.RequiredItem}, {[System.Int32]:Barotrauma.FabricationRecipe.RequiredItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.FabricationRecipe.RequiredItem}
+---@class System.Collections.Generic.List*1Barotrauma*ItemPrefab : System.Object, {[System.Int32]:Barotrauma.ItemPrefab}, {[System.Int32]:System.Object}
+---@class Barotrauma.SoldItem.SellOrigin : System.Enum
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*StartItem : System.ValueType, {[System.Int32]:Barotrauma.StartItem}, {[System.Int32]:Barotrauma.StartItem}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.StartItem}
+---@class Barotrauma.PrefabCollection*1Barotrauma*UpgradeCategory : System.Object, {[Barotrauma.Identifier]:Barotrauma.UpgradeCategory}, {[System.String]:Barotrauma.UpgradeCategory}
+---@class System.Collections.Generic.List*1Barotrauma*PurchasedUpgrade : System.Object, {[System.Int32]:Barotrauma.PurchasedUpgrade}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*PurchasedItemSwap : System.Object, {[System.Int32]:Barotrauma.PurchasedItemSwap}, {[System.Int32]:System.Object}
+---@class Barotrauma.NamedEvent*1Barotrauma*UpgradeManager : System.Object
+---@class System.Collections.Generic.ICollection*1Barotrauma*Item
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*UpgradeMaxLevelMod : System.ValueType, {[System.Int32]:Barotrauma.UpgradeMaxLevelMod}, {[System.Int32]:Barotrauma.UpgradeMaxLevelMod}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.UpgradeMaxLevelMod}
+---@class Barotrauma.UpgradeMaxLevelMod : System.ValueType
+---@class System.Collections.Immutable.ImmutableHashSet*1Barotrauma*UpgradeResourceCost : System.Object
+---@class Barotrauma.UpgradeResourceCost : System.ValueType
+---@class Barotrauma.PrefabCollection*1Barotrauma*UpgradePrefab : System.Object, {[Barotrauma.Identifier]:Barotrauma.UpgradePrefab}, {[System.String]:Barotrauma.UpgradePrefab}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*UpgradeCategory
+---@class System.Collections.Generic.Dictionary*1System*String*1System*String-arr : System.Object, {[System.String]:(System.String-arr)|(System.String[])}, {[System.Object]:System.Object}
+---@class System.Collections.Immutable.ImmutableArray*1Barotrauma*ApplicableResourceCollection : System.ValueType, {[System.Int32]:Barotrauma.ApplicableResourceCollection}, {[System.Int32]:Barotrauma.ApplicableResourceCollection}, {[System.Int32]:System.Object}, {[System.Int32]:Barotrauma.ApplicableResourceCollection}
+---@class Barotrauma.ApplicableResourceCollection : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*ISerializableEntity*1Barotrauma*PropertyReference-arr : System.Object, {[Barotrauma.ISerializableEntity]:(Barotrauma.PropertyReference-arr)|(Barotrauma.PropertyReference[])}, {[System.Object]:System.Object}
+---@class Barotrauma.PropertyReference-arr : System.Array
+---@class Barotrauma.PropertyReference : System.Object
+---@class Barotrauma.ISerializableEntity-arr : System.Array
+---@class Barotrauma.UpgradePrefab-ref
+---@class Barotrauma.UpgradeCategory-ref
+---@class Barotrauma.AIObjectiveManager.ObjectiveType : System.Enum
+---@class Barotrauma.Character.ItemTeamChange : System.ValueType
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*ServerSettings*NetFlags*1System*UInt16 : System.Object, {[Barotrauma.Networking.ServerSettings.NetFlags]:System.UInt16}, {[System.Object]:System.Object}
+---@class Barotrauma.Networking.ServerSettings.NetFlags : System.Enum
+---@class System.Collections.Generic.Dictionary*1System*UInt32*1Barotrauma*Networking*ServerSettings*NetPropertyData : System.Object, {[System.UInt32]:Barotrauma.Networking.ServerSettings.NetPropertyData}, {[System.Object]:System.Object}
+---@class Barotrauma.Networking.ServerSettings.NetPropertyData : System.Object
+---@class Barotrauma.Networking.PlayStyle : System.Enum
+---@class Barotrauma.Networking.RespawnMode : System.Enum
+---@class Barotrauma.Networking.SelectionMode : System.Enum
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Identifier*1System*Boolean : System.Object, {[Barotrauma.Identifier]:System.Boolean}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Networking*ServerSettings*SavedClientPermission : System.Object, {[System.Int32]:Barotrauma.Networking.ServerSettings.SavedClientPermission}, {[System.Int32]:System.Object}
+---@class Barotrauma.Networking.ServerSettings.SavedClientPermission : System.Object
+---@class Barotrauma.PvpTeamSelectionMode : System.Enum
+---@class Barotrauma.LosMode : System.Enum
+---@class Barotrauma.EnemyHealthBarMode : System.Enum
+---@class Barotrauma.Networking.LootedMoneyDestination : System.Enum
+---@class System.Collections.Generic.List*1Barotrauma*Range*2System*Int32 : System.Object, {[System.Int32]:Barotrauma.Range*1System*Int32}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Identifier*1System*Boolean : {[Barotrauma.Identifier]:System.Boolean}
+---@class System.Action*1Barotrauma*Identifier*1System*Object : System.MulticastDelegate
+---@class Barotrauma.Networking.PlayerConnectionChangeType : System.Enum
+---@class Barotrauma.Networking.SegmentTableWriter
+---@class Barotrauma.Items.Components.WifiComponent-ref
+---@class Barotrauma.VoipServerDecoder : System.Object
+---@class System.ValueTuple*1System*UInt16*1System*Single : System.ValueType, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Networking*ChatMessage : System.Object, {[System.Int32]:Barotrauma.Networking.ChatMessage}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1System*UInt16*1System*Double : System.Object, {[System.UInt16]:System.Double}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Queue*1Barotrauma*Entity : System.Object
+---@class System.Collections.Generic.HashSet*1Barotrauma*DebugConsole*Command : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*JobVariant : System.Object, {[System.Int32]:Barotrauma.JobVariant}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*Client : {[System.Int32]:Barotrauma.Networking.Client}
+---@class Barotrauma.Networking.Client.T : System.Object
+---@class Barotrauma.Networking.ClientPermissions-ref
+---@class System.Collections.Generic.List
+---@class Barotrauma.INetSerializableStruct.T : System.Object
+---@class Barotrauma.ReadOnlyBitField : System.Object
+---@class Barotrauma.INetSerializableStruct.T : System.Object
+---@class Barotrauma.WriteOnlyBitField : System.Object
+---@class Barotrauma.T-ref
+---@class Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*PipeEndpoint : Barotrauma.Networking.NetworkConnection
+---@class Barotrauma.Networking.NetworkConnection*1Barotrauma*Networking*LidgrenEndpoint : Barotrauma.Networking.NetworkConnection
+---@class Lidgren.Network.NetConnection : System.Object
+---@class Barotrauma.Networking.P2PConnection*1Barotrauma*Networking*SteamP2PEndpoint : Barotrauma.Networking.P2PConnection
+---@class System.Nullable*1System*TimeSpan : System.ValueType
+---@class System.Collections.Generic.List*1Barotrauma*Networking*BannedPlayer : System.Object, {[System.Int32]:Barotrauma.Networking.BannedPlayer}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*BannedPlayer : {[System.Int32]:Barotrauma.Networking.BannedPlayer}
+---@class System.Collections.Generic.IEnumerable*1Barotrauma*Either*2Barotrauma*Networking*Address*2Barotrauma*Networking*AccountId
+---@class Barotrauma.Either*1Barotrauma*Networking*Address*1Barotrauma*Networking*AccountId : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*Networking*PreviousPlayer : System.Object, {[System.Int32]:Barotrauma.Networking.PreviousPlayer}, {[System.Int32]:System.Object}
+---@class Barotrauma.Networking.PreviousPlayer : System.Object
+---@class Barotrauma.Networking.ServerEntityEventManager : Barotrauma.Networking.NetEntityEventManager
+---@class Barotrauma.Networking.NetEntityEventManager : System.Object
+---@class Barotrauma.Option*1Barotrauma*Networking*P2PEndpoint : System.ValueType
+---@class Barotrauma.DoSProtection : System.Object
+---@class System.Collections.Generic.Queue*1Barotrauma*Networking*ChatMessage : System.Object
+---@class Barotrauma.Networking.ModSender : System.Object
+---@class Barotrauma.Networking.PeerDisconnectPacket : System.ValueType
+---@class Barotrauma.Networking.OrderChatMessage : Barotrauma.Networking.ChatMessage
+---@class Barotrauma.Networking.FileSender.FileTransferOut : System.Object
+---@class Barotrauma.AchievementStat : System.Enum
+---@class Barotrauma.PerkCollection-ref
+---@class Barotrauma.Networking.ServerPeer.Callbacks : System.ValueType
+---@class Barotrauma.Networking.ServerPeer*1Barotrauma*Networking*LidgrenConnection : Barotrauma.Networking.ServerPeer
+---@class Lidgren.Network.NetPeerConfiguration : System.Object
+---@class System.Collections.Immutable.ImmutableDictionary*1Barotrauma*Networking*AuthenticationTicketKind*1Barotrauma*Networking*Authenticator : System.Object, {[Barotrauma.Networking.AuthenticationTicketKind]:Barotrauma.Networking.Authenticator}, {[Barotrauma.Networking.AuthenticationTicketKind]:Barotrauma.Networking.Authenticator}, {[System.Object]:System.Object}
+---@class Barotrauma.Networking.AuthenticationTicketKind : System.Enum
+---@class Barotrauma.Networking.Authenticator : System.Object
+---@class Lidgren.Network.NetServer : Lidgren.Network.NetPeer
+---@class Lidgren.Network.NetPeer : System.Object
+---@class System.Collections.Generic.List*1Lidgren*Network*NetIncomingMessage : System.Object, {[System.Int32]:Lidgren.Network.NetIncomingMessage}, {[System.Int32]:System.Object}
+---@class Lidgren.Network.NetIncomingMessage : Lidgren.Network.NetBuffer
+---@class Lidgren.Network.NetBuffer : System.Object
+---@class Barotrauma.Networking.PeerPacketHeaders : System.ValueType
+---@class Barotrauma.Networking.ServerPeer.PendingClient*1Barotrauma*Networking*LidgrenConnection : System.Object
+---@class Barotrauma.Networking.ClientAuthTicketAndVersionPacket : System.ValueType
+---@class Lidgren.Network.NetSendResult : System.Enum
+---@class Barotrauma.Networking.ServerPeer*1Barotrauma*Networking*P2PConnection : Barotrauma.Networking.ServerPeer
+---@class Barotrauma.Networking.ServerPeer.PendingClient*1Barotrauma*Networking*P2PConnection : System.Object
+---@class Barotrauma.Networking.FileSender.FileTransferDelegate : System.MulticastDelegate
+---@class System.Collections.Generic.List*1Barotrauma*Networking*FileSender*FileTransferOut : System.Object, {[System.Int32]:Barotrauma.Networking.FileSender.FileTransferOut}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.IReadOnlyList*1Barotrauma*Networking*FileSender*FileTransferOut : {[System.Int32]:Barotrauma.Networking.FileSender.FileTransferOut}
+---@class Barotrauma.Networking.FileTransferType : System.Enum
+---@class Concentus.Structs.OpusDecoder : System.Object
+---@class System.Byte-arr-arr : System.Array
+---@class System.Collections.Generic.List*1Barotrauma*Networking*VoipQueue : System.Object, {[System.Int32]:Barotrauma.Networking.VoipQueue}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*VoipQueue*1System*DateTime : System.Object, {[Barotrauma.Networking.VoipQueue]:System.DateTime}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1Barotrauma*KarmaManager*ClientMemory : System.Object, {[Barotrauma.Networking.Client]:Barotrauma.KarmaManager.ClientMemory}, {[System.Object]:System.Object}
+---@class Barotrauma.KarmaManager.ClientMemory : System.Object
+---@class System.Collections.Generic.Dictionary*1System*String*1System*Xml*Linq*XElement : System.Object, {[System.String]:System.Xml.Linq.XElement}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Steering : System.Object, {[Barotrauma.CharacterTeamType]:(System.Collections.Generic.List*1Barotrauma*Items*Components*Steering)|(Barotrauma.Items.Components.Steering[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Steering : System.Object, {[System.Int32]:Barotrauma.Items.Components.Steering}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*Door : System.Object, {[Barotrauma.CharacterTeamType]:(System.Collections.Generic.List*1Barotrauma*Items*Components*Door)|(Barotrauma.Items.Components.Door[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.List*1Barotrauma*Items*Components*Door : System.Object, {[System.Int32]:Barotrauma.Items.Components.Door}, {[System.Int32]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1System*Collections*Generic*List*2Barotrauma*Items*Components*ItemContainer : System.Object, {[Barotrauma.CharacterTeamType]:(System.Collections.Generic.List*1Barotrauma*Items*Components*ItemContainer)|(Barotrauma.Items.Components.ItemContainer[])}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Networking*RespawnManager*TeamSpecificState : System.Object, {[Barotrauma.CharacterTeamType]:Barotrauma.Networking.RespawnManager.TeamSpecificState}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*CharacterTeamType*1Barotrauma*Submarine : System.Object, {[Barotrauma.CharacterTeamType]:Barotrauma.Submarine}, {[System.Object]:System.Object}
+---@class System.Collections.Generic.Dictionary*1Barotrauma*Networking*Client*1System*ValueTuple*2Barotrauma*Networking*VoteType*2System*DateTime : System.Object, {[Barotrauma.Networking.Client]:System.ValueTuple*1Barotrauma*Networking*VoteType*1System*DateTime}, {[System.Object]:System.Object}
+---@class System.ValueTuple*1Barotrauma*Networking*VoteType*1System*DateTime : System.ValueType, {[System.Int32]:System.Object}
+---@class Barotrauma.Voting.IVote
+---@class System.Collections.Generic.Queue*1Barotrauma*Voting*IVote : System.Object
+---@class System.Collections.Generic.IReadOnlyDictionary*1Barotrauma*Voting*T*1System*Int32 : {[Barotrauma.Voting.T]:System.Int32}
+---@class Barotrauma.Voting.T : System.Object
+---@class Barotrauma.Voting.T : System.Object
+---@class Barotrauma.Voting.T : System.Object
+---@class System.Collections.Concurrent.ConcurrentQueue*1Barotrauma*ColoredText : System.Object
+---@class Barotrauma.ColoredText : System.ValueType
+---@class Barotrauma.NamedEvent*1Barotrauma*ColoredText : System.Object
+---@class System.Collections.Generic.List*1Barotrauma*ColoredText : System.Object, {[System.Int32]:Barotrauma.ColoredText}, {[System.Int32]:System.Object}
+---@class Barotrauma.DebugConsole.QuestionCallback : System.MulticastDelegate
+---@class System.Action*1Barotrauma*Networking*Client*1Microsoft*Xna*Framework*Vector2*1System*String-arr : System.MulticastDelegate
+---@class System.Action*1System*String-arr : System.MulticastDelegate
+---@class Barotrauma.DebugConsole.TFile : Barotrauma.BaseSubFile
+---@class System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile : System.Object, {[System.Int32]:Barotrauma.DebugConsole.TFile}, {[System.Int32]:System.Object}
+---@class Barotrauma.DebugConsole.TFile : Barotrauma.ContentFile
+---@class System.Collections.Generic.List*1Barotrauma*DebugConsole*TFile : System.Object, {[System.Int32]:Barotrauma.DebugConsole.TFile}, {[System.Int32]:System.Object}
+---@class Barotrauma.DebugConsole.TFile : Barotrauma.BaseSubFile
+---@class System.Linq.IOrderedEnumerable*1Barotrauma*Character
+---@class System.Func*1System*String-arr-arr : System.MulticastDelegate
+---@class System.String-arr-arr : System.Array
+---@class System.Collections.Immutable.ImmutableList*1Barotrauma*TextPack : System.Object, {[System.Int32]:Barotrauma.TextPack}, {[System.Int32]:Barotrauma.TextPack}, {[System.Int32]:Barotrauma.TextPack}, {[System.Int32]:System.Object}
+---@class Barotrauma.PrefabSelector*1Barotrauma*ItemPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*JobPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*CharacterPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*HumanPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*AfflictionPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*TalentPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*TalentTree : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*OrderPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*LevelGenerationParams : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*LocationType : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*EventPrefab : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*EventSet : System.Object
+---@class Barotrauma.PrefabSelector*1Barotrauma*EventManagerSettings : System.Object
+---@class System.Text.RegularExpressions.Group : System.Text.RegularExpressions.Capture
+---@class System.Text.RegularExpressions.Capture : System.Object
diff --git a/Meta/Types/server/constants.lua b/Meta/Types/server/constants.lua
new file mode 100644
index 0000000..9fa1323
--- /dev/null
+++ b/Meta/Types/server/constants.lua
@@ -0,0 +1,2 @@
+CLIENT = false
+SERVER = true
\ No newline at end of file
diff --git a/Meta/Types/shared/Components.lua b/Meta/Types/shared/Components.lua
new file mode 100644
index 0000000..0fa624e
--- /dev/null
+++ b/Meta/Types/shared/Components.lua
@@ -0,0 +1,2 @@
+---@meta
+Components = {}
\ No newline at end of file
diff --git a/Meta/Types/shared/Descriptors.lua b/Meta/Types/shared/Descriptors.lua
new file mode 100644
index 0000000..b5a4a06
--- /dev/null
+++ b/Meta/Types/shared/Descriptors.lua
@@ -0,0 +1,3 @@
+---@meta
+---@type table
+Descriptors = {}
diff --git a/Meta/Types/shared/Player.lua b/Meta/Types/shared/Player.lua
new file mode 100644
index 0000000..196478a
--- /dev/null
+++ b/Meta/Types/shared/Player.lua
@@ -0,0 +1,44 @@
+---@meta
+Player = {}
+
+---@return Barotrauma.Character[]
+function Player.GetAllCharacters() end
+
+---@return Barotrauma.Networking.Client[]
+function Player.GetAllClients() end
+
+---@param client Barotrauma.Networking.Client
+---@param character Barotrauma.Character
+function Player.SetClientCharacter(client, character) end
+
+---@param character Barotrauma.Character
+---@param team Barotrauma.CharacterTeamType
+function Player.SetCharacterTeam(character, team) end
+
+---@param client Barotrauma.Networking.Client
+---@param team Barotrauma.CharacterTeamType
+function Player.SetClientTeam(client, team) end
+
+---@param client Barotrauma.Networking.Client
+---@param reason string
+function Player.Kick(client, reason) end
+
+---@param client Barotrauma.Networking.Client
+---@param reason string
+---@param range boolean
+---@param seconds number
+function Player.Ban(client, reason, range, seconds) end
+
+---@param player string
+---@param endpoint string
+function Player.UnbanPlayer(player, endpoint) end
+
+---@param character Barotrauma.Character
+---@param range number
+function Player.SetRadioRange(character, range) end
+
+---@param client Barotrauma.Networking.Client
+---@param permissions Barotrauma.Networking.ClientPermissions
+function Player.CheckPermission(client, permissions) end
+
+return Player
diff --git a/Meta/Types/shared/Random.lua b/Meta/Types/shared/Random.lua
new file mode 100644
index 0000000..f64f050
--- /dev/null
+++ b/Meta/Types/shared/Random.lua
@@ -0,0 +1,14 @@
+---@meta
+Random = {}
+
+---@param min number
+---@param max number
+---@return number
+function Random.Range(min, max) end
+
+---@param min number
+---@param max number
+---@return number
+function Random.RangeFloat(min, max) end
+
+return Random
diff --git a/Meta/Types/shared/bit32.lua b/Meta/Types/shared/bit32.lua
new file mode 100644
index 0000000..d0a5fda
--- /dev/null
+++ b/Meta/Types/shared/bit32.lua
@@ -0,0 +1,61 @@
+---@meta
+bit32 = {}
+
+---@param v integer
+---@param pos integer
+---@param width? integer
+---@return integer
+function bit32.extract(v, pos, width) end
+
+---@param v integer
+---@param u integer
+---@param pos integer
+---@param width? integer
+---@return integer
+function bit32.replace(v, u, pos, width) end
+
+---@param v integer
+---@param a integer
+---@return integer
+function bit32.arshift(v, a) end
+
+---@param v integer
+---@param a integer
+---@return integer
+function bit32.rshift(v, a) end
+
+---@param v integer
+---@param a integer
+---@return integer
+function bit32.lshift(v, a) end
+
+---@param v integer
+---@return integer
+function bit32.bnot(v) end
+
+---@param v integer
+---@param ... integer
+---@return integer
+function bit32.band(v, ...) end
+
+---@param v integer
+---@param ... integer
+---@return integer
+function bit32.bor(v, ...) end
+
+---@param v integer
+---@param ... integer
+---@return boolean
+function bit32.btest(v, ...) end
+
+---@param v integer
+---@param a integer
+---@return integer
+function bit32.rrotate(v, a) end
+
+---@param v integer
+---@param a integer
+---@return integer
+function bit32.lrotate(v, a) end
+
+return bit32
diff --git a/Meta/Types/shared/csharp.lua b/Meta/Types/shared/csharp.lua
new file mode 100644
index 0000000..1ac0ae1
--- /dev/null
+++ b/Meta/Types/shared/csharp.lua
@@ -0,0 +1,2 @@
+---@type boolean
+CSActive = nil
diff --git a/Meta/Types/shared/json.lua b/Meta/Types/shared/json.lua
new file mode 100644
index 0000000..61208f3
--- /dev/null
+++ b/Meta/Types/shared/json.lua
@@ -0,0 +1,19 @@
+---@meta
+json = {}
+
+---@param vs string
+---@return table
+function json.parse(vs) end
+
+---@param vt table
+---@return string
+function json.serialize(vt) end
+
+---@return userdata
+function json.null() end
+
+---@param v any
+---@return boolean
+function json.isnull(v) end
+
+return json
diff --git a/Meta/Types/shared/utils.math.lua b/Meta/Types/shared/utils.math.lua
new file mode 100644
index 0000000..df7f489
--- /dev/null
+++ b/Meta/Types/shared/utils.math.lua
@@ -0,0 +1,33 @@
+---@meta
+math = {}
+
+---@param a number
+---@param b number
+---@param t number
+---@return number
+math.lerp = function(a, b, t) end
+
+---@param value number
+---@param min number
+---@param max number
+---@return number
+math.clamp = function(value, min, max) end
+
+---@param value number
+---@param decimals number
+---@return number
+math.round = function(value, decimals) end
+
+---@param value number
+---@return integer
+math.sign = function(value) end
+
+---@param value number
+---@param inMin number
+---@param inMax number
+---@param outMin number
+---@param outMax number
+---@return number
+math.remap = function(value, inMin, inMax, outMin, outMax) end
+
+return math
diff --git a/Meta/Types/shared/utils.string.lua b/Meta/Types/shared/utils.string.lua
new file mode 100644
index 0000000..f09f8f9
--- /dev/null
+++ b/Meta/Types/shared/utils.string.lua
@@ -0,0 +1,14 @@
+---@meta
+string = {}
+
+---@param str string
+---@param start string
+---@return true
+string.startsWith = function(str, start) end
+
+---@param str string
+---@param ending string
+---@return true
+string.endsWith = function(str, ending) end
+
+return string
diff --git a/Meta/Types/shared/utils.util.lua b/Meta/Types/shared/utils.util.lua
new file mode 100644
index 0000000..abfd482
--- /dev/null
+++ b/Meta/Types/shared/utils.util.lua
@@ -0,0 +1,24 @@
+---@meta
+Util = {}
+
+---@param groupName string
+---@param func fun(item:Barotrauma.Item):boolean
+Util.RegisterItemGroup = function(groupName, func)
+end
+
+---@param groupName string
+---@return Barotrauma.Item[]
+Util.GetItemGroup = function(groupName)
+end
+
+---@param id string
+---@return Barotrauma.Item[]?
+Util.GetItemsById = function(id)
+end
+
+---@param character Barotrauma.Character
+---@return Barotrauma.Networking.Client?
+Util.FindClientCharacter = function(character)
+end
+
+return Util
diff --git a/Quick Swap Hand~Bag/Lua/Autorun/init.lua b/Quick Swap Hand~Bag/Lua/Autorun/init.lua
index 5d9c408..b462142 100644
--- a/Quick Swap Hand~Bag/Lua/Autorun/init.lua
+++ b/Quick Swap Hand~Bag/Lua/Autorun/init.lua
@@ -3,19 +3,50 @@ if not CLIENT then return end
Hook.Add("keyUpdate", "quickswap_bag~hand", function()
if not PlayerInput.KeyHit(Keys.LeftAlt) then return end
if GUI.KeyboardDispatcher.Subscriber then return end
- local character = Character.Controlled; if character == nil then return end
- local inventory = character.Inventory; if inventory == nil then return end
- local bagSlotIndex = inventory.FindLimbSlot(InvSlotType.Bag); if bagSlotIndex < 0 then return end
- for handItem in character.HeldItems do
- if inventory.TryPutItem(handItem, bagSlotIndex, true, false, character) then
- return
- end
+
+ local character = Character.Controlled
+ if not character then
+ print("No character found")
+ return
end
- local bagItem = inventory.GetItemAt(bagSlotIndex); if bagItem == nil then return end
- for _, handSlotType in ipairs { InvSlotType.LeftHand, InvSlotType.RightHand } do
- local handSlotIndex = inventory.FindLimbSlot(handSlotType)
- if handSlotIndex >= 0 then
- if inventory.TryPutItem(bagItem, handSlotIndex, true, false, character) then return end
- end
+ local inventory = character.Inventory
+ if not inventory then
+ print("No inventory found")
+ return
end
+
+ local bagSlotIndex = inventory.FindLimbSlot(InvSlotType.Bag)
+ if bagSlotIndex < 0 then
+ print("No bag slot found")
+ return
+ end
+
+ local bagItem = inventory.GetItemAt(bagSlotIndex)
+ if not bagItem then
+ print("No bag item found")
+ return
+ end
+ local bagInventrory = bagItem.OwnInventory
+ if not bagInventrory then
+ print("No bag inventory found")
+ return
+ end
+
+ local items = bagInventrory.AllItemsMod
+ for _, item in ipairs(items) do
+ ---@cast item Barotrauma.Item
+ print(item.Name)
+ print(item.Tags)
+ end
+
+
+
+
+
+ --for _, handSlotType in ipairs { InvSlotType.LeftHand, InvSlotType.RightHand } do
+ -- local handSlotIndex = inventory.FindLimbSlot(handSlotType)
+ -- if handSlotIndex >= 0 then
+ -- if inventory.TryPutItem(bagItem, handSlotIndex, true, false, character) then return end
+ -- end
+ --end
end)